Search / io.github.monkeywave/frida-mobile-mcp
Frida Mobile MCP
L0· runs locallyMobile Frida MCP Server - AI-powered mobile app exploration and testing via Frida instrumentation
v0.7.3 · active · repository · website · descriptor JSON · versions
Search / io.github.monkeywave/frida-mobile-mcp
L0· runs locallyMobile Frida MCP Server - AI-powered mobile app exploration and testing via Frida instrumentation
v0.7.3 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"frida-mobile-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0",
"FRIDA_MCP_MEMORY_WRITE": "0",
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0",
"FRIDA_MCP_ALLOW_ADB_SHELL": "0",
"FRIDA_MCP_SNAPSHOTS": "0",
"FRIDA_MCP_EVIDENCE": "1",
"FRIDA_MCP_EVIDENCE_MAX_MB": "200",
"FRIDA_MCP_REMOTE_TOKEN": "${FRIDA_MCP_REMOTE_TOKEN}",
"FRIDA_MCP_SCHEMA_PROFILE": "full",
"FRIDA_MCP_TOOL_PROFILE": "full",
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000",
"FRIDA_MCP_HTTP_TOKEN": "${FRIDA_MCP_HTTP_TOKEN}",
"FRIDA_MCP_DEBUG": "0"
}
}
}
}claude mcp add frida-mobile-mcp -e "FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS=0" -e "FRIDA_MCP_MEMORY_WRITE=0" -e "FRIDA_MCP_ALLOW_NATIVE_INJECTION=0" -e "FRIDA_MCP_ALLOW_ADB_SHELL=0" -e "FRIDA_MCP_SNAPSHOTS=0" -e "FRIDA_MCP_EVIDENCE=1" -e "FRIDA_MCP_EVIDENCE_MAX_MB=200" -e "FRIDA_MCP_REMOTE_TOKEN=${FRIDA_MCP_REMOTE_TOKEN}" -e "FRIDA_MCP_SCHEMA_PROFILE=full" -e "FRIDA_MCP_TOOL_PROFILE=full" -e "FRIDA_MCP_MAX_RESPONSE_CHARS=25000" -e "FRIDA_MCP_HTTP_TOKEN=${FRIDA_MCP_HTTP_TOKEN}" -e "FRIDA_MCP_DEBUG=0" -- npx -y [email protected][mcp_servers.frida-mobile-mcp]
command = "npx"
args = ["-y", "[email protected]"]
env = { "FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS" = "0", "FRIDA_MCP_MEMORY_WRITE" = "0", "FRIDA_MCP_ALLOW_NATIVE_INJECTION" = "0", "FRIDA_MCP_ALLOW_ADB_SHELL" = "0", "FRIDA_MCP_SNAPSHOTS" = "0", "FRIDA_MCP_EVIDENCE" = "1", "FRIDA_MCP_EVIDENCE_MAX_MB" = "200", "FRIDA_MCP_REMOTE_TOKEN" = "${FRIDA_MCP_REMOTE_TOKEN}", "FRIDA_MCP_SCHEMA_PROFILE" = "full", "FRIDA_MCP_TOOL_PROFILE" = "full", "FRIDA_MCP_MAX_RESPONSE_CHARS" = "25000", "FRIDA_MCP_HTTP_TOKEN" = "${FRIDA_MCP_HTTP_TOKEN}", "FRIDA_MCP_DEBUG" = "0" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"frida-mobile-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"[email protected]"
],
"enabled": true,
"environment": {
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0",
"FRIDA_MCP_MEMORY_WRITE": "0",
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0",
"FRIDA_MCP_ALLOW_ADB_SHELL": "0",
"FRIDA_MCP_SNAPSHOTS": "0",
"FRIDA_MCP_EVIDENCE": "1",
"FRIDA_MCP_EVIDENCE_MAX_MB": "200",
"FRIDA_MCP_REMOTE_TOKEN": "{env:FRIDA_MCP_REMOTE_TOKEN}",
"FRIDA_MCP_SCHEMA_PROFILE": "full",
"FRIDA_MCP_TOOL_PROFILE": "full",
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000",
"FRIDA_MCP_HTTP_TOKEN": "{env:FRIDA_MCP_HTTP_TOKEN}",
"FRIDA_MCP_DEBUG": "0"
}
}
}
}{
"mcpServers": {
"frida-mobile-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0",
"FRIDA_MCP_MEMORY_WRITE": "0",
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0",
"FRIDA_MCP_ALLOW_ADB_SHELL": "0",
"FRIDA_MCP_SNAPSHOTS": "0",
"FRIDA_MCP_EVIDENCE": "1",
"FRIDA_MCP_EVIDENCE_MAX_MB": "200",
"FRIDA_MCP_REMOTE_TOKEN": "${FRIDA_MCP_REMOTE_TOKEN}",
"FRIDA_MCP_SCHEMA_PROFILE": "full",
"FRIDA_MCP_TOOL_PROFILE": "full",
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000",
"FRIDA_MCP_HTTP_TOKEN": "${FRIDA_MCP_HTTP_TOKEN}",
"FRIDA_MCP_DEBUG": "0"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=frida-mobile-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImZyaWRhLW1vYmlsZS1tY3BAMC43LjMiXSwiZW52Ijp7IkZSSURBX01DUF9BTExPV19DVVNUT01fU0NSSVBUUyI6IjAiLCJGUklEQV9NQ1BfTUVNT1JZX1dSSVRFIjoiMCIsIkZSSURBX01DUF9BTExPV19OQVRJVkVfSU5KRUNUSU9OIjoiMCIsIkZSSURBX01DUF9BTExPV19BREJfU0hFTEwiOiIwIiwiRlJJREFfTUNQX1NOQVBTSE9UUyI6IjAiLCJGUklEQV9NQ1BfRVZJREVOQ0UiOiIxIiwiRlJJREFfTUNQX0VWSURFTkNFX01BWF9NQiI6IjIwMCIsIkZSSURBX01DUF9SRU1PVEVfVE9LRU4iOiIke0ZSSURBX01DUF9SRU1PVEVfVE9LRU59IiwiRlJJREFfTUNQX1NDSEVNQV9QUk9GSUxFIjoiZnVsbCIsIkZSSURBX01DUF9UT09MX1BST0ZJTEUiOiJmdWxsIiwiRlJJREFfTUNQX01BWF9SRVNQT05TRV9DSEFSUyI6IjI1MDAwIiwiRlJJREFfTUNQX0hUVFBfVE9LRU4iOiIke0ZSSURBX01DUF9IVFRQX1RPS0VOfSIsIkZSSURBX01DUF9ERUJVRyI6IjAifX0%3D"
}{
"servers": {
"frida-mobile-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0",
"FRIDA_MCP_MEMORY_WRITE": "0",
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0",
"FRIDA_MCP_ALLOW_ADB_SHELL": "0",
"FRIDA_MCP_SNAPSHOTS": "0",
"FRIDA_MCP_EVIDENCE": "1",
"FRIDA_MCP_EVIDENCE_MAX_MB": "200",
"FRIDA_MCP_REMOTE_TOKEN": "${FRIDA_MCP_REMOTE_TOKEN}",
"FRIDA_MCP_SCHEMA_PROFILE": "full",
"FRIDA_MCP_TOOL_PROFILE": "full",
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000",
"FRIDA_MCP_HTTP_TOKEN": "${FRIDA_MCP_HTTP_TOKEN}",
"FRIDA_MCP_DEBUG": "0"
}
}
}
}{
"mcpServers": {
"frida-mobile-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0",
"FRIDA_MCP_MEMORY_WRITE": "0",
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0",
"FRIDA_MCP_ALLOW_ADB_SHELL": "0",
"FRIDA_MCP_SNAPSHOTS": "0",
"FRIDA_MCP_EVIDENCE": "1",
"FRIDA_MCP_EVIDENCE_MAX_MB": "200",
"FRIDA_MCP_REMOTE_TOKEN": "${FRIDA_MCP_REMOTE_TOKEN}",
"FRIDA_MCP_SCHEMA_PROFILE": "full",
"FRIDA_MCP_TOOL_PROFILE": "full",
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000",
"FRIDA_MCP_HTTP_TOKEN": "${FRIDA_MCP_HTTP_TOKEN}",
"FRIDA_MCP_DEBUG": "0"
}
}
}
}extensions:
"frida-mobile-mcp":
enabled: true
name: "frida-mobile-mcp"
type: stdio
cmd: "npx"
args:
- "-y"
- "[email protected]"
envs:
"FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS": "0"
"FRIDA_MCP_MEMORY_WRITE": "0"
"FRIDA_MCP_ALLOW_NATIVE_INJECTION": "0"
"FRIDA_MCP_ALLOW_ADB_SHELL": "0"
"FRIDA_MCP_SNAPSHOTS": "0"
"FRIDA_MCP_EVIDENCE": "1"
"FRIDA_MCP_EVIDENCE_MAX_MB": "200"
"FRIDA_MCP_REMOTE_TOKEN": "${FRIDA_MCP_REMOTE_TOKEN}"
"FRIDA_MCP_SCHEMA_PROFILE": "full"
"FRIDA_MCP_TOOL_PROFILE": "full"
"FRIDA_MCP_MAX_RESPONSE_CHARS": "25000"
"FRIDA_MCP_HTTP_TOKEN": "${FRIDA_MCP_HTTP_TOKEN}"
"FRIDA_MCP_DEBUG": "0"
timeout: 300
Placeholders to fill from your own secret store: ${FRIDA_MCP_REMOTE_TOKEN}, ${FRIDA_MCP_HTTP_TOKEN}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dump, tools.hidden_textstability.changes, stability.rug_pull, stability.new_linksNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website ~liveness-unmeasured +updated-2d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
frida-mobile-mcp | npm | 0.7.3 | npx | FRIDA_MCP_REMOTE_TOKEN, FRIDA_MCP_HTTP_TOKEN |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.monkeywave/frida-mobile-mcp",
"title": "Frida Mobile MCP",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.7.3",
"packages": [
{
"version": "0.7.3",
"transport": {
"type": "stdio"
},
"identifier": "frida-mobile-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "FRIDA_DEVICE_ID",
"description": "Default Frida device ID to use (e.g. emulator-5554 or a USB serial). Can also be set with --device."
},
{
"name": "FRIDA_MCP_ALLOW_CUSTOM_SCRIPTS",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to enable execution of custom Frida scripts (execute_script and custom hook_function handlers). Disabled by default."
},
{
"name": "FRIDA_MCP_MEMORY_WRITE",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to enable the write_memory tool. Disabled by default for safety."
},
{
"name": "FRIDA_MCP_ALLOW_NATIVE_INJECTION",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to enable the inject_library tool (loads a native .so/.dylib into the target via Frida's injector). Disabled by default."
},
{
"name": "FRIDA_MCP_ALLOW_ADB_SHELL",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to enable the adb_shell tool (arbitrary shell commands on an Android device via adb). Disabled by default."
},
{
"name": "FRIDA_MCP_SNAPSHOTS",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to use V8 script-runtime snapshots to speed up repeated script loads (requires FRIDA_MCP_RUNTIME=v8). Disabled by default."
},
{
"name": "FRIDA_MCP_EVIDENCE",
"choices": [
"0",
"1"
],
"default": "1",
"description": "Set to \"0\" to stop persisting every tool result (params, status, structured result) to the evidence store; \"1\" forces it on. Enabled by default."
},
{
"name": "FRIDA_MCP_EVIDENCE_PATH",
"description": "Directory of the evidence store (records at <path>/YYYY-MM-DD/<evidence_id>.json plus index.jsonl, mode 0600). Defaults to ~/.config/frida-mobile-mcp/evidence."
},
{
"name": "FRIDA_MCP_EVIDENCE_MAX_MB",
"default": "200",
"description": "Size cap of the evidence store in MB; oldest records are pruned beyond it. Defaults to 200."
},
{
"name": "FRIDA_MCP_REMOTE",
"description": "host[:port] of a remote frida-server to add as a remote device at startup (port defaults to 27042)."
},
{
"name": "FRIDA_MCP_REMOTE_TOKEN",
"isSecret": true,
"description": "Auth token of the remote frida-server in FRIDA_MCP_REMOTE (frida-server --token)."
},
{
"name": "FRIDA_MCP_REMOTE_CERT",
"description": "Path to the PEM certificate of a TLS remote frida-server in FRIDA_MCP_REMOTE (frida-server --certificate)."
},
{
"name": "FRIDA_MCP_SCHEMA_PROFILE",
"choices": [
"full",
"compact"
],
"default": "full",
"description": "Tool schema profile. \"compact\" shortens tool schemas and descriptions for clients with small context windows."
},
{
"name": "FRIDA_MCP_TOOL_PROFILE",
"choices": [
"full",
"core"
],
"default": "full",
"description": "Tool exposure profile. \"core\" registers only 32 core tools to keep the tool catalog small next to other MCP servers."
},
{
"name": "FRIDA_MCP_TOOLS_EXCLUDE",
"description": "Comma-separated tool-name globs that are never registered, e.g. \"adb_*,frida_server_*\"."
},
{
"name": "FRIDA_MCP_MAX_RESPONSE_CHARS",
"format": "number",
"default": "25000",
"description": "Maximum number of characters in a single tool response; longer output is truncated."
},
{
"name": "FRIDA_MCP_HTTP_TOKEN",
"isSecret": true,
"description": "Bearer token required by HTTP clients. Only used with --transport http (required when --host is not loopback); unused for the default stdio transport."
},
{
"name": "FRIDA_MCP_RUNTIME",
"choices": [
"qjs",
"v8"
],
"description": "Frida script runtime to use for injected agents."
},
{
"name": "FRIDA_MCP_DEBUG",
"choices": [
"0",
"1"
],
"default": "0",
"description": "Set to \"1\" to enable debug logging on stderr. Can also be set with --debug."
},
{
"name": "FRIDA_MCP_BRIDGES_DIR",
"description": "Directory with prebuilt Java/ObjC bridge bundles (defaults to dist/bridges inside the package)"
},
{
"name": "FRIDA_MCP_COMPILER_PROJECT_DIR",
"description": "Cache directory for the frida.Compiler project used to compile ES module scripts"
},
{
"name": "FRITAP_AGENT_PATH",
"description": "Path to a friTap fritap_agent.js bundle for capture_tls (otherwise the installed friTap Python package or a pinned download is used)"
},
{
"name": "FRITAP_VERSION",
"description": "friTap release tag to download when no local agent is found (default v2.6.5)"
},
{
"name": "FRITAP_AGENT_SHA256",
"description": "Bare sha256 of the downloaded friTap agent for the selected FRITAP_VERSION tag. v2.6.5 is pinned in the package; set this for other tags."
}
]
}
],
"repository": {
"url": "https://github.com/monkeywave/frida-mobile-mcp",
"source": "github"
},
"websiteUrl": "https://github.com/monkeywave/frida-mobile-mcp",
"description": "Mobile Frida MCP Server - AI-powered mobile app exploration and testing via Frida instrumentation"
}