Skip to main content
Glama

ida-auto-mcp

An MCP server that gives AI coding assistants (OpenCode, Claude Desktop, Cursor, Antigravity) control over the IDA Pro lifecycle so they can analyze multiple binaries without manual intervention.


The Problem

If you use ida-pro-mcp, the MCP server runs embedded inside the IDA Pro process (listening on 127.0.0.1:13337).

Because IDA is strictly one database per process, unattended multi-binary analysis wasn't possible:

  1. You open binaryA.dll in IDA.

  2. The AI inspects functions, decompiles, and finishes analyzing binaryA.dll.

  3. The AI wants to look at binaryB.dll next, but can't: IDA is locked to binaryA.dll.

  4. You have to sit at your desk, save the database, kill IDA, open binaryB.dll, wait for auto-analysis to finish, make sure port 13337 binds, and resume prompting.

The Solution

ida-auto-mcp runs as a standalone local MCP server alongside your existing ida-pro-mcp setup. It exposes process control tools (ida_open, ida_switch, ida_close, ida_save, ida_status) so your AI assistant can drive batch analysis pipelines on its own:

[ AI Assistant (OpenCode / Claude / Cursor) ]
      │                                │
      │ (Process Control via stdio)    │ (Static Analysis via HTTP/SSE)
      ▼                                ▼
[ ida-auto-mcp ]                [ ida-pro-mcp (port 13337) ]
      │                                ▲
      │ spawns / saves / terminates    │ hosted inside
      ▼                                │
[ IDA Pro 9.x (ida64.exe -A) ] ────────┘

When switching binaries, ida-auto-mcp:

  1. Triggers an idb_save RPC call to IDA so you don't lose any decompilation or typing work.

  2. Sends a clean close signal and waits for the process and TCP port 13337 to be released.

  3. Launches the next binary with -A (autonomous mode, so no interactive prompts block execution).

  4. Polls IDA until auto-analysis completes (auto_is_ok()) and the MCP server is ready before returning to the AI.


Installation

Requires Python 3.10+ and IDA Pro 9.x (Windows).

git clone https://github.com/cacamelio/ida-auto-mcp.git
cd ida-auto-mcp
pip install -r requirements.txt

Auto-Config

Run the setup helper to automatically register the server in your installed clients:

python setup_clients.py

Or configure manually below.


Related MCP server: my-ida-mcp

Client Configuration

OpenCode (~/.config/opencode/opencode.json)

Add ida-auto under the "mcp" key:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ida-pro": {
      "type": "remote",
      "url": "http://127.0.0.1:13337/sse",
      "enabled": true
    },
    "ida-auto": {
      "type": "local",
      "command": [
        "python",
        "C:\\path\\to\\ida-auto-mcp\\server.py"
      ],
      "enabled": true
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "ida-auto": {
      "command": "python",
      "args": [
        "C:\\path\\to\\ida-auto-mcp\\server.py"
      ]
    }
  }
}

Antigravity (~/.gemini/config/mcp_config.json)

{
  "mcpServers": {
    "ida-pro-mcp": {
      "type": "http",
      "serverUrl": "http://127.0.0.1:13337/mcp"
    },
    "ida-auto": {
      "command": "python",
      "args": [
        "C:\\path\\to\\ida-auto-mcp\\server.py"
      ]
    }
  }
}

Available Tools

ida_open

Opens a target file in IDA. If another instance is running, it saves and closes it first.

  • target_path (str, required): Path to the .dll, .exe, .so, or .i64.

  • gui (bool, default: True): Launches ida64.exe (GUI) or idat64.exe (headless text mode).

  • autonomous (bool, default: True): Passes -A to silence all interactive popups/dialogs.

  • wait_ready (bool, default: True): Blocks until auto-analysis completes.

  • timeout_sec (int, default: 180): Max wait time for analysis.

  • force_new_database (bool, default: False): Ignores existing .i64 and starts fresh.

ida_switch

Atomic switch between binaries. Flushes the active database, closes IDA, frees port 13337, spawns the next target, and waits for analysis.

  • Takes the same arguments as ida_open.

ida_close

Flushes the .i64 database and shuts down the active IDA instance.

  • save (bool, default: True): Writes database to disk before closing.

  • timeout_sec (int, default: 15).

ida_status

Queries IDA's server_health endpoint and reports loaded module, IDB path, PID, and whether auto-analysis has completed.

ida_save

Flushes current disassembly and decompilation changes to the .i64 database without closing IDA.

ida_list_targets

Scans a folder for candidate binaries (.dll, .exe, .sys, etc.) and indicates whether an .i64 database is already present for each file.

  • directory (str, required).

  • extensions (list[str], default: [".dll", ".exe", ".sys", ".so", ".bin"]).

  • recursive (bool, default: False).


Example Prompt

Once configured, you can give your AI prompts like:

"Look inside D:\programs\my_program\. Use ida_list_targets to see what DLLs are there, then open test.dll and test1.dll sequentially. For each one, summarize its exported interfaces and string references, then close IDA when done."

The AI will handle opening, analyzing, saving, and switching targets completely on its own.


Details & Edge Cases

  • Autonomous Mode (-A): By default, ida-auto-mcp passes -A so IDA won't halt on prompt dialogs (like PDB download confirmations or compiler signature choices).

  • Existing Databases & Game Updates: If a .i64 file exists, ida-auto-mcp checks file modification timestamps (mtime). If the binary hasn't changed, it reuses the .i64 for instant loading. If the binary was updated on disk after the .i64 was saved (e.g. after a game patch), ida-auto-mcp automatically archives the stale database to <binary>_pre_update_<timestamp>.i64 and generates a fresh database for the updated binary so your analysis is always up to date.

  • Port Conflict Handling: When IDA exits, Windows sockets can briefly hold port 13337 in TIME_WAIT. ida-auto-mcp actively waits for the port to release before spawning the next process so IDA won't mistakenly bump its port to 13338.


License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to inspect, reverse engineer, decompile, and operate on binaries through IDA Pro, including headless and GUI sessions, over stdio or Streamable HTTP.
    29 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients such as Claude, Cursor, Cline, and Codex to remotely drive IDA Pro over HTTP through 88 tools, covering Hex-Rays decompilation, disassembly, cross-reference tracing, type and struct reconstruction, C header import, memory reading and patching, and full dynamic debugging with breakpoints, registers, and stepping.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to drive IDA Pro for reverse engineering and binary analysis, including running Python scripts inside the disassembler, extracting strings, imports, exports and functions, searching for immediate values, text and byte sequences, and retrieving disassembly for address ranges.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to control IDA Pro for reverse engineering and binary analysis by running Python scripts and querying binaries. It supports retrieving strings, imports, exports, and functions, searching immediate values, text, and byte sequences, and getting disassembly for address ranges over a secure local HTTP bridge.
    -