Server profile

IDA Pro MCP

IDA Pro MCP connects AI clients to IDA for binary inspection, decompilation, database changes, and optional debugging. Its recommended headless path manages persistent analysis workers and explicit database sessions.

Server facts

IDA Pro MCP

Tech

Runtime / language
pythonPython
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
12,951
Last commit
Data as of

Tags

  • Binary Analysis
  • Decompilation
  • Headless
  • Ida Pro
  • Reverse Engineering

Overview

IDA Pro MCP links AI assistants with IDA Pro for reverse-engineering workflows. The README lists operations for locating functions, inspecting decompiled output and assembly, reading memory, finding cross-references, and editing analysis state. Comments, types, code definitions, and assembly patches can be changed through documented tools. Numeric conversion has a dedicated operation because the author warns that language models can mishandle number bases. Debugger controls exist as an optional extension rather than being exposed by default. The integration is intended to support analysis, but the documentation emphasizes that model output still needs careful prompting and verification, particularly for obfuscated binaries.

The recommended direction is the headless idalib-mcp service; the older GUI plugin is no longer recommended and is expected to be deprecated. Headless operation uses a supervisor with one persistent worker per open database. Subsequent supervisors can adopt an existing worker, and tools must identify their target database with a returned session ID instead of relying on an implicit current file. Both stdio and network-based launch examples are provided. Requirements include Python 3.11 or newer and IDA Pro 8.3 or newer, with version 9 recommended; IDA Free is explicitly unsupported. The Claude Code plugin path additionally requires globally activated idalib and uv. These prerequisites make it a specialized integration for existing IDA users rather than a standalone replacement for the analysis application.

Install & configure

Requirements

  • Python 3.11 or newer
  • IDA Pro 8.3 or newer; version 9 recommended
  • Installed idalib for headless operation
  • uv for the documented launch command
  • An MCP-compatible client
Documented launch / install command
uv run idalib-mcp --stdio

The selected command uses the recommended headless direction. Install the package or Claude Code plugin as documented and activate idalib as required. IDA Free is unsupported. Database tools require explicit session identifiers.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Desktop configuration
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "uv",
      "args": [
        "run",
        "idalib-mcp",
        "--stdio"
      ],
      "env": {}
    }
  }
}

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "uv",
      "args": [
        "run",
        "idalib-mcp",
        "--stdio"
      ],
      "env": {}
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "ida-pro-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "idalib-mcp",
        "--stdio"
      ],
      "env": {}
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "uv",
      "args": [
        "run",
        "idalib-mcp",
        "--stdio"
      ],
      "env": {}
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "ida-pro-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "idalib-mcp",
        "--stdio"
      ],
      "env": {}
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
idb_openOpen or adopt a binary database and return its session identifier.
idb_listInspect open sessions and discovered IDA GUI instances.
idb_saveSave a session’s analysis database to disk.
server_healthInspect health for an explicitly selected database.
lookup_funcsResolve functions by name or address.
int_convertConvert numeric values among decimal, hexadecimal, bytes, ASCII, and binary formats.
list_funcsList functions with filtering and pagination.
list_globalsBrowse global variables with pagination and filters.
importsList imported symbols and their modules.
decompileProduce decompiler output for a function address.
disasmInspect a function’s assembly and related details.
xrefs_toFind references targeting one or more addresses.
xrefs_to_fieldFind references to specified structure fields.
calleesList functions called from selected function addresses.
add_bookmarkCreate or replace an IDA bookmark at an address.
set_commentsWrite comments in assembly and decompiler views.
patch_asmReplace instructions using assembly patches.
declare_typeAdd C type declarations to the local type library.
define_funcDefine functions at selected addresses, optionally with explicit endpoints.
define_codeInterpret selected bytes as instructions.
undefineReturn selected defined items to raw bytes.
get_bytesRead raw memory bytes from selected addresses.
get_intRead integers using a requested type and byte order.
get_stringRead strings terminated by a null byte.
get_global_valueRead compile-time global values by name or address.
stack_frameInspect stack variables belonging to selected functions.
declare_stackCreate stack variables at chosen offsets.
delete_stackRemove named stack variables.
read_structRead field values for a structure at an address.
search_structsFind structures using a name filter.
dbg_startStart a debugging process when the debugger extension is enabled.
dbg_exitEnd a debugging process.
dbg_continueResume execution in the debugger.
dbg_run_toContinue debugging until a selected address.
dbg_step_intoAdvance into the next instruction during debugging.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Inspect binary functions through decompilation, disassembly, and cross-references.
  • Document findings by editing comments and type definitions.
  • Coordinate analysis across explicit headless database sessions.
  • Read memory structures or use opt-in debugger operations.

Strengths

  • Combines read operations with IDA database modification tools.
  • Headless workers can persist and be adopted by later supervisors.
  • Offers dedicated number-format conversion and optional debugger tools.

Limitations

  • Requires IDA Pro; IDA Free is unsupported.
  • The GUI plugin path is no longer recommended.
  • The README warns that hallucinations and obfuscation can reduce model accuracy.

Frequently asked questions

No. The README explicitly excludes IDA Free and requires IDA Pro 8.3 or newer.

The README recommends idalib-mcp over the older GUI MCP plugin, which is expected to be deprecated.

Open a binary with idb_open and pass its returned session ID as the database argument on tool calls.

No. They are hidden by default and require enabling the debugger extension with the documented ext=dbg query parameter.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

MCP Toolbox for Databases

Databases

MCP Toolbox for Databases connects agents and IDEs to enterprise data through prebuilt tools or custom query definitions. It combines database access with connection pooling, authentication integration, and observability.

BlenderMCP

Games & 3D

BlenderMCP links AI assistants to Blender for scene inspection, object and material changes, and Python execution. Optional asset integrations add Poly Haven downloads, Sketchfab models, and generated 3D assets.

ghidraMCP

Security & Reverse Engineering

ghidraMCP connects AI assistants to core Ghidra analysis features through a plugin and Python bridge. It supports binary decompilation, renaming methods and data, and browsing methods, classes, imports, and exports.

JADX-AI-MCP

Security & Reverse Engineering

Connect an MCP assistant to JADX's live Android decompilation context. The Java plugin and companion Python server expose source inspection, resource access, cross-references, renaming, and debugger information.

MCP Server for WinDbg Crash Analysis

Security & Reverse Engineering

Connect MCP assistants to WinDbg/CDB for Windows crash analysis and live remote debugging. It exposes dump discovery, session management, debugger commands, and execution breaks rather than promising automatic fixes.

apktool-mcp-server

Security & Reverse Engineering

apktool-mcp-server exposes APK decoding, inspection, editing, and rebuilding through MCP. It supports authorized Android security research with manifest access, smali operations, resource editing, and file searches.