ida-pro-mcp  by mrexodia

IDA Pro plugin for reverse engineering via MCP

created 4 months ago
2,833 stars

Top 17.2% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides an MCP (Meta Communication Protocol) server for IDA Pro, enabling seamless integration with Large Language Models (LLMs) for reverse engineering tasks. It offers a streamlined way for LLM-powered tools like Claude, Cursor, and VSCode Agent Mode to interact with IDA Pro, allowing them to query database information, decompile functions, manipulate comments, and rename entities.

How It Works

The project utilizes a JSON-RPC protocol over a local socket to communicate between the IDA Pro plugin and the MCP server. The server, written in Python, exposes various functions to interact with the IDA Pro database. The IDA plugin acts as a bridge, translating LLM requests into IDA Pro API calls and returning the results. This architecture simplifies adding new functionalities with minimal boilerplate, as demonstrated by the ease of adding new @jsonrpc functions.

Quick Start & Requirements

  • Install: pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
  • Configure: Run ida-pro-mcp --install to install the IDA plugin and configure MCP servers.
  • Prerequisites: Python 3.11+, IDA Pro 8.3+ (9 recommended).
  • LLM Clients: Supported clients include Cline, Roo Code, Claude, Cursor, VSCode Agent Mode.
  • Docs: https://github.com/mrexodia/ida-pro-mcp

Highlighted Details

  • Extensive Functionality: Supports a wide range of IDA Pro interactions, including decompilation, disassembly, cross-reference retrieval, string searching, and renaming of functions/variables.
  • Simplified Development: Adding new features requires only defining a new @jsonrpc function in the Python server.
  • LLM Integration Focus: Designed to enhance LLM-driven reverse engineering with specific prompts and tips for accuracy.
  • Automated Installation: Aims for fully automated installation and configuration of the IDA Pro plugin.

Maintenance & Community

The project is maintained by mrexodia. Further community interaction and development can be found via GitHub issues and discussions.

Licensing & Compatibility

The repository does not explicitly state a license in the README. Users should verify licensing for commercial use or closed-source linking.

Limitations & Caveats

The README emphasizes that LLMs may hallucinate and require careful prompting, especially for numerical conversions. Obfuscated code and lack of symbol resolution can significantly degrade LLM accuracy, necessitating pre-processing steps.

Health Check
Last commit

2 days ago

Responsiveness

1 day

Pull Requests (30d)
1
Issues (30d)
10
Star History
1,136 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.