Overview

Each IDA-Instance is a dedicated LXC container running IDA Pro 9.4 with a built-in MCP server. You interact with it through two channels:

  • Browser VNC — the full IDA GUI, accessible at vnc.username.idainstances.xyz
  • MCP server — 66 tools exposed over HTTP at username.idainstances.xyz/mcp

Both are proxied through nginx on the host. Your container has no internet egress — it can only receive traffic from the proxy.

Connecting your MCP client

Claude Code

claude mcp add --transport http ida \
  https://username.idainstances.xyz/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Generic JSON config

{
  "mcpServers": {
    "ida": {
      "url": "https://username.idainstances.xyz/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Your API key is shown on your dashboard after launching an instance. It persists across reboots.

Browser VNC

Navigate to vnc.username.idainstances.xyz in any browser. You'll be redirected to the noVNC web client. Enter your VNC password (also shown on your dashboard) and IDA's full GUI appears.

No client software needed. Works in Chrome, Firefox, Safari, Edge.

Using MCP tools

Once connected, your AI client can call any of the 66 available tools. Common workflows:

# Survey a binary
"open /tmp/crackme.exe and give me an overview"

# Decompile a function
"decompile the function at 0x401000"

# Rename and comment
"rename sub_402000 to 'parse_header' and add a comment"

# Run Python in IDA
"run print(idaapi.get_input_file_path()) in IDA"

Endpoints

  • POST /mcp — MCP JSON-RPC over HTTP
  • GET /sse — SSE stream for MCP events
  • GET /key — one-time API key fetch (burned after use)
  • GET /config.html — web config panel

Available tools

66 tools total. Key categories:

  • Session — idb_open, idb_list, idb_close
  • Triage — survey_binary, analyze_function, analyze_component
  • Decompilation — decompile, disasm, force_recompile
  • Typing — set_type, type_inspect, infer_types, make_data
  • Renaming — rename (batch func/data/local/stack)
  • Comments — set_comments, append_comments, add_bookmark
  • Patching — patch_asm, patch, define_func, define_code
  • Python — py_eval (run arbitrary Python in IDA)
  • Signatures — make_signature, find_xref_signatures
  • Data flow — trace_data_flow (multi-hop xref traversal)

Environment

  • IDA Pro 9.4 with Hex-Rays decompiler
  • Python 3.14 with IDAPython
  • idalib for headless analysis
  • Isolated LXC container, no internet egress
  • 1920x1080 VNC display