Back to MCP directory
publicPublicdnsLocal runtime

headless-ida-mcp-server

通过IDA Pro的无界面模式提供远程二进制分析功能的服务器,允许用户通过多客户端协议管理和服务函数、变量及其他二进制元素。

article

README

Acknowledgments

This project builds upon the work of:

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

  1. Clone the project locally:

    git clone https://github.com/cnitlrt/headless-ida-mcp-server.git 
    cd headless-ida-mcp-server
    
  2. Install dependencies:

    uv python install 3.12
    uv venv --python 3.12
    uv pip install -e .
    

Configuration

  1. Copy the example environment file:

    cp .env_example .env
    
  2. 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 or stdio)

Usage

  1. Start the server:

    uv run headless_ida_mcp_server
    
  2. 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"]
       }
    }
    }
    

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client