Pending JsBridge fix #3
Yet Another Frida MCP Server — Full-featured MCP server for Frida dynamic instrumentation.
English | 简体中文
Existing Frida MCP servers on the market are either abandoned, poorly maintained, or limited to a handful of basic operations. ya-frida-mcp was built from scratch to be a comprehensive, production-ready bridge between AI agents and Frida — covering device management, process control, script injection, memory operations, and even ADB integration out of the box.
59 MCP tools across 7 categories, all returning structured JSON for minimal token consumption.
| Category | Tools | Highlights |
|---|---|---|
| Device | frida_ls_devices frida_get_device frida_add_remote frida_remove_remote frida_query_system_parameters frida_enable_spawn_gating frida_disable_spawn_gating frida_enumerate_pending_spawn frida_enumerate_pending_children frida_inject_library_file frida_inject_library_blob |
Device management, system info, spawn gating, native library injection |
| Process | frida_ps frida_spawn frida_attach frida_detach frida_kill frida_resume frida_list_sessions |
Full process lifecycle; frida_ps supports scope/pids, frida_spawn supports argv/env/cwd/stdio |
| App | frida_ls_apps frida_ls_apps_running frida_get_frontmost_application |
App enumeration with scope/identifiers filtering |
| Script | frida_inject frida_rpc_call frida_unload_script frida_get_messages frida_list_scripts frida_enumerate_modules frida_enumerate_exports frida_list_exports frida_post_message frida_enable_child_gating frida_disable_child_gating frida_compile_script frida_snapshot_script frida_eternalize_script |
JS injection (QJS/V8), RPC, child gating, bytecode compilation, script snapshots |
| Memory | frida_memory_read frida_memory_write frida_memory_scan frida_memory_protect |
Read/write/scan/protect with hex I/O |
| ADB (optional) | adb_shell adb_push adb_pull adb_install adb_logcat adb_forward adb_root ... |
17 tools, auto-registered when adb is on PATH |
| Frida Server (optional) | frida_server_status frida_server_install frida_server_start frida_server_stop |
Auto-download, push, and manage frida-server on Android via ADB |
Also includes:
- MCP Resources — live device list, session state, process/app enumeration as subscribable resources
- MCP Prompts — workflow templates for native hooking, Java/ObjC hooking, Stalker tracing, module dumping
- TOML Configuration — customize transport, default device, remote devices, timeouts
- CLI Utilities —
doctor,devices,ps,ls,tools,install/uninstallfor MCP clients - One-command client setup — register into 22+ MCP clients including Claude Desktop, Cursor, VS Code, Windsurf, Roo Code, Cline, Kiro, and more
- Structured output — all tools return compact JSON with
Literaltype hints for LLM-friendly schemas
# PyPI (recommended)
pip install ya-frida-mcp
# Or via uv
uv tool install ya-frida-mcp# Pick your client
ya-frida-mcp install claude-desktop
ya-frida-mcp install cursor
ya-frida-mcp install vscode
ya-frida-mcp install windsurf
ya-frida-mcp install roo-code
ya-frida-mcp install cline
# All supported clients at once
ya-frida-mcp install allAll supported clients (22)
| Key | Client |
|---|---|
amazon-q |
Amazon Q Developer CLI |
augment-code |
Augment Code |
claude-desktop |
Claude Desktop |
claude-code |
Claude Code |
cline |
Cline |
copilot-cli |
Copilot CLI |
crush |
Crush |
cursor |
Cursor |
gemini-cli |
Gemini CLI |
kilo-code |
Kilo Code |
kiro |
Kiro |
lm-studio |
LM Studio |
opencode |
Opencode |
qodo-gen |
Qodo Gen |
qwen-coder |
Qwen Coder |
roo-code |
Roo Code |
trae |
Trae |
vscode |
VS Code |
vscode-insiders |
VS Code Insiders |
warp |
Warp |
windsurf |
Windsurf |
zed |
Zed |
# stdio (default, used by MCP clients)
ya-frida-mcp serve
# SSE transport
ya-frida-mcp serve -t sse -H 0.0.0.0 -p 8000ya-frida-mcp init-config # generates config.toml in current directory
ya-frida-mcp show-config # display resolved config
ya-frida-mcp -c /path/to/config.toml serve# config.toml
[server]
name = "ya-frida-mcp"
transport = "stdio" # "stdio" or "sse"
host = "127.0.0.1"
port = 8000
[frida]
default_device = "local" # "local", "usb", or device ID
script_timeout = 10
spawn_timeout = 15
[[frida.remote_devices]]
host = "192.168.1.100"
port = 27042ya-frida-mcp doctor # diagnose Frida connectivity
ya-frida-mcp devices # list Frida devices
ya-frida-mcp ps # list running processes (frida-ps)
ya-frida-mcp ls # list installed apps (frida-ls)
ya-frida-mcp tools # list all registered MCP tools
ya-frida-mcp version # show version info# Clone
git clone https://github.com/1shin-7/ya-frida-mcp.git
cd ya-frida-mcp
# Install dependencies
uv sync
# Run in dev mode
uv run ya-frida-mcp serve
# Lint
uv run ruff check ya_frida_mcp/
# List tools (verify registration)
uv run ya-frida-mcp toolsya_frida_mcp/
├── cli.py # Click CLI entry point
├── config.py # TOML configuration management
├── installer.py # MCP client config installers
├── server.py # FastMCP server factory + lifespan
├── resources.py # MCP resources
├── prompts.py # MCP workflow prompts
├── core/
│ ├── base.py # ABC base classes + async helpers
│ ├── device.py # Frida device wrapper + manager
│ ├── session.py # Session + script lifecycle
│ ├── adb.py # ADB CLI async wrapper
│ ├── frida_server.py # frida-server download & deploy logic
│ └── output.py # Structured output helpers
└── tools/
├── device.py # Device discovery tools
├── process.py # Process management tools
├── app.py # App enumeration tools
├── script.py # Script injection + RPC tools
├── memory.py # Memory read/write/scan tools
├── adb.py # ADB CLI tools (optional)
└── frida_server.py # frida-server management tools (optional)