ida-pro-mcp: an MCP bridge between IDA Pro and a language model
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.
At a glance
- What is it?
- The project exposes IDA Pro's database to an MCP client so a model can rename, retype and comment its way through a binary. It is a thin tool surface over IDAPython, and the README itself now steers new users toward idalib-mcp instead of the GUI plugin.
- Who is it for?
- Adopt it if you already run IDA Pro 8.3 or newer with a paid licence, you have Python 3.11 or higher, and you want a model to annotate an existing database rather than produce an analysis from scratch. Skip it if you rely on IDA Free, if you are on Python 3.10 or older, or if you want the GUI plugin path, since the README states that plugin is no longer recommended and will eventually be deprecated in favour of idalib-mcp.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 18 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The gap ida-pro-mcp fills between a disassembler and a chat client
IDA Pro is a manual tool. You read decompiler output, rename a variable, retype a pointer, write a comment, and repeat. The work is mechanical in the middle and requires judgement at the edges. ida-pro-mcp targets that middle: it presents IDA's database as a set of callable tools over the Model Context Protocol, so an MCP client can perform the renaming, retyping and commenting steps while you supervise. The README describes the goal as allowing what it calls vibe reversing in IDA Pro, and the accompanying video and the mcp-reversing-dataset repository show the intended workflow on a crackme. The audience is a reverse engineer who already owns IDA Pro and already uses an MCP-capable client. It is not a standalone analyser and it does not replace the decompiler. The model does not see the binary directly; it sees whatever the tool layer returns, which is why the README spends a full section on prompt engineering rather than on architecture.
How the tool surface reaches IDA: MCP server plus IDAPython
The mechanism is a server that speaks MCP to the client and executes IDAPython inside IDA. The README names two deployment shapes. The GUI path installs an IDA plugin alongside the MCP server, so tool calls land in the IDA instance you have open. The idalib path is the one the README now pushes: it requires idalib to be activated globally, which the project does with the py-activate-idalib.py script shipped inside the IDA installation. On Windows that is uv run "C:\Program Files\IDA Professional 9.3\idalib\python\py-activate-idalib.py"; on macOS it is the equivalent path under /Applications/IDA Professional 9.3.app/Contents/MacOS/; on Linux you point at your idapro-9.3 directory. The Kimi Code installation notes describe the result as installing the idalib MCP server plus an idapython skill, which tells you the split: one server for database operations, one skill for writing IDAPython. Tools are invoked by name. The README's example prompts both single out int_convert as a mandatory tool for base conversion, which is a small but telling detail about where the authors found models failing.
Installation paths: Claude Code, Codex, Kimi Code and the manual GUI route
For Claude Code the README gives three commands in sequence: claude plugin marketplace add mrexodia/claude-marketplace, then claude plugin uninstall ida-pro-mcp@mrexodia, then claude plugin install ida-pro-mcp@mrexodia. The uninstall step before install is deliberate; it forces a clean replacement rather than an upgrade in place. Codex uses the same shape with different verbs: codex plugin marketplace add mrexodia/codex-marketplace, codex plugin remove ida-pro-mcp@mrexodia, codex plugin add ida-pro-mcp@mrexodia. Kimi Code takes a slash command in chat, /plugins install https://github.com/mrexodia/ida-pro-mcp/tree/main followed by /reload. The README notes that Kimi copies plugins into $KIMI_CODE_HOME/plugins/managed/, so uv must be on PATH, and that the first session after installing is slower because uv resolves dependencies before the server responds. The manual route is pip uninstall ida-pro-mcp, pip install of the main-branch zip archive, then ida-pro-mcp --install to configure the MCP servers and install the IDA plugin. For any client not on the list, ida-pro-mcp --config prints the JSON configuration to paste. The README warns that IDA and the MCP client must both be fully restarted, and that clients which live in the system tray, Claude among them, need to be quit from the tray rather than closed.
Prompt engineering is load-bearing, and the README says so
This is the part most MCP write-ups skip. The README opens the prompt engineering section with the statement that LLMs are prone to hallucinations and that prompting must be specific, singling out integer-to-byte conversion as especially problematic in reverse engineering. The minimal example prompt is a numbered strategy: inspect the decompilation and add comments, rename variables, change variable and argument types especially for pointers and arrays, rename functions, drop to disassembly when needed, never convert number bases manually but call int_convert, avoid brute forcing, write a report.md, and prompt the user for feedback once a password is found. A second prompt credited to @can1357 is more structured, with numbered phases, a reference to AGENTS.md for project goals, an instruction to use sub-agents for detailed analysis, and an output convention of RE/*.md files. Both prompts exist because the tool surface alone does not constrain the model. If you install ida-pro-mcp and send it a bare request to analyse a binary, you are running an experiment the README has already documented as unreliable.
The GUI plugin is on a deprecation path, and that changes the decision
The README states plainly, in the GUI installation section, that the MCP plugin is no longer recommended and will eventually be deprecated, and that users should use idalib-mcp instead. That is an unusual thing for a project's own README to say about one of its two supported modes, and it should shape how you adopt this. The idalib route is the maintained one; the GUI route is the legacy one. The practical difference is where the tool calls execute. With idalib activated globally, the server works against IDA's library rather than a running GUI session, which fits headless and scripted use. The GUI route keeps a live IDA window in the loop, which is what many reversers want while they are reading decompiler output themselves. If your workflow depends on watching the database change in the GUI as the model works, you are choosing the path the maintainer has flagged for removal. That is a real constraint, not a footnote.
Prerequisites that rule people out
Python 3.11 or higher is required, and the README points at idapyswitch for moving IDA to a newer interpreter. IDA Pro 8.3 or higher is required, with 9 recommended. IDA Free is not supported, stated in bold in the prerequisites. The idalib path additionally requires idalib to be activated globally. Taken together, this is a tool for licensed IDA Pro users on a recent Python, and the combination is narrower than the list of supported MCP clients suggests. The client list is long, running from Amazon Q Developer CLI and Claude Code through Cursor, Windsurf, Zed and VS Code, but the client is the cheap part. The expensive, non-negotiable part is the IDA licence and the interpreter version. A free-tool user cannot substitute Ghidra here; the project is bound to IDA's API and to idalib specifically.
Where a different approach fits better
Ghidra with its own MCP server is the obvious alternative, and the difference is not cosmetic. Ghidra is free and open source, so it removes the licence and interpreter constraints entirely, but it is a different decompiler with a different API surface, and the tool set an MCP server can expose reflects that API. If your reason for choosing ida-pro-mcp is that your team already standardised on IDA and has years of IDAPython scripts, Ghidra is a poor substitute regardless of cost. If your reason is simply that you want a model to annotate a binary and you do not own IDA, Ghidra is the correct starting point and ida-pro-mcp is the wrong tool. Within the IDA ecosystem, the README's own recommendation of idalib-mcp over the GUI plugin is the more consequential fork in the road: same project, same tool surface, different execution model, and only one of the two is being maintained.
Maintenance cost, licence terms and what to check before committing
The repository is MIT licensed, which permits commercial use and modification provided the copyright notice and permission notice are preserved. That is the licence text, not legal advice; if you are folding this into a product, read the LICENSE file and your own counsel's view. Maintenance signals in the supplied material are mixed. The last push is dated 2026-08-28, and the release history shows 1.2.0 in March 2025, 1.3.0 in April 2025, and 1.4.0 in October 2025, which is a slow cadence rather than an abandoned one. The README's own statement that the GUI plugin will eventually be deprecated means an upgrade from a GUI-based install to an idalib-based one is a migration you should expect to perform, not a possibility. The cost of running this is mostly operational: dependency resolution through uv on first launch, a full restart of IDA and the client after any install, and a prompt you have to write and maintain yourself. The README invites users to share better prompts, which is an admission that the prompt is part of your setup, not a solved problem shipped with the package.
Editorial conclusion
Adopt it if you already run IDA Pro 8.3 or newer with a paid licence, you have Python 3.11 or higher, and you want a model to annotate an existing database rather than produce an analysis from scratch. Skip it if you rely on IDA Free, if you are on Python 3.10 or older, or if you want the GUI plugin path, since the README states that plugin is no longer recommended and will eventually be deprecated in favour of idalib-mcp. Before installing, run ida-pro-mcp --config and confirm your client's JSON entry, verify idalib is activated globally with the py-activate-idalib.py script for your platform, and check that uv is on PATH if you are installing through the Kimi Code plugin route.
Community notes