ida-multi-mcp
An MCP server for IDA Pro with one endpoint for several open databases: decompilation, cross-references and similar-function search across binaries
- 463 ★ on the repository
- Last commit
Broad access
Why this level
- The py_eval tool runs arbitrary IDAPython inside the IDA process, and patch, patch_asm and put_int change bytes and database data
- The ida-multi-mcp --install command installs a plugin into the IDA directory and edits the settings of every MCP client it finds
- The agent analyzes binaries that may include malware samples, so work in an isolated environment
Install
- Works in
Manual install
pipx install git+https://github.com/MeroZemory/ida-multi-mcp.gitThen install the same package for the Python version IDA uses: python3.11 -m pip install --user git+https://github.com/MeroZemory/ida-multi-mcp.git. Use your own version.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The py_eval tool runs arbitrary IDAPython inside the IDA process, and patch, patch_asm and put_int change bytes and database data
- The ida-multi-mcp --install command installs a plugin into the IDA directory and edits the settings of every MCP client it finds
- The agent analyzes binaries that may include malware samples, so work in an isolated environment
This is third-party code. Review the repository files before installing.
What it does
ida-multi-mcp is an MCP router for IDA Pro. The agent connects once, and several IDA databases work behind it, for example a dropper, a payload and a command server. Each IDA instance with the plugin installed registers itself in ~/.ida-mcp/instances.json when a database opens, so no client setup per binary is needed. Instances get short IDs like k7m2 and px3a, and requests to different instances run in parallel. The idalib mode opens a binary headless in a separate process per session and requires IDA Pro. Up to 76 tools cover a binary survey, function lists, decompilation and disassembly, cross-references and call graphs, byte and regex search, types and stack frames, renaming, comments, patches and memory reads. The py_eval tool runs arbitrary IDAPython inside IDA. Edits stay in memory until idb_save() is called. There are two differences from ordinary IDA servers. First, an auto-analysis wait rule: while the analysis queue is not empty, function lists and cross-references are incomplete, so analysis_status and analysis_wait show whether the work has finished and the router warns about incomplete answers. Second, search for identical and similar functions within a binary and across binaries (similar_functions, compare_functions, compare_binaries) by instruction MinHash, import, string and constant anchors and control-flow graph shape. Scoring and indexes are computed locally, and binaries are not uploaded to external services. The IDA tool implementations come from the ida-pro-mcp project.
Who it is for. For reverse engineers, malware analysts and vulnerability researchers with an IDA Pro license who analyze several related binaries together with an agent.
Good fit when
- You need to find the function in dropper.dll that matches sub_140001000 from malware.exe despite stripped symbols
- You are diffing a patch and need to match functions between the version before and after an update
- You analyze a dropper, a payload and a command server, with all three databases open in separate IDA windows
- You need unattended analysis of a binary with no GUI through idalib
- The agent must know whether auto-analysis has finished before drawing conclusions from the function list
Not a fit when
- You have IDA Home or IDA Free: the idalib mode is not available there
- You run IDA Pro 9.0 SP0 (build 240925): it is unsupported and SP1 or newer is needed
- You need remote instances or a containerized client: the router listens on loopback only and works over stdio
- You work in Ghidra: the catalog has separate MCP servers for it
Example request
Which function in dropper.dll matches sub_140001000 in malware.exe? Wait for auto-analysis, build the indexes and show the similarity scoresMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
IDA_MCP_SIM_NEURAL- 1 enables the optional neural function-similarity mode, the model downloads to ~/.ida-mcp/models/
Limitations
- Python 3.11 or newer and IDA Pro 8.5 or newer are required, 9.1 and later recommended. IDA 9.0 SP0 is unsupported.
- Local access only: the router binds to loopback and refuses non-local instances. The transport is stdio only, with no HTTP or SSE endpoint.
- Concurrency works across instances; inside one instance calls queue because IDA executes on a single main thread.
- Cancellation is not forwarded to IDA: the per-tool timeout bounds execution.
- Until auto-analysis finishes, function lists, cross-references and decompilation are incomplete. Call analysis_wait once after opening a binary.
- Neural similarity is opt-in (pip install ida-multi-mcp[neural] and IDA_MCP_SIM_NEURAL=1) and downloads a model to ~/.ida-mcp/models/.
How to disable. Run ida-multi-mcp --uninstall: it removes the previous installation, meaning the plugin and the configuration. Then remove the package with pip uninstall ida-multi-mcp or pipx uninstall ida-multi-mcp. The registry and indexes live in ~/.ida-mcp.
FAQ
How do I install ida-multi-mcp for Claude Code?
Install the package with pipx install git+https://github.com/MeroZemory/ida-multi-mcp.git, then install it for the Python version IDA uses and run ida-multi-mcp --install: it installs the IDA plugin and configures the MCP clients it finds. You can also ask the agent to follow docs/installation.md.
How do I show an agent several binaries at once?
Open each binary in IDA with the plugin installed: the instance registers itself. Then call list_instances and address the one you need by ID, for example k7m2. For headless work use idalib_open.
Why call analysis_wait?
On a fresh binary IDA is still analyzing code and function lists are incomplete: in the README's example on an 8.5 MB DLL the function count grew from 9,580 to 13,252. analysis_wait drives analysis to completion.
How does ida-multi-mcp differ from ida-pro-mcp?
The IDA tools come from ida-pro-mcp. This project adds a multi-instance router with a registry, similar-function search across binaries and an auto-analysis completion check. Both can work with several databases, so pick by convenience.
Are binaries sent to external services?
No, similarity scoring and indexes are computed locally. Neural mode only downloads a model checkpoint when first enabled.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server for IDA Pro that hosts several headless idalib sessions: an agent opens binaries, keeps each database isolated and connects with an access key
MCP server that bridges IDA Pro with an agent: reading decompilation, renaming and typing, comments and running IDAPython right in the database
The official Hex-Rays MCP server: an agent opens IDA databases, runs Python inside them and reverses binaries, with plugins for Claude Code and Codex
A headless IDA Pro MCP server in Rust: the agent opens a database, lists functions, disassembles, decompiles and builds cross references
MCP server and Ghidra plugin that lets an agent decompile binaries, follow cross-references and rename functions in an open project
A native MCP plugin for the x64dbg debugger: the agent drives debugging over HTTP, sets breakpoints, steps through code, reads and patches memory
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| ida-multi-mcp (this entry) | no | not required | 463 | |
| ida-mcp-rs | no | not required | 874 | a headless Rust MCP server for IDA Pro with no multi-instance registry |
| Ghidra MCP Server | no | not required | 5,869 | an MCP server for Ghidra with hundreds of tools instead of IDA Pro |
README in short
The README opens with a one-sentence install prompt for an agent pointing to docs/installation.md, then shows an example of analyzing two binaries and a table of two groups of strengths. Next come the relation to ida-pro-mcp, an architecture overview, the auto-analysis wait rule, the tool list, a section on function similarity, requirements, manual installation for Windows, macOS and Linux, the list of supported MCP clients, usage examples, limitations and documentation links.