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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ida_pro_mcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 75c69fb4b5b8beaa1e9ea4d17b6e471cecc2b93e076cae309d28a13303119c8a
MD5 e40cf1940d57b3302a8dc65cb94afc67
BLAKE2b-256 623aeef44b1ab592971bcab62bca81b7443d71da85bc8b68242a003089704a6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ida_pro_mcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 805c7ab33c8f9b56d3bfd18c8e4beee3bacfab1a9bd25185ca0fc02dc2681b1e
MD5 677aeb9809349504d14fb1fe2ba51e0a
BLAKE2b-256 f699d7f8f13396e8f0a2e05544ba74f3bcef142d31e03da84e29ca3902f3279e

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