Data as of

IDA Pro MCP for Cursor: Setup & Config

Cursor: IDA Pro MCP connects AI clients to IDA for binary inspection, decompilation, database changes, and optional debugging.

What you can do with IDA Pro in Cursor

Choose it for IDA-native binary analysis with explicit database sessions and persistent headless workers.

  • Coordinate analysis across explicit headless database sessions.
  • Read memory structures or use opt-in debugger operations.

Before you start: IDA Pro in Cursor

  • 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

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.

IDA Pro Cursor configuration

  1. Choose Cursor configuration scope

    For IDA Pro MCP, open Project: .cursor/mcp.json User: ~/.cursor/mcp.json. Merge into mcpServers at project or user scope.

  2. Add IDA Pro MCP to Cursor

    Use the ida-pro-mcp entry below in mcpServers. Keep IDA Pro MCP's documented stdio connection fields and your other Cursor entries.

  3. Check IDA Pro MCP in Cursor

    IDA Pro MCP: Enable in Cursor’s MCP settings; inspect tools.

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

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

IDA Pro tools available to Cursor

IDA Pro's stored tool list documents 35 tools; compare it with Cursor's connected tool list, because the stored list is not a live check.

idb_open

Find idb_open under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Open or adopt a binary database and return its session identifier.

idb_list

Find idb_list under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

idb_save

Find idb_save under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

server_health

Find server_health under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

lookup_funcs

Find lookup_funcs under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

int_convert

Find int_convert under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

list_funcs

Find list_funcs under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

list_globals

Find list_globals under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

imports

Find imports under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

decompile

Find decompile under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

disasm

Find disasm under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

xrefs_to

Find xrefs_to under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

xrefs_to_field

Find xrefs_to_field under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

callees

Find callees under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

add_bookmark

Find add_bookmark under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

set_comments

Find set_comments under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

patch_asm

Find patch_asm under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

declare_type

Find declare_type under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

define_func

Find define_func under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Define functions at selected addresses, optionally with explicit endpoints.

define_code

Find define_code under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Interpret selected bytes as instructions.

undefine

Find undefine under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Return selected defined items to raw bytes.

get_bytes

Find get_bytes under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Read raw memory bytes from selected addresses.

get_int

Find get_int under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Read integers using a requested type and byte order.

get_string

Find get_string under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Read strings terminated by a null byte.

get_global_value

Find get_global_value under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Read compile-time global values by name or address.

stack_frame

Find stack_frame under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Inspect stack variables belonging to selected functions.

declare_stack

Find declare_stack under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Create stack variables at chosen offsets.

delete_stack

Find delete_stack under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Remove named stack variables.

read_struct

Find read_struct under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Read field values for a structure at an address.

search_structs

Find search_structs under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Find structures using a name filter.

dbg_start

Find dbg_start under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Start a debugging process when the debugger extension is enabled.

dbg_exit

Find dbg_exit under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

End a debugging process.

dbg_continue

Find dbg_continue under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Resume execution in the debugger.

dbg_run_to

Find dbg_run_to under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Continue debugging until a selected address.

dbg_step_into

Find dbg_step_into under IDA Pro in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Advance into the next instruction during debugging.

IDA Pro: full stored tool descriptions

Troubleshooting IDA Pro in Cursor

  • Cursor must find uv for IDA Pro MCP. Enable the project/user entry in MCP settings and inspect its tools.
  • IDA Pro MCP uses stdio here: Cursor must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Requires IDA Pro; IDA Free is unsupported.
  • Known limitation: The GUI plugin path is no longer recommended.
  • Known limitation: The README warns that hallucinations and obfuscation can reduce model accuracy.
  • General Cursor troubleshooting lives in the /clients/cursor guide.

IDA Pro MCP — details. Cursor guide

Frequently asked questions

Cursor's IDA Pro MCP entry belongs under mcpServers in .cursor/mcp.json (project) or ~/.cursor/mcp.json (user). Confirm the active scope in MCP settings.

Cursor's ida-pro-mcp example uses stdio.

IDA Pro MCP's Cursor configuration invokes uv.

IDA Pro MCP's stored list contains 35 tools, including idb_open, idb_list, idb_save. Compare those names with Cursor's connected tool list; the stored list is not a live check.

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.