Frida MCP
A Model Context Protocol (MCP) implementation for Frida dynamic instrumentation toolkit.
Overview
This package provides an MCP-compliant server for Frida, enabling AI systems to interact with mobile and desktop applications through Frida's dynamic instrumentation capabilities. It is built on FastMCP to enable seamless integration with AI applications.
Features
- Built with FastMCP
- stdio (default), streamable HTTP, and SSE transports
- Comprehensive Frida tools exposed through MCP:
- Process management (list, attach, spawn, resume, kill)
- Device management (USB, remote devices)
- Interactive JavaScript REPL with real-time execution
- Script injection with progress tracking
- Process and device monitoring
- Resources for providing Frida data to models
- Prompts for guided Frida analysis workflows
- Progress tracking for long-running operations
- Full support for all MCP transport methods
Installation
Prerequisites
- Python 3.10 or later
- pip package manager
- Frida 16.0.0 or later
Quick Install
pip install frida-mcp-server
Development Install
# Clone the repository
git clone https://github.com/yourusername/frida-mcp.git
cd frida-mcp
# Install in development mode with extra tools
uv venv && uv pip install -e ".[dev]"
Running
# stdio (default, what MCP clients expect)
frida-mcp
# streamable HTTP
frida-mcp --transport streamable-http --host 0.0.0.0 --port 1337
# legacy SSE
frida-mcp --transport sse --port 1337
Client Integration
Claude Code
Add frida-mcp via the CLI:
# Stdio transport (default)
claude mcp add frida --transport stdio -- frida-mcp
# Or streamable HTTP transport
claude mcp add frida --transport http http://127.0.0.1:1337/mcp
Or add it directly to your configuration file (.mcp.json or ~/.claude.json):
{
"mcpServers": {
"frida": {
"command": "frida-mcp"
}
}
}
Codex
Add frida-mcp via the Codex CLI:
# Stdio transport (default)
codex mcp add frida -- frida-mcp
# Or streamable HTTP transport
codex mcp add frida --url http://127.0.0.1:1337/mcp
Or configure it in ~/.codex/config.toml (or project .codex/config.toml):
# Stdio transport
[mcp_servers.frida]
command = "frida-mcp"
# Or HTTP transport
# [mcp_servers.frida]
# url = "http://127.0.0.1:1337/mcp"
Crush
Add frida-mcp to your ~/.config/crush/crushrc (or .crushrc):
# Stdio transport
mcp add frida \
--command frida-mcp
# Or streamable HTTP transport
mcp add frida --type http \
--url "http://127.0.0.1:1337/mcp"
Or configure it in crush.json:
{
"mcp": {
"frida": {
"type": "stdio",
"command": "frida-mcp"
}
}
}
Usage
Once configured, you can use Frida MCP directly from your AI agent/client (Claude Code, Codex, Crush, etc.). The server provides the following capabilities:
Process Management
- List all running processes
- Attach to specific processes
- Spawn new processes
- Resume suspended processes
- Kill processes
Device Management
- List all connected devices (USB, remote)
- Get device information
- Connect to specific devices
Interactive JavaScript REPL
- Create interactive sessions with processes
- Execute JavaScript code in real-time
- Monitor process state and memory
- Hook functions and intercept calls
- Capture console.log output
- Handle errors and exceptions gracefully
Script Injection
- Inject custom JavaScript scripts
- Track injection progress
- Handle script errors and exceptions
Resources
- Get Frida version information
- Access process list in human-readable format
- Access device list in human-readable format
Development
# Clone repository
git clone https://github.com/yourusername/frida-mcp.git
cd frida-mcp
# Install development dependencies
uv venv && uv pip install -e ".[dev]"
# Run tests (frida is mocked, no device needed)
python -m pytest tests -q
License
GNU GPL v3.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file frida_mcp_server-0.2.0.tar.gz.
File metadata
- Download URL: frida_mcp_server-0.2.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8200de8b5d632214bad564aa467f40b7f882f1395eae787d160d14c8f2723343
|
|
| MD5 |
6dd93b28bd3813ea4e313a27a62fdfd0
|
|
| BLAKE2b-256 |
5eeaf8807712551f235ab03009128c7edf5099d1215ac6554380249fe5a68781
|
File details
Details for the file frida_mcp_server-0.2.0-py3-none-any.whl.
File metadata
- Download URL: frida_mcp_server-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89a789827d696dbccd4f7bb81f1b139ac9a635da3b2542f3824e6134f52d3e8d
|
|
| MD5 |
c8fb6454f551086a14146eba90644d2d
|
|
| BLAKE2b-256 |
0cf15e4c26720a70e83d5f245660d7a8abd6a19a9c3b33947e6e748c78fa45d6
|