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 uses the official MCP Python SDK to enable seamless integration with AI applications.
Demo
https://github.com/dnakov/frida-mcp/raw/main/docs/assets/frida-mcp.mov
Features
- Built with the official MCP Python SDK
- Comprehensive Frida tools exposed through MCP:
- Process management (list, attach, spawn, resume, kill)
- Device management (USB, remote devices)
- Interactive JavaScript REPL sessions
- Script injection with progress tracking
- 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.8 or later
- pip package manager
- Frida 16.0.0 or later
Quick Install
pip install frida-mcp
Development Install
# Clone the repository
git clone https://github.com/yourusername/frida-mcp.git
cd frida-mcp
# Install in development mode with extra tools
pip install -e ".[dev]"
Claude Desktop Integration
To use Frida MCP with Claude Desktop, you'll need to update your Claude configuration file:
-
Locate your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add the following to your configuration file:
{
"mcpServers": {
"frida": {
"command": "frida-mcp"
}
}
}
Alternatively, you can use the MCP CLI to install the server:
# Install using the module path
mcp install -m frida_mcp.cli
Usage
Once installed, you can use Frida MCP directly from Claude Desktop. 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
Script Injection
- Inject custom JavaScript scripts
- Track injection progress
- Handle script errors and exceptions
Development
# Clone repository
git clone https://github.com/yourusername/frida-mcp.git
cd frida-mcp
# Install development dependencies
pip install -e ".[dev]"
License
MIT
Metadata
Release files for frida-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frida_mcp-0.1.1.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frida_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / frida_mcp-0.1.1.tar.gz
| Download URL | frida_mcp-0.1.1.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6636861f2cabdf1c77ca63ae368decb1b6602d7d997862a0e2280f70614cd2c
|
|
BLAKE2b-256 checksum How to use checksums |
38b9e0380dadb8d941142ecf9db8df72159c545e13bc3b110f42f0c971edce19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.7
|
Release files / frida_mcp-0.1.1-py3-none-any.whl
| Download URL | frida_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
55c63cf190c17997b13055f83e29941b9373322e96b8b97846dfb54a355896ee
|
|
BLAKE2b-256 checksum How to use checksums |
910452eaef9685b3eea109dcc541dd4a336098c0bb00e6ed03d06818013d321b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.7
|