IDA MCP
Configuration
View docs{
"mcpServers": {
"captain-ai-hub-ida-mcp": {
"url": "http://127.0.0.1:11338/mcp"
}
}
}IDA-MCP provides a modular, multi-instance coordination system for IDA Pro, combining a FastMCP server with a central coordinator to manage multiple IDA instances and forward tools through a unified proxy. This enables you to run and orchestrate several IDA analyses in parallel, accessible from MCP clients via HTTP or local stdio transport.
You can connect your MCP client to IDA-MCP using either HTTP or stdio transport. HTTP is the recommended method and is auto-started by the coordinator when the IDA plugin loads. The proxy forwards tool requests to the appropriate IDA instance through a unified interface. If HTTP is unavailable, you can run the local stdio proxy as a subprocess and communicate over a direct command/argument channel. Use the HTTP mode for seamless integration and the stdio mode when you need to run the proxy locally without exposing a network endpoint.
Prerequisites: ensure you have Python installed in your environment and access to IDA with its Python support enabled.
1) Copy the main plugin file and the IDA-MCP package into IDAβs plugins directory.
2) Prepare a target binary in IDA and allow analysis to complete.
3) Load the IDA-MCP plugin from IDA. The first launch will automatically start an SSE HTTP proxy on a free port and attempt to start a coordinator on 127.0.0.1:11337 if that port is free. If 11337 is already in use, your instance will register with the existing coordinator.
4) Trigger the plugin again to stop and unregister the current instance.
Configuration options can be adjusted in the configuration file to tailor how the MCP proxy and coordinator operate. The HTTP proxy is auto-started with the coordinator, while the stdio proxy can be used if you prefer launching the proxy as a separate subprocess.
Security and access considerations: when using HTTP mode, ensure the proxy URL is reachable by your MCP client and that access is restricted to trusted environments. If you enable remote access, consider applying network controls or authentication mechanisms as appropriate for your setup.
Examples show how to configure common MCP clients (e.g., Claude, LangChain, VSCode) to connect to the IDA-MCP HTTP proxy or to start the stdio proxy as a separate process. You will typically reference the local URL http://127.0.0.1:11338/mcp for HTTP mode or provide the Python interpreter path and the proxy script path for stdio mode.
IDA-MCP exposes a rich set of tools organized by category, enabling you to query metadata, analyze code, read memory, modify types and sources, manage stacks, and interact with the debugger. A comprehensive set of endpoints supports batch operations and REST-like MCP resources such as ida://idb/metadata, ida://functions, ida://memory, and more.
Health check tool to verify connectivity to the MCP coordinator and count of registered instances.
List all IDA instances registered with the coordinator.
Retrieve IDB metadata such as hash, architecture, bitness, and endianness.
Paginated retrieval of functions with optional name or pattern filtering.
Find a function by name or address.
List non-function global symbols.
Extract strings from the analyzed binary.
List local type definitions used in the analysis.
Get program entry points.
Convert between number formats.
List imported functions with their modules.
List exported functions and symbols.
List memory segments with access permissions.
Retrieve the current cursor position and context.
Batch decompile functions (Hex-Rays integration).
Batch disassemble functions.
Perform linear disassembly from an arbitrary address.
Batch cross-references to addresses.
Batch cross-references from addresses.
Heuristic references to structure fields.
Search for byte patterns with optional wildcards.
Retrieve basic blocks with control flow information.
Read raw bytes from memory.
Read an 8-bit unsigned value from memory.
Read a 16-bit unsigned value from memory.
Read a 32-bit unsigned value from memory.
Read a 64-bit unsigned value from memory.
Read a null-terminated string from memory.
Create or update local type definitions.
Set a function's prototype.
Set the type for a local variable (Hex-Rays).
Set the type for a global variable.
List all structures and unions.
Get details of a structure, including its fields.
Batch set comments in the IDA database.
Rename a function symbol.
Rename a local variable (Hex-Rays).
Rename a global symbol.
Patch bytes at specified addresses.
Get stack frame variables.
Create stack variables.
Delete stack variables.
Start the debugger.
Continue execution in the debugger.
Step into the next instruction.
Step over the next instruction.
Read memory from the debugger context.
Write memory from the debugger context.
Get all debugger registers.
Get the current call stack.
List breakpoints.
Add a breakpoint.
Delete a breakpoint.
Enable or disable a breakpoint.