IDAssistMCP
Standalone MCP (Model Context Protocol) server plugin for IDA Pro 9.x that exposes IDA's analysis capabilities to LLM clients like Claude Desktop.

Features
- 41 MCP tools covering binary analysis, decompilation, cross-references, symbol management, type system, navigation, patching, export, and more
- 6 consolidated tools with
action/format/direction parameters for comments, variables, types, xrefs, bookmarks, and code
- 8 MCP resources for browsable binary metadata (triage, functions, imports, exports, strings, info, segments, sections)
- 7 guided prompts for common reverse engineering workflows (function analysis, vulnerability identification, documentation, data flow tracing, function comparison, struct recovery, network protocol analysis)
- SSE and Streamable HTTP transports via Hypercorn ASGI server
- Thread-safe IDB modifications via
execute_on_main_thread() wrapper
- LRU analysis cache for expensive operations like decompilation
- Async task manager for long-running operations
- Pydantic configuration with environment variable support (
IDASSISTMCP_ prefix)
Installation
Prerequisites
- IDA Pro 9.x with Python 3.10+
- Hex-Rays decompiler (optional, for decompilation tools)
Option 1: IDA Plugin Manager (recommended)
hcli plugin install idassistmcp
This automatically installs the plugin and its Python dependencies.
Option 2: Manual install (from release tarball)
Download the latest release zip from GitHub Releases and extract it into your IDA plugins directory:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Extract the zip into %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Then install dependencies using IDA's bundled Python (not your system Python):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
Replace <IDA_INSTALL_DIR> with your IDA Pro installation path.
Tip: You can also use the IDAUSR environment variable to specify a custom plugins directory.
Usage
Starting the Server
- Open a binary in IDA Pro
- Press Ctrl+Shift+M or go to Edit > Plugins > IDAssistMCP
- The MCP server URL will be printed to IDA's output window
- Press Ctrl+Shift+M again to stop the server
Claude Desktop Configuration
Add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Environment Variables
Configure via environment variables with the IDASSISTMCP_ prefix:
Binary Management (2)
| Tool | Description |
|---|
list_binaries | List the currently loaded binary |
get_binary_info | Detailed binary metadata (arch, hashes, segments) |
Code Analysis (4)
Cross-References (1 consolidated)
| Tool | Actions | Description |
|---|
xrefs | direction: to/from/both, include_calls: bool | Xrefs and optional callers/callees for an address |
| Tool | Actions | Description |
|---|
comments | action: get, set, list, remove | Manage comments (regular, repeatable, function) |
Variables (1 consolidated)
| Tool | Actions | Description |
|---|
variables | action: list, rename | List locals, or rename local/global variables with scope: auto, local, global |
Types (2 — 1 consolidated + 1 standalone)
| Tool | Actions / Description |
|---|
types | action: list, set, create_struct, create_enum — manage IDB types |
get_classes | List struct/class types from type library |
Function Discovery (5)
Symbol Management (2)
| Tool | Description |
|---|
rename_symbol | Rename any symbol (function or data) |
batch_rename | Batch rename multiple symbols |
Binary Info (5)
Data Analysis (6)
Patching (3)
| Tool | Description |
|---|
patch_bytes | Patch raw bytes in IDB |
assemble_code | Assemble instruction text at an address and optionally patch it |
export_program | Export the patched binary or IDA database to disk |
Navigation (4)
Task Management (4)
| Tool | Description |
|---|
start_task | Start async background task |
get_task_status | Check task progress |
|
Project Structure
IDAssistMCP/
├── idassistmcp_plugin.py # IDA plugin_t entry point
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # FastMCP server + transport
├── context.py # Single-binary IDA context
├── tools.py # 41 MCP tools (IDA API)
├── resources.py # 8 MCP resources
├── prompts.py # 7 guided workflow prompts
├── config.py # Pydantic settings
├── cache.py # LRU analysis cache
├── tasks.py # Async task manager
├── logging.py # IDA logging wrapper
├── utils.py # IDA-specific utilities
└── ui/
└── tool_registry.py # Tool catalog for UI
License
See LICENSE file for details.