Skip to main content

Vibe reversing with IDA Pro

Project description

IDA Pro MCP

Simple MCP Server to allow vibe reversing in IDA Pro.

https://github.com/user-attachments/assets/1479592f-8d2b-4aef-865f-e7d0424cb745

Available functionality:

  • get_function_by_name(name): Get a function by its name
  • get_function_by_address(address): Get a function by its address
  • get_current_address(): Get the address currently selected by the user
  • get_current_function(): Get the function currently selected by the user
  • list_functions(): List all functions in the database
  • decompile_function(address): Decompile a function at the given address
  • show_decompilation(address): Show a function in the decompiler
  • show_disassembly(address): Show an address in the disassembly view
  • rename_local_variable(function_address, old_name, new_name): Rename a local variable in a function
  • rename_function(function_address, new_name): Rename a function
  • set_function_prototype(function_address, prototype): Set a function's prototype
  • set_local_variable_type(function_address, variable_name, new_type): Set a local variable's type
  • get_metadata(): Show metadata about the current IDB

There are a few IDA Pro MCP servers floating around, but I created my own for a few reasons:

  1. The plugin installation should not require installing dependencies, just copy mcp-plugin.py in the IDA plugins folder and go!
  2. The architecture of other plugins make it difficult to add new functionality quickly (too much boilerplate of unnecessary dependencies).
  3. Learning new technologies is fun!

If you want to check them out, here is a list (in the order I discovered them):

IDA Pro Installation

  1. Copy mcp-plugin.py in your plugins folder (%appdata%\Hex-Rays\IDA Pro\plugins on Windows)
  2. Open an IDB and click Edit -> Plugins -> MCP to start the server

MCP Server Installation (Cline/Claude)

To install the MCP server in Cline, follow these steps:

  1. Install uv globally:
    • Windows: pip install uv
    • Linux/Mac: curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Clone this repository, for this example C:\MCP\ida-pro-mcp.
  3. Navigate to the Cline MCP Servers configuration (see screenshot).
  4. Click on the Installed tab.
  5. Click on Configure MCP Servers, which will open cline_mcp_settings.json.
  6. Add the ida-pro-mcp server:
{
  "mcpServers": {
    "github.com/mrexodia/ida-pro-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "c:\\MCP\\ida-pro-mcp",
        "run",
        "server.py"
      ],
      "timeout": 600
    }
  }
}

Development

uv run fastmcp dev server.py

This will open a web interface at http://localhost:5173 and allow you to interact with the MCP tools for testing.

Adding new features is a super easy and streamlined process. All you have to do is add a new @jsonrpc function to mcp-plugin.py and your function will be available in the MCP server without any additional boilerplate! Below is a video where I add the get_metadata function in less than 2 minutes (including testing):

https://github.com/user-attachments/assets/951de823-88ea-4235-adcb-9257e316ae64

Available tools

<use_mcp_tool>
<server_name>github.com/mrexodia/ida-pro-mcp</server_name>
<tool_name>get_current_function</tool_name>
<arguments></arguments>
</use_mcp_tool>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ida_pro_mcp-1.0.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ida_pro_mcp-1.0.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file ida_pro_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: ida_pro_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for ida_pro_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 970b4734802330cd1ebde102a14d1be53aa3f39c11bcd979fde4ed9876302e54
MD5 9f2b3b8ff07026fe44673a05f98a4be0
BLAKE2b-256 6194fa339abc2739bdc4f50147bf20bd02709cd8da3078c1fe9afdb88c58fc00

See more details on using hashes here.

File details

Details for the file ida_pro_mcp-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ida_pro_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a2a20aa6d2100000e871083b02ab4bd2db0afff81c6035e7deb5831f63b0e02
MD5 4502ec815f440b0126ef241c5e358c0f
BLAKE2b-256 a64907a34c6d92d824da3ee70eaef34e4ba7a7048fa1dadfc918614025836296

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page