IDAssistMCP
Enables LLM clients like Claude to interact with IDA Pro for binary analysis, decompilation, cross-references, patching, and more via 41 MCP tools, 8 resources, and 7 guided prompts.
README
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/directionparameters 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
IDAUSRenvironment 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:
| Variable | Default | Description |
|---|---|---|
IDASSISTMCP_SERVER__HOST |
localhost |
Server bind address |
IDASSISTMCP_SERVER__PORT |
9080 |
Server port |
IDASSISTMCP_SERVER__TRANSPORT |
streamablehttp |
Transport type (sse or streamablehttp) |
IDASSISTMCP_DEBUG |
false |
Enable debug mode |
IDASSISTMCP_LOG_LEVEL |
INFO |
Log level |
Tools Reference
Binary Management (2)
| Tool | Description |
|---|---|
list_binaries |
List the currently loaded binary |
get_binary_info |
Detailed binary metadata (arch, hashes, segments) |
Code Analysis (4)
| Tool | Description |
|---|---|
get_code |
Get function code — format: 'decompile' (pseudo-C) or 'disasm' (assembly) |
analyze_function |
Comprehensive analysis: metadata, CFG, callers/callees, decompilation |
get_basic_blocks |
CFG basic blocks with successors/predecessors |
get_function_stack_layout |
Stack frame layout (locals, args, saved regs) |
Cross-References (1 consolidated)
| Tool | Actions | Description |
|---|---|---|
xrefs |
direction: to/from/both, include_calls: bool |
Xrefs and optional callers/callees for an address |
Comments (1 consolidated)
| 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)
| Tool | Description |
|---|---|
get_functions |
All functions with filtering and pagination |
search_functions_by_name |
Search by name pattern and size filters |
get_function_by_name |
Exact name lookup |
get_function_by_address |
Address lookup |
get_function_statistics |
Aggregate statistics (counts, sizes, top-10) |
Symbol Management (2)
| Tool | Description |
|---|---|
rename_symbol |
Rename any symbol (function or data) |
batch_rename |
Batch rename multiple symbols |
Binary Info (5)
| Tool | Description |
|---|---|
get_imports |
Import table grouped by module |
get_exports |
Export table |
get_strings |
String table with pagination |
get_segments |
Memory segments with permissions |
get_entry_points |
All binary entry points |
Data Analysis (6)
| Tool | Description |
|---|---|
read_memory |
Read raw bytes at address |
get_data_at |
Get typed data at address |
search_bytes |
Binary byte pattern search |
search_strings |
String search with pagination |
create_data_var |
Define data variable at address (byte/word/dword/qword/float/ascii/C type) |
get_data_vars |
List defined data variables (non-code items) |
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)
| Tool | Description |
|---|---|
navigate_to |
Move IDA cursor to address |
bookmarks |
Consolidated bookmark management - actions: list, set, remove |
get_current_address |
Get address and context at cursor position |
get_current_function |
Get function info at cursor position |
Task Management (4)
| Tool | Description |
|---|---|
start_task |
Start async background task |
get_task_status |
Check task progress |
cancel_task |
Cancel running task |
list_tasks |
List all async tasks |
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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。