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 nameget_function_by_address(address): Get a function by its addressget_current_address(): Get the address currently selected by the userget_current_function(): Get the function currently selected by the userlist_functions(): List all functions in the databasedecompile_function(address): Decompile a function at the given addressshow_decompilation(address): Show a function in the decompilershow_disassembly(address): Show an address in the disassembly viewrename_local_variable(function_address, old_name, new_name): Rename a local variable in a functionrename_function(function_address, new_name): Rename a functionset_function_prototype(function_address, prototype): Set a function's prototypeset_local_variable_type(function_address, variable_name, new_type): Set a local variable's typeget_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:
- The plugin installation should not require installing dependencies, just copy
mcp-plugin.pyin the IDA plugins folder and go! - The architecture of other plugins make it difficult to add new functionality quickly (too much boilerplate of unnecessary dependencies).
- Learning new technologies is fun!
If you want to check them out, here is a list (in the order I discovered them):
- https://github.com/taida957789/ida-mcp-server-plugin (SSE protocol only, requires installing dependencies in IDAPython)
- https://github.com/fdrechsler/mcp-server-idapro (MCP Server in TypeScript, excessive boilerplate required to add new functionality)
- https://github.com/MxIris-Reverse-Engineering/ida-mcp-server (custom socket protocol, boilerplate)
IDA Pro Installation
- Copy
mcp-plugin.pyin your plugins folder (%appdata%\Hex-Rays\IDA Pro\pluginson Windows) - Open an IDB and click
Edit -> Plugins -> MCPto start the server
MCP Server Installation (Cline/Claude)
To install the MCP server in Cline, follow these steps:
- Install uv globally:
- Windows:
pip install uv - Linux/Mac:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
- Clone this repository, for this example
C:\MCP\ida-pro-mcp. - Navigate to the Cline MCP Servers configuration (see screenshot).
- Click on the Installed tab.
- Click on Configure MCP Servers, which will open
cline_mcp_settings.json. - Add the
ida-pro-mcpserver:
{
"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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
970b4734802330cd1ebde102a14d1be53aa3f39c11bcd979fde4ed9876302e54
|
|
| MD5 |
9f2b3b8ff07026fe44673a05f98a4be0
|
|
| BLAKE2b-256 |
6194fa339abc2739bdc4f50147bf20bd02709cd8da3078c1fe9afdb88c58fc00
|
File details
Details for the file ida_pro_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ida_pro_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a2a20aa6d2100000e871083b02ab4bd2db0afff81c6035e7deb5831f63b0e02
|
|
| MD5 |
4502ec815f440b0126ef241c5e358c0f
|
|
| BLAKE2b-256 |
a64907a34c6d92d824da3ee70eaef34e4ba7a7048fa1dadfc918614025836296
|