frida_mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@frida_mcpHook checkPassword in com.example.app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
frida_mcp
A Model Context Protocol server for Frida, built on the official MCP Python SDK (FastMCP).
It exposes Frida's dynamic-instrumentation capabilities as MCP tools so an AI agent (or any MCP client) can enumerate devices/processes, attach, inject JavaScript, hook functions, read memory, and collect results.
Features
Full device & process management (list / spawn / attach / resume / kill)
Persistent sessions and per-script lifecycle (load / unload individual scripts)
Arbitrary JavaScript execution:
load_script— persistent (hooks / interceptors), messages capturedexec_script— one-shot, returns the evaluated value + console.log synchronously
rpc_call— invokerpc.exportson a persistent scriptPer-(session, script) message queues with binary
datasupportConvenience tools:
read_memory,list_modules,list_exports,find_export,scan_memoryRobust error handling (tools return
{status: "error"}instead of throwing)Binary-data cap to keep large dumps from flooding the channel
Related MCP server: Frida MCP Server
Tools
Device / process
list_devices()— local, USB, remotelist_processes(device_id?)/find_process(name, device_id?)spawn_process(program, device_id?, paused=true)— suspended by default so you can hook before resumeresume_process(pid, device_id?)/kill_process(pid, device_id?)
Session
attach_to_process(pid, device_id?, name?)→session_idlist_sessions()— pids, scripts, pending message counts, detached statedetach_session(session_id)— unload all scripts + detach
Script
load_script(session_id, source, name?, runtime?)→script_id— persistent; messages capturedunload_script(session_id, script_id)exec_script(session_id, source, timeout?)— one-shot, returns value + logsrpc_call(session_id, script_id, method, args?, timeout?)— callrpc.exports
Messages
get_messages(session_id, script_id?, clear?, limit?, include_data?)— retrievesend()output; binarydatabase64-inlined up to a cap
Convenience
read_memory(session_id, address, size)→ hex + base64list_modules(session_id)list_exports(session_id, module, kind?)find_export(session_id, module, export_name)scan_memory(session_id, pattern, module?, max_hits?)
Resources
frida://version— Frida binding versionfrida://sessions— JSON snapshot of active sessions
Install
pip install -e E:/Tools/Frida/frida_mcp
# also need the frida runtime on the host
pip install fridaRequires Python 3.8+, Frida 16+, and a reachable frida-server (or gadget) on the target.
Configure (.mcp.json)
{
"mcpServers": {
"frida_mcp": {
"command": "frida_mcp"
}
}
}Typical workflow: hook before the target loads
spawn_process("com.example.app") # -> pid (suspended)
attach_to_process(pid) # -> session_id
load_script(session_id, "<hook JS>") # -> script_id (keep-alive)
resume_process(pid) # app runs; hook fires
get_messages(session_id) # collect send() output
unload_script(session_id, script_id) # or detach_session(session_id)Example: dump every Lua chunk that the Lua VM compiles
Bypasses any AssetBundle encryption entirely — by the time the Lua VM sees the source, it's already decrypted. The script writes each chunk to the device filesystem and only reports small metadata back (so the MCP channel never sees the full payload):
// load_script(source=...)
var DUMP = "/sdcard/lua_dump/";
var counter = 0;
Interceptor.attach(Module.findExportByName("libxlua.so", "luaL_loadbuffer"), {
onEnter: function (args) {
try {
var buf = args[1];
var len = args[2].toInt32();
var bytes = Memory.readByteArray(buf, len);
var path = DUMP + Date.now() + "_" + (counter++) + ".lua";
var f = new File(path, "wb");
f.write(bytes);
f.flush(); f.close();
send({ type: "lua_chunk", path: path, size: len, head: hexdump(bytes, { length: 32 }) });
} catch (e) { send({ type: "err", err: e.toString() }); }
}
});The exact chunk-name argument to
luaL_loadbufferdepends on the build; tune per target. Thenadb pull /sdcard/lua_dumpand you have the plaintext Lua.
Notes & limits
Tools return
{status: "error", error: "..."}(orstatus: "timeout") instead of throwing.Binary
datalarger than 64 KiB is reported by size only — write to a device file andadb pull.Anti-Frida defences in the target are the environment's concern — confirm you can attach first.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP-compliant server that enables AI systems to interact with mobile and desktop applications through Frida's dynamic instrumentation capabilities, allowing for process management, device control, JavaScript execution, and script injection.405MIT
- AlicenseBqualityCmaintenanceA comprehensive MCP server that exposes Frida's dynamic instrumentation toolkit to AI agents for process management, script injection, and memory operations. It provides over 50 tools to interact with local and mobile devices, enabling advanced capabilities like function hooking and memory analysis.55MIT
- AlicenseAqualityCmaintenanceA comprehensive MCP server for Frida dynamic instrumentation, enabling AI agents to manage devices, processes, scripts, memory, and ADB operations.3923MIT
- AlicenseCqualityCmaintenanceA Frida MCP server for authorized dynamic analysis and application security research, exposing device/session management, script injection, process and memory inspection, and platform-specific workflows.1002MIT
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/276793422/frida_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server