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
MCP server

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
All reasons and checks

merozemory/ida-multi-mcp

Install

Manual install

pipx install git+https://github.com/MeroZemory/ida-multi-mcp.git

Then 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 review

Broad 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 scores

MCP

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.

MCP 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 serverBroad access126Repository stars

MCP server that bridges IDA Pro with an agent: reading decompilation, renaming and typing, comments and running IDAPython right in the database

MCP serverBroad access13.1KRepository stars
Official

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

PluginBroad access1.4KRepository stars

A headless IDA Pro MCP server in Rust: the agent opens a database, lists functions, disassembles, decompiles and builds cross references

MCP serverBroad access874Repository stars

MCP server and Ghidra plugin that lets an agent decompile binaries, follow cross-references and rename functions in an open project

MCP serverExtended access11.5KRepository stars

A native MCP plugin for the x64dbg debugger: the agent drives debugging over HTTP, sets breakpoints, steps through code, reads and patches memory

MCP serverBroad access2.6KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
ida-multi-mcp (this entry)nonot required463
ida-mcp-rsnonot required874a headless Rust MCP server for IDA Pro with no multi-instance registry
Ghidra MCP Servernonot required5,869an 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.

README badge

Report a problem

Foxx AIida-multi-mcp
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.