Frida MCP Server
Enables dynamic instrumentation of Android applications, allowing agents to enumerate Java classes, hook methods, find heap instances, and interact with the Java runtime on connected devices.
Provides capabilities for instrumenting iOS apps through Objective-C method hooking, instance searching, and memory analysis on jailbroken devices or via Frida-gadget.
Supports dynamic instrumentation of macOS processes, enabling native function hooking, Objective-C method interception, and instruction-level tracing.
Click on "Deploy 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 MCP Server Attach to the Spotify process and trace all calls to its crypto functions"
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 Server
A comprehensive MCP (Model Context Protocol) server that exposes the full power of Frida's dynamic instrumentation toolkit to AI agents.
Features
55 tools covering all major Frida capabilities:
Device & Process Management
frida_list_devices- List all available Frida devicesfrida_get_device_info- Get detailed device informationfrida_list_processes- List running processesfrida_list_applications- List installed applicationsfrida_get_process- Get process details by name/PIDfrida_spawn- Spawn a new process (suspended)frida_resume- Resume a spawned processfrida_kill- Kill a process
Session Management
frida_attach- Attach to a running processfrida_detach- Detach from a session
Script Injection
frida_inject_script- Inject and run JavaScript in a processfrida_unload_script- Unload an injected scriptfrida_rpc_call- Call RPC functions in scriptsfrida_evaluate- Evaluate arbitrary JavaScript
Function Hooking
frida_hook_function- Hook native functionsfrida_intercept_method- Intercept ObjC/Java methodsfrida_trace- Trace function calls with patterns
Memory Operations
frida_memory_scan- Scan memory for patternsfrida_memory_read- Read bytes from memoryfrida_memory_write- Write bytes to memoryfrida_search_strings- Search for strings in memory
Module Enumeration
frida_list_modules- List loaded modulesfrida_list_exports- List module exportsfrida_list_imports- List module importsfrida_resolve_exports- Find functions by pattern (ApiResolver)
Java (Android)
frida_java_enumerate_classes- List Java classesfrida_java_hook_method- Hook Java methodsfrida_java_find_instances- Find class instances on heapfrida_java_call_method- Call Java methods
Objective-C (iOS/macOS)
frida_objc_enumerate_classes- List ObjC classesfrida_objc_hook_method- Hook ObjC methodsfrida_objc_find_instances- Find class instances on heap
Advanced
frida_stalker_trace- Instruction-level tracingfrida_inject_library- Inject shared librariesfrida_enable_spawn_gating- Intercept new processesfrida_disable_spawn_gating- Disable spawn gatingfrida_get_pending_spawn- Get pending spawned processesfrida_get_process_info- Detailed process information
File Operations
frida_pull_file- Download file from devicefrida_push_file- Upload file to device
Installation
# Install dependencies
pip3 install frida frida-tools mcp
# Or with --break-system-packages on newer Ubuntu
pip3 install --break-system-packages frida frida-tools mcpUsage
As stdio MCP server
python3 server.pyExample MCP configuration
{
"mcpServers": {
"frida": {
"command": "python3",
"args": ["/path/to/frida-mcp/server.py"]
}
}
}Example Workflows
1. List processes and attach
1. Call frida_list_processes to see running processes
2. Call frida_attach with target="processName" or target=1234 (PID)
3. Use the returned session_id for further operations2. Hook a function
1. frida_attach to the target process
2. frida_hook_function with the session_id, function name, and optional onEnter/onLeave code
3. Observe the script_id and retrieve logs with frida_unload_script when done3. Trace SSL/crypto calls
1. frida_attach to a network application
2. frida_trace with include=["*SSL*", "*crypto*"] to see all SSL-related calls4. Android app analysis
1. frida_list_applications on USB device to find the app
2. frida_attach to the app
3. frida_java_enumerate_classes to explore classes
4. frida_java_hook_method to intercept specific methods
5. frida_java_find_instances to find live objects5. Memory forensics
1. frida_attach to the target process
2. frida_search_strings to find interesting strings
3. frida_memory_read to dump specific memory regions
4. frida_memory_scan for byte patternsDevice Types
local- Local system (default)usb- USB-connected device (Android/iOS with frida-server)remote- Remote frida-server over TCP
Requirements
Python 3.8+
Frida 16.0+ (
pip install frida frida-tools)MCP SDK (
pip install mcp)
For mobile device support:
Android: Install frida-server on the device
iOS: Install frida via jailbreak or use frida-gadget
Security Notes
⚠️ Frida is a powerful tool that can be used for both security research and malicious purposes. Only use on systems you own or have explicit permission to test.
License
MIT
Memory Management (NEW)
frida_memory_alloc- Allocate memory in target processfrida_memory_protect- Change memory page permissionsfrida_enumerate_ranges- List memory ranges/maps
Thread Operations (NEW)
frida_enumerate_threads- List all threads with statefrida_backtrace- Get stack backtrace
Symbol Resolution (NEW)
frida_debug_symbol- Resolve symbols from address/namefrida_list_symbols- List debug symbols from module
Native Calling (NEW)
frida_native_function- Call native functions directlyfrida_cmodule- Compile and load inline C code
ObjC Extended (NEW)
frida_objc_call_method- Call ObjC methods on class/instance
Java Extended (NEW)
frida_java_load_dex- Load DEX files dynamically
Network (NEW)
frida_socket_connect- Create socket connections from process
Available Tools
55 toolsfrida_apk_inspectC
Inspect an Android APK file using frida-apk.
Inputs: apk_path (required).
frida_attachC
Attach to a running process. Returns a session ID for further operations.
Inputs: target (required), device_id, device_type.
frida_backtraceC
Get stack backtrace for a thread. Useful for debugging and analysis.
Inputs: session_id (required), thread_id, limit.
frida_cmoduleC
Compile and load inline C code for high-performance hooks. Returns symbols exported by the C code.
Inputs: session_id (required), code (required), symbols.
frida_compile_agentB
Compile a Frida agent (JavaScript/TypeScript) using frida-compile. Useful for complex agents with dependencies.
Inputs: source_code (required), output_filename.
frida_debug_symbolC
Resolve debug symbol information from an address or find address from symbol name.
Inputs: session_id (required), address, name.
frida_detachC
Detach from a session.
Inputs: session_id (required).
frida_disable_spawn_gatingC
Disable spawn gating.
Inputs: device_id, device_type.
frida_enable_spawn_gatingC
Enable spawn gating to intercept new processes before they run.
Inputs: device_id, device_type.
frida_enumerate_rangesC
Enumerate memory ranges/maps in the process with their protections.
Inputs: session_id (required), protection.
frida_enumerate_threadsC
List all threads in the process with their state and context.
Inputs: session_id (required).
frida_evaluateC
Evaluate arbitrary JavaScript in the Frida runtime of an attached process.
Inputs: session_id (required), code (required).
frida_get_device_infoC
Get detailed information about a specific device including system parameters.
Inputs: device_id, device_type.
frida_get_frontmostC
Get the frontmost application (mobile devices).
Inputs: device_id, device_type.
frida_get_pending_spawnC
Get list of processes waiting in spawn gate.
Inputs: device_id, device_type.
frida_get_processC
Get detailed info about a specific process by name or PID.
Inputs: process (required), device_id, device_type.
frida_get_process_infoC
Get detailed info about the attached process (arch, platform, threads, etc.).
Inputs: session_id (required).
frida_hook_functionC
Hook a specific function to log calls, modify arguments, or change return values.
Inputs: session_id (required), function (required), module, on_enter, +1 more.
frida_inject_libraryC
Inject a shared library (.so/.dll/.dylib) into the target process.
Inputs: pid (required), library_path (required), entrypoint (required), data, +2 more.
frida_inject_scriptC
Inject and run a Frida JavaScript script in a process. The script can hook functions, intercept calls, modify behavior, read memory, etc.
Inputs: session_id (required), script (required), on_message.
frida_intercept_methodC
Intercept an Objective-C method (iOS) or Java method (Android).
Inputs: session_id (required), class_name (required), method_name (required), implementation.
frida_java_call_methodC
Call a method on a Java class or instance (Android).
Inputs: session_id (required), class_name (required), method_name (required), args, +1 more.
frida_java_enumerate_classesC
Enumerate all loaded Java classes (Android). Returns class names matching an optional pattern.
Inputs: session_id (required), pattern.
frida_java_find_instancesC
Find live instances of a Java class on the heap (Android).
Inputs: session_id (required), class_name (required), limit.
frida_java_hook_methodC
Hook a Java method (Android). Log calls, modify args/return values.
Inputs: session_id (required), class_name (required), method_name (required), overload, +3 more.
frida_java_load_dexC
Load a DEX file dynamically into the Android runtime.
Inputs: session_id (required), dex_path (required), class_name.
frida_killC
Kill a process by PID.
Inputs: pid (required), device_id, device_type.
frida_list_applicationsC
List all installed applications on a device (useful for mobile devices).
Inputs: device_id, device_type.
frida_list_devicesA
List all available Frida devices (local, USB, remote). Returns device ID, name, and type.
Inputs: no named parameters.
frida_list_exportsC
List all exported functions from a module.
Inputs: session_id (required), module (required).
frida_list_importsC
List all imported functions in a module.
Inputs: session_id (required), module (required).
frida_list_modulesC
List all loaded modules/libraries in a process.
Inputs: session_id (required).
frida_list_processesB
List all running processes on a device. Returns PID, name, and parameters.
Inputs: device_id, device_type.
frida_list_symbolsC
List debug symbols from a module.
Inputs: session_id (required), module (required), filter.
frida_memory_allocC
Allocate memory in the target process. Returns the address of allocated memory.
Inputs: session_id (required), size (required), protection.
frida_memory_protectC
Change memory protection/permissions for a memory region.
Inputs: session_id (required), address (required), size (required), protection (required).
frida_memory_readC
Read bytes from a specific memory address.
Inputs: session_id (required), address (required), size (required).
frida_memory_scanC
Scan process memory for a pattern.
Inputs: session_id (required), pattern (required), protection.
frida_memory_writeC
Write bytes to a specific memory address.
Inputs: session_id (required), address (required), data (required).
frida_native_functionC
Call a native function directly by address or name. Specify return type and argument types.
Inputs: session_id (required), address (required), return_type, arg_types, +1 more.
frida_objc_call_methodC
Call an Objective-C method on a class or instance (iOS/macOS).
Inputs: session_id (required), class_name (required), method_name (required), args, +2 more.
frida_objc_enumerate_classesC
Enumerate all loaded Objective-C classes (iOS/macOS).
Inputs: session_id (required), pattern.
frida_objc_find_instancesC
Find live instances of an ObjC class on the heap (iOS/macOS).
Inputs: session_id (required), class_name (required), limit.
frida_objc_hook_methodC
Hook an Objective-C method (iOS/macOS).
Inputs: session_id (required), class_name (required), method_name (required), log_args, +1 more.
frida_pull_fileC
Pull/download a file from the device.
Inputs: remote_path (required), local_path (required), device_id, device_type.
frida_push_fileC
Push/upload a file to the device.
Inputs: local_path (required), remote_path (required), device_id, device_type.
frida_resolve_exportsC
Find functions matching a pattern using ApiResolver. Supports wildcards.
Inputs: session_id (required), query (required), limit.
frida_resumeC
Resume a spawned process.
Inputs: pid (required), device_id, device_type.
frida_rpc_callC
Call an exported RPC function in an injected script.
Inputs: script_id (required), method (required), args.
frida_search_stringsC
Search for strings in process memory.
Inputs: session_id (required), pattern (required), case_sensitive, limit.
frida_socket_connectC
Create a socket connection from within the target process.
Inputs: session_id (required), host (required), port (required), type.
frida_spawnA
Spawn a new process in suspended state. Returns PID. Use frida_resume to start it.
Inputs: program (required), args, env, cwd, +2 more.
frida_stalker_traceB
Trace execution at instruction/block level using Stalker. Very powerful but heavy.
Inputs: session_id (required), thread_id, events, duration.
frida_traceC
Trace function calls matching a pattern. Returns call logs with arguments and return values.
Inputs: target (required), include (required), exclude, duration, +2 more.
frida_unload_scriptC
Unload a previously injected script.
Inputs: script_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 55 tools
Most tools have distinct purposes with clear boundaries, such as frida_attach for attaching to processes and frida_memory_read for reading memory. However, some overlap exists, like frida_hook_function, frida_intercept_method, frida_java_hook_method, and frida_objc_hook_method, which all involve hooking but target different platforms or languages, potentially causing confusion if not carefully described.
All tool names follow a consistent snake_case pattern with a 'frida_' prefix, making them predictable and easy to parse. The naming convention is uniform across all 55 tools, with no deviations in style or structure.
With 55 tools, the count is excessive for a single server, likely overwhelming for agents and leading to decision paralysis. While Frida is a comprehensive framework, this many tools suggests poor scoping, as many could be consolidated or grouped into subcategories.
The tool set provides complete coverage for dynamic instrumentation and analysis tasks, including process management, memory operations, hooking, scripting, and platform-specific features for Android and iOS. No obvious gaps are present; it supports full lifecycle operations from spawning to debugging.
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows