Content
# Tool List
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://www.hex-rays.com/products/ida/)
## 1. Project Overview
`ida-pro-mcp` is a MCP server/plugin project for IDA Pro, aiming to expose IDA analysis capabilities to MCP clients (e.g., Cline, Roo Code, Claude Desktop, etc.).
This project is based on [mrexodia/ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp) and focuses on removing redundant MCP capabilities, reducing context occupation, and saving token costs.
The current repository contains two execution paths:
| Path | Description |
| ----------------- | --------------------------------------------------- |
| `server` | Connects to IDA plugin-provided JSON-RPC capabilities (common mode, port 13339) |
| `idalib_server` | IDA library-based headless mode (requires local IDA runtime) |
## 2. Key Features
- Exposes IDA disassembly/decompilation and symbol information query capabilities
- Supports batch renaming, commenting, and type-related operations (including unsafe tools)
- Supports automatic installation of MCP client configuration and IDA plugin entry
- Supports lightweight auxiliary capabilities:
- `get_current_context_summary`
- `get_selected_function_overview`
## 3. Project Structure
```text
src/ida_pro_mcp/
├── __init__.py
├── server.py # MCP main server (connects to IDA plugin JSON-RPC)
├── idalib_server.py # idalib mode MCP server
├── mcp-plugin.py # IDA side plugin (JSON-RPC service, based on MCP-Test v1.6.0)
├── script_utils.py # Script generation utilities
├── mcp_config.json # Default configuration
└── server_generated.py # Automatically generated (do not modify manually)
```
## 4. Environment Requirements
### 4.1 General
- Python `>= 3.8` (compatible with IDA Pro built-in Python environment)
- IDA Pro `>= 7.5` (plugin mode)
### 4.2 idalib Mode Additional Requirements
- IDA Pro `>= 9.0` (`idapro` / `idalib` runtime available)
- Set `IDADIR` to a valid IDA installation directory
## 5. Installation
```bash
pip install -e .
```
Optional dependencies (as needed):
```bash
pip install angr frida-tools
```
## 6. Configuration
Default configuration file: `src/ida_pro_mcp/mcp_config.json`
```json
{
"host": "127.0.0.1",
"port": 13339,
"script_utils_path": "script_utils.py",
"plugin": { "port": 13339, "auto_reuse": true, "auto_select_port": true },
"simple_server": { "port": 13339 },
"idalib_server": { "port": 8746 }
}
```
Configuration priority (high → low):
1. Environment variables
2. Configuration file
3. Code defaults
| Environment Variable | Description |
| ------------------- | ----------------------------------------------------- |
| `MCP_HOST` | Overrides listening address |
| `MCP_PORT` | Overrides `server.py` RPC target port |
| `IDALIB_MCP_PORT` | Overrides `idalib_server.py` port (prioritized over `MCP_PORT`) |
> Note: If the configuration file is missing, `server.py` defaults to port `13339` (consistent with the new plugin MCP-Test v1.6.0).
## 7. Usage
### 7.1 Install MCP Client Configuration and IDA Plugin
```bash
# Install
ida-pro-mcp --install
# Uninstall
ida-pro-mcp --uninstall
```
### 7.2 Start Main MCP Server (Connects to IDA Plugin)
```bash
python -m ida_pro_mcp.server
```
Common parameters:
| Parameter | Description |
| --------------------------- | --------------------------------------------------------- |
| `--transport` | `stdio` (default) or `http://127.0.0.1:8744` |
| `--ida-rpc` | Specifies IDA plugin RPC address (default `http://127.0.0.1:13339`) |
| `--unsafe` | Enables unsafe tools |
| `--config` | Prints MCP client configuration JSON |
| `--auto-run-ida <binary>` | Automatically starts IDA and loads the specified sample (Windows experience more complete) |
### 7.3 Start idalib Mode
```bash
python -m ida_pro_mcp.idalib_server <binary_path> --host 127.0.0.1 --port 8746
```
If it reports `Cannot load IDA library file idalib.dll`, please check:
- IDA version is 9.0+
- `IDADIR` points to a valid IDA installation directory
### 7.4 Directly Connect to Plugin JSON-RPC (Debugging)
After the IDA plugin is started, you can send requests to the following paths:
- `http://127.0.0.1:13339/mcp`
- `http://127.0.0.1:13339/jsonrpc`
Example:
```python
import json
import requests
resp = requests.post(
"http://127.0.0.1:13339/jsonrpc",
headers={"Content-Type": "application/json"},
data=json.dumps({
"jsonrpc": "2.0",
"method": "check_connection",
"params": [],
"id": 1
})
)
print(resp.json())
```
> The plugin can be started in IDA via `Edit → Plugins → IDA Pro MCP Test`, with the hotkey `Ctrl+Alt+T` (or `Ctrl+Option+T` on macOS).
## 8. Project Integrity Check (Local)
Recent check results:
| Check Item | Status |
| ----------------------------------------- | ------------- |
| `python -m compileall src` | ✅ Passed |
| `python -m ida_pro_mcp.server --help` | ✅ Passed |
| `python -m ida_pro_mcp.server --config` | ✅ Passed |
| `check_connection` (port 13339) | ✅ Passed |
| `get_current_context_summary` | ✅ Passed |
| `get_selected_function_overview` | ✅ Passed |
| Lightweight interface verification | ✅ 40/40 Passed |
> The current repository does not include a directly executable unit test collection. The `pytest` dependency exists but requires manual installation and test case supplementation. `idalib_server` cannot be directly imported in an environment without an IDA runtime, which is expected behavior.
## 9. Frequently Asked Questions
### 9.1 MCP Cannot Connect to IDA
- Confirm that IDA has loaded a sample
- Manually start the plugin in IDA: `Edit → Plugins → IDA Pro MCP Test` (default hotkey `Ctrl+Alt+T`)
- Check port occupancy and `mcp_config.json` port consistency (default 13339)
### 9.2 Port Conflict
- Modify the `port` / `plugin.port` in `mcp_config.json` (default 13339)
- Or override using environment variables `MCP_PORT` / `IDALIB_MCP_PORT`
## 10. Development Notes
Entry scripts:
- `ida-pro-mcp` → `ida_pro_mcp.server:main`
- `idalib-mcp` → `ida_pro_mcp.idalib_server:main`
> `server_generated.py` is dynamically generated by `server.py` and should not be manually maintained.
## 11. Contact Information
### Developers
| Name | Contact Information |
| ------- | -------------- |
| name | QQ: 1559820232 |
| grand | QQ: 3527424707 |
| Britney | QQ: 2855057900 |
### Project Links
- GitHub Repository: [https://github.com/namename333/idapromcp_333](https://github.com/namename333/idapromcp_333)
- Original Project: [https://github.com/mrexodia/ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp)
## 12. License
This project is open-sourced under the [MIT License](https://opensource.org/licenses/MIT), allowing anyone to freely use, copy, modify, merge, publish, distribute, sublicense, and/or sell this software without author permission.
```
MIT License
Copyright (c) 2025 name, grand, Britney
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
## 13. Acknowledgements
* Thanks to mrexodia for providing the original IDA Pro MCP plugin
* Thanks to Claude for his hard work
* Thanks to all developers and users who have contributed to this project
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.