Why this matters
As LLMs are increasingly used for code understanding, the main bottleneck in practical binary reverse engineering is safe, structured access to a live disassembly. This project exposes IDA Pro’s program database and analysis capabilities to LLM-based MCP clients in a type-safe, batch-friendly way so models can retrieve precise data (decompiles, xrefs, bytes), request deterministic conversions (int_convert), and make controlled edits without blind guessing.
What Sets It Apart
- Typed, tool-oriented MCP surface: each operation (decompile, disasm, get_bytes, set_comments, patch_asm, etc.) is a strongly-typed tool, which reduces ambiguous LLM outputs and helps clients generate structured requests instead of freeform text.
- Batch-first and pagination-aware design: most endpoints accept lists and return cursor-based pagination to avoid token overflow and support large-scale automated analyses.
- Headless idalib and session model: supports headless idalib workers with session adoption, letting multiple supervisors reuse persistent workers and enabling reproducible, long-running analysis jobs.
- Practical anti-hallucination helpers: utilities like int_convert and cached string lists steer LLMs away from numeric/string hallucinations common in RE tasks.
Who It's For and Tradeoffs
Great fit if you:
- Want an LLM-driven RE workflow inside IDA Pro (commercial) with structured tool calls rather than ad-hoc chat prompts.
- Need reproducible, scriptable analyses that integrate with many MCP clients (Claude, Codex, Gemini CLI, Copilot CLI, etc.).
- Run large or collaborative reverse-engineering jobs and benefit from persistent headless workers and batch APIs.
Look elsewhere if you:
- Rely on IDA Free (this requires a commercial IDA Pro 8.3+ and Python 3.11+).
- Expect a turnkey cloud-hosted LLM analysis service — this is an on-host integration that places the binary and analysis inside your environment for privacy and control.
Operational notes
The project favors clarity and safety over convenience: it intentionally exposes conversion tools (int_convert) and discourages implicit numeric/string conversions by LLMs. It also includes debugger extensions (optional) and many client-specific install helpers, but it does not abstract away the need for IDA-specific setup (idalib activation, uv). For teams building LLM-powered RE pipelines, it provides a practical, auditable bridge between IDA and modern MCP clients.