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.1.tar.gz (12.7 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.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ida_pro_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d472171bd23b444c7609c319ecb3b3f17406af047fea9206c06382a71bfb4939
MD5 7e5c3e4d7ed6f719ad155b009c92c5c7
BLAKE2b-256 6b2eb12c875c56969f126c07a1f44e87721057f122ffc900c3941956a7c31926

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ida_pro_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39ab3ee0783f064d69a6fbd01809fe9030925d84e83d604e63c7bd5f5074f3e0
MD5 15c384116d0e8ce8769ff77226fa8867
BLAKE2b-256 df5cf0ab0c369fb1dd6ab08485bf360eab41e5383d5a5d077d20c19339f7f52d

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