Connects Claude to your IDA Pro instances through both HTTP and stdio, exposing the full reverse engineering toolkit as MCP tools. You get batch decompilation, disassembly, cross-reference analysis, memory operations, type management, and database modification directly in chat. The multi-instance gateway lets you work across multiple IDA sessions simultaneously. Includes unsafe tools for Python execution and debugger control when enabled. Built with FastMCP and thread synchronization decorators to handle IDA's GUI threading properly. Perfect for automating reverse engineering workflows, exploring malware samples, or building analysis scripts through conversation rather than manual IDA scripting.
IDA-MCP is an IDA Pro plugin that exposes IDA analysis, database modification, debugger, and lifecycle operations through MCP. Each IDA instance runs a local FastMCP HTTP server, and an optional standalone gateway provides a stable multi-instance MCP endpoint.
This repository is now the standalone plugin repository. The desktop IDE and
application shell live in the separate Sarma repository and consume this
project as a Git submodule.
IDA-MCP/
├── ida_mcp.py # IDA plugin entry point, exposes PLUGIN_ENTRY()
├── ida-plugin.json # IDA plugin metadata
├── ida_mcp/ # plugin package, gateway, proxy, tools, resources
├── test/ # live-IDA pytest suite
├── API.md # MCP, tool, resource, and internal HTTP contract
├── project.md # repository map and boundaries
├── roadmap.md # current direction and milestones
└── requirements.txt # IDA Python runtime dependencies
ida_mcp.py, which starts ida_mcp/plugin_runtime.py.ida_default_port and serves MCP at /mcp/.127.0.0.1:11338, registers instances under /internal/*, and exposes the proxy MCP endpoint at /mcp.@tool plus @idaread or @idawrite.py_eval and dbg_* tools are unsafe and gated by enable_unsafe in ida_mcp/config.conf.Copy ida_mcp.py and the ida_mcp/ directory into IDA's plugin directory, then
install dependencies into IDA's Python environment:
<ida_python> -m pip install -r requirements.txt
Open a database in IDA and wait for initial analysis. The plugin starts its per-instance MCP server automatically when HTTP transport is enabled.
# Start the standalone gateway
python ida_mcp/command.py gateway start --json
# Status, stop, open IDA, call a tool directly
python ida_mcp/command.py gateway status
python ida_mcp/command.py gateway stop
python ida_mcp/command.py ida open ./target.exe
python ida_mcp/command.py tool call get_metadata --port 10000
Default endpoints:
http://127.0.0.1:11338/mcphttp://127.0.0.1:11338/internal/*http://127.0.0.1:<instance_port>/mcp/Tests require a running gateway and at least one registered IDA instance.
python test/test.py
python test/test.py --core --analysis
python test/test.py --transport=http --analysis
pytest -m "core or analysis"
pytest -m "not debug"
pytest --transport=http
The debug marker is excluded by default because it requires an active
debugger. API call logs are written to .artifacts/api_logs/.
API.md documents the MCP tools, resources, proxy behavior, and internal HTTP routes.project.md explains repository responsibilities and module boundaries.roadmap.md tracks current stabilization work.taida957789/ida-mcp-server-plugin
zboralski/ida-headless-mcp
svnscha/mcp-windbg
fosdickio/binary_ninja_mcp
wasdubya/x64dbgmcp