IDA Pro MCP Server
IDA Pro MCP Server for Claude Code
Bridge Claude Code (CLI and Editor Extensions like VS Code, Cursor, Windsurf) with IDA Pro 9.0+ for AI-assisted reverse engineering. 87 tools covering virtually everything IDA Pro can do.
Architecture
Claude Code / Cursor / VS Code (MCP Client)
│ (stdio)
▼
ida-mcp Server
│ (JSON-RPC over localhost:13337)
▼
IDA Pro Plugin (ida_mcp_plugin.py)
│ (IDAPython API on main thread)
▼
IDA Pro 9.0+Installation & Setup
1. Install the IDA Plugin
Copy ida_plugin/ida_mcp_plugin.py into your IDA Pro plugins directory:
macOS:
~/idapro-9.0/plugins/or/Applications/IDA Professional 9.0.app/Contents/MacOS/plugins/Windows:
%APPDATA%\Hex-Rays\IDA Pro\plugins\orC:\Program Files\IDA Professional 9.0\plugins\Linux:
~/.idapro/plugins/or/opt/idapro-9.0/plugins/
When you open any binary in IDA Pro, the plugin starts a JSON-RPC server on 127.0.0.1:13337.
2. Configure Claude Code CLI
claude mcp add ida-pro -- uv run --directory "/Users/benzi/Documents/IDA MCP" ida-mcp3. Configure VS Code / Cursor / Windsurf
Add to .mcp.json or your editor's MCP configuration:
{
"mcpServers": {
"ida-pro": {
"command": "uv",
"args": ["run", "--directory", "/Users/benzi/Documents/IDA MCP", "ida-mcp"]
}
}
}Environment Variables
IDA_MCP_HOST— Override host (default:127.0.0.1)IDA_MCP_PORT— Override port (default:13337)
Available Tools (87 Total)
Analysis (4)
Tool | Description |
| Hex-Rays C pseudocode decompilation |
| Full assembly listing for a function |
| Assembly between two addresses |
| Read raw hex bytes from an address |
Navigation & Discovery (14)
Tool | Description |
| List all functions with optional filter |
| Detailed function metadata |
| Memory segments with permissions |
| Cross-references TO an address |
| Cross-references FROM an address |
| Defined strings with optional filter |
| Imported functions by module |
| Exported functions and entry points |
| Structures, unions, member layouts |
| Enumerations and values |
| Create a new struct type |
| Functions calling a target (with call sites) |
| Functions called by a target |
| Define a C-style string at address |
Introspection (14)
Tool | Description |
| Control flow graph — basic blocks with predecessors/successors |
| Read comment at an address |
| Read all comments within a function |
| Read function-level comment |
| Set function-level comment |
| Full stack frame layout (locals, args, saved regs) |
| Change operand display (hex/decimal/binary/char) |
| Retype a local variable in decompilation |
| Get instruction/function/segment color |
| Set instruction/function/segment color (RGB) |
| Hash function bytes (MD5/SHA1/SHA256) |
| Detect try/catch/throw in a function |
| Hex-Rays intermediate representation at any maturity level |
Modifications (7)
Tool | Description |
| Rename a function |
| Rename a label, variable, or address |
| Set regular or repeatable comment |
| Set C function signature/prototype |
| Set type at address |
| Rename local variable (Hex-Rays) |
| Apply type at call site |
Search (2)
Tool | Description |
| Text search through disassembly |
| Byte pattern/signature search |
Debugger (17)
Tool | Description |
| Start debugging the binary |
| Check debugger active/suspended state |
| Set software breakpoint |
| Remove a breakpoint |
| List all breakpoints |
| Enable/disable breakpoint |
| Step into next instruction |
| Step over next instruction |
| Continue until next breakpoint |
| Pause execution |
| Terminate process |
| Read CPU registers |
| Read memory from debugged process (hex dump with ASCII) |
| Call stack trace |
| List all process threads |
| Switch active debugger thread |
| Set hardware watchpoint (read/write/execute) |
Advanced (14)
Tool | Description |
| Patch bytes in the IDA database |
| Run arbitrary IDAPython code |
| Load .til type information library |
| List loaded TILs |
| Convert bytes to code (instruction) |
| Convert bytes to typed data |
| Revert to raw undefined bytes |
| Create function at address range |
| Delete function definition |
| Add persistent bookmark |
| List all bookmarks |
| Remove bookmark |
| List local variables and arguments |
| List named global data variables |
Database & Export (12)
Tool | Description |
| Save the IDA database |
| Apply FLIRT .sig for library identification |
| List applied FLIRT signatures |
| Create new memory segment |
| Delete segment definition |
| Change segment rwx permissions |
| Define typed arrays |
| Jump IDA cursor to address |
| Export clean assembly listing |
| Export clean C pseudocode |
| Execute IDC script code |
| Trigger registered IDA UI action |
| List all available IDA actions |
Meta (3)
Tool | Description |
| File path, arch, bitness, entry point |
| Check auto-analysis completion |
| Check IDA connectivity |