Home / MCP / IDA Pro MCP Server
Provides an MCP backend for IDA Pro to enable vibe reversing workflows via multiple MCP clients.
Configuration
View docs{
"mcpServers": {
"ida_pro_mcp_stdio": {
"command": "uv",
"args": [
"run",
"ida-pro-mcp",
"--transport",
"http://127.0.0.1:8744/sse"
]
}
}
}This MCP server enables seamless interaction between IDA Pro and your preferred MCP client to assist in reverse engineering tasks. It runs as a backend service that communicates with your client and the IDA Pro plugin, providing structured access to binary analysis features, decompilation, and data exploration through a programmable API.
Install the MCP package and set up the server, then connect your MCP client to the running process. Start the SSE-enabled server interface to let your client communicate with IDA Pro and exchange analysis data in real time. Use the client’s prompts to drive decompilation, variable renaming, type adjustments, and function analysis within IDA Pro.
pip uninstall ida-pro-mcp
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
```
Configure and install the IDA Plugin and MCP server support:
```
ida-pro-mcp --install
```
Restart IDA Pro and your MCP client completely for the changes to take effect. If a client runs in the background, quit it from the system tray or taskbar before restarting.To connect the user interface for live interaction, run the SSE server using the provided transport endpoint. This enables you to view and control IDA Pro state through the MCP tools from your client.
Retrieve IDB metadata such as path, base address, size, and hashes.
Find functions by address or name with auto-detection and support for lists.
Get the current cursor address in the disassembly view.
Get the function at the current cursor position.
Convert numbers between decimal, hex, bytes, ASCII, and binary representations.
List functions with pagination and filtering options.
List global variables with pagination and filtering.
List all imported symbols with optional pagination.
List all strings in the binary with optional filtering.
List memory segments and their permissions.
List all local types defined in the database.
Decompile function(s) at given address(es) to inspect high-level logic.
Disassemble function(s) with full details like arguments and stack frames.
Get all cross-references to a given address.
Get cross-references from a given address.
Identify functions called by a function.
Identify functions that call a given function.
List all program entry points.
Set comments in disassembly and decompiler views at specific addresses.
Patch assembly instructions at specified addresses.
Declare or update type information in the local type library.
Read raw bytes from the target binary at given addresses.
Read 8-bit unsigned integers from addresses.
Read 16-bit unsigned integers from addresses.
Read 32-bit unsigned integers from addresses.
Read 64-bit unsigned integers from addresses.
Read null-terminated strings from addresses.
Read value of global variables by address or name.
Get stack frame variables for function(s) and inspect their layout.
Create or modify stack variable definitions at specified offsets.
Remove stack variable definitions by name.
List all defined structures and their members.
Get detailed information about a structure.
Read structure field values at given addresses.
Search for structures by name pattern.
Retrieve all registers for all threads in the debugging session.
Get the current call stack with module and symbol information.
Start the debugger process.
Continue debugger execution.
Run the debugger to a specific address.
Add a breakpoint at a given address.
Read memory from the debugged process.
Execute Python code within the IDA context and return results.
Perform a comprehensive analysis of functions including decompilation, xrefs, and strings.