headless-ida-mcp-server
6
The Headless IDA MCP Server leverages IDA Pro's headless mode to analyze binary files and provides tools for managing functions and variables via MCP. It requires Python 3.12 or higher and IDA Pro with headless support.
Acknowledgments
This project builds upon the work of:
- Tools code adapted from ida-pro-mcp by mrexodia
- Utilizes the headless-ida library by DennyDai
Headless IDA MCP Server
If you want to run the server directly as a cli app, rather than an IDA plugin interactively,you can chose it.
Project Description
This project uses IDA Pro's headless mode to analyze binary files and provides a suite of tools via MCP to manage and manipulate functions, variables, and more.
Prerequisites
- Python 3.12 or higher
- IDA Pro with headless support (idat) https://github.com/DennyDai/headless-ida
Installation
-
Clone the project locally:
git clone https://github.com/cnitlrt/headless-ida-mcp-server.git cd headless-ida-mcp-server
-
Install dependencies:
uv python install 3.12 uv venv --python 3.12 uv pip install -e .
Configuration
-
Copy the example environment file:
cp .env_example .env
-
Configure the following environment variables in
.env
:IDA_PATH
: Path to IDA Pro's headless executable (idat), e.g.,/home/ubuntu/idapro/idat
PORT
: Port number for the MCP server, e.g.,8888
HOST
: Host address for the MCP server, e.g.,127.0.0.1
TRANSPORT
: MCP transport mode (sse
orstdio
)
Usage
-
Start the server:
uv run headless_ida_mcp_server
-
Connect to the server using an MCP client:
Debug it:
npx -y @modelcontextprotocol/inspector
or
{ "mcpServers": { "ida": { "command": "/path/to/uv", "args": ["--directory","path/to/headless-ida-mcp-server","run","headless_ida_mcp_server"] } } }