Apps · Reverse-engineering plugin for IDA Pro (needs a local model server)

IDA Pro MCP

by mrexodia · MIT · 13,413 GitHub stars

MCP server for IDA Pro: a model can read disassembly and decompiled code, rename, retype and comment, in the IDA window or headless with idalib.

macOSWindowsLinux

Get IDA Pro MCP

At a glance

Best for
Agent-driven analysis in IDA Pro from LM Studio or another MCP client.
Inference engine
  • uses your MCP client’s model server
GPU support
None of its own: it talks to a llama.cpp or MLX LM server
Opens
  • GGUF
  • MLX
Features
  • MCP tools
  • Tool calling
Platforms
Runs with IDA Pro (paid, from Hex-Rays); headless mode needs idalib and uv.

Install

macOS

pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip && ida-pro-mcp --install

Windows

pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip && ida-pro-mcp --install

Linux

pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip && ida-pro-mcp --install

Then connect an MCP client that runs a local model, such as LM Studio, Jan or OpenCode, to its server, and serve a model that supports tool calling. Run ida-pro-mcp --config to print the client config.

5 models on this site run in IDA Pro MCP

Models tagged for reverse engineering that support tool calling, with a GGUF or MLX build to serve locally. Raw decompilers such as LLM4Decompile run on their own in llama.cpp or LM Studio instead.

Model Made by Type Size Opens it as Quality tier
GLM-4.7 Flash (30B-A3B) Zhipu AI LLM 31B (3.0B active) GGUF or MLX 88
Devstral 2 (123B) Mistral AI LLM 125B GGUF or MLX 86
Qwen3 Coder 30B-A3B Alibaba LLM 31B (3.3B active) GGUF or MLX 78
Qwen3 30B-A3B Alibaba LLM 31B (3.3B active) GGUF or MLX 74
gpt-oss 20B OpenAI LLM 21B (3.6B active) GGUF or MLX 70

Alternatives

Which app should I use?

Estimates come from published hardware specs and our open formulas, not from running the model on your machine. Real speed varies with runtime, drivers and settings. Numbers marked “Measured” come from a linked benchmark.

Was this page helpful?