protogrid

Search / io.github.monkeywave/frida-mobile-mcp

Frida Mobile MCP

L0· runs locally

Mobile Frida MCP Server - AI-powered mobile app exploration and testing via Frida instrumentation

v0.7.3 · active · repository · website · descriptor JSON · versions

Runs on your machine: something must execute the package.Only local packages are published (npm, PyPI, OCI, …). The registry never executes them, so tools are unknown until you run it.
Quality–not scored
Trust96of 100
Packages1
Tools seen0

Connect

8 clients · secrets stay placeholders
{
  "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.

Quality – / 100not scored

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygienen/a · weight 30
  • n/a
    tools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dump, tools.hidden_texttool list unknown (behind auth, not probed, or empty)
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool list unknown
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know [email protected]

Tool list unknown · checked 2026-11-14 08:10 UTC

Tool changes

No 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.

Trust 96 / 100

provenance90
livenessn/a
freshness100
hygiene100

+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.

Dependencies

[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.

Endpoints

packageregistryversionruntimesecrets
frida-mobile-mcpnpm0.7.3npxFRIDA_MCP_REMOTE_TOKEN, FRIDA_MCP_HTTP_TOKEN

Tools (0)

No tools observed. Local packages are never executed by the registry.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "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"
}