idb_openLABSCO SUMMARY
Batch-first and paginated, because a binary will otherwise flood the context window.
Most tools take a list, search results are cursor-paginated with a default limit of 1000 and an enforced maximum of 10000, and errors come back per item rather than failing the batch. That is what makes renaming fifty functions or scanning a large binary practical. Debugger tools are hidden behind an explicit ?ext=dbg opt-in, and py_eval runs arbitrary Python inside IDA — treat both as deliberate grants.
What it is
A broad MCP surface over IDA Pro, covering the analyst's workflow rather than a couple of read calls. Its API is batch-first — most operations take a single item or a list — and it can run headless through idalib as well as inside the GUI, with multiple databases open as separate sessions.
What you get
- Core analysis: functions and globals looked up and listed, imports enumerated, functions decompiled and disassembled with arguments and stack frame, cross-references and callees resolved —
lookup_funcs,list_funcs,list_globals,imports,decompile,disasm,xrefs_to,xrefs_to_field,callees - Annotation and modification: comments set in both views, bookmarks added, instructions patched, C types declared, functions and code defined or undefined —
set_comments,add_bookmark,patch_asm,declare_type,define_func,define_code,undefine - Memory and data reading: raw bytes, typed integers, null-terminated strings and compile-time global values —
get_bytes,get_int,get_string,get_global_value - Stack frames and structures: frame variables read, stack variables created and deleted, struct fields read at an address, structures searched by name —
stack_frame,declare_stack,delete_stack,read_struct,search_structs - Search across the binary: regex over strings, byte patterns like
48 8B ?? ??, instruction sequences, and immediates or references —find_regex,find_bytes,find_insns,find - Types and control flow: types applied or inferred, basic blocks with successors and predecessors, call graphs from chosen roots, and function export as json, c_header or prototypes —
set_type,infer_types,basic_blocks,callgraph,export_funcs - Batch operations built in: unified renaming of functions, globals, locals and stack variables in one call, multi-patch, and bulk integer writes —
rename,patch,put_int - A debugger extension, hidden until you add
?ext=dbgto the URL: start and step, breakpoints, registers per thread, stack traces, and reading or writing process memory —dbg_start,dbg_run_to,dbg_step_over,dbg_add_bp,dbg_regs,dbg_stacktrace,dbg_read,dbg_write - Session management for several binaries at once, plus resources for browsing state such as
ida://idb/metadata,ida://idb/segments,ida://structsandida://xrefs/from/{addr}—idb_open,idb_list,idb_close,idb_save - Arbitrary Python evaluated in the IDA context when nothing else fits —
py_eval
Requirements
IDA Pro 8.3 or higher, 9 recommended — IDA Free is not supported. Python 3.11 or higher, switched with idapyswitch. Headless use needs idalib activated globally and uv installed. Installs as a Claude Code plugin, or via ida-pro-mcp --config to print the JSON for any other client. Worker limits are set with --max-workers, default 4, or IDA_MCP_MAX_WORKERS. Version 2.0.0.
Setup effort
Follow the published steps — pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
USE CASES
Making sense of a function you have never seen
Decompile it, pull its cross-references and callees, then run the comprehensive analysis that brings assembly, strings, constants and basic blocks together in one answer.
Naming things as you understand them
Rename functions, globals, locals and stack variables in one batch call, and set comments that show up in both the disassembly and decompiler views.
Finding where a value or byte pattern is used
Search for the byte pattern with wildcards, or the instruction sequence, or the immediate value — then follow the cross-references from what you found.
Recovering a structure from how it is accessed
Infer types at the access sites, declare the C type, apply it, and read the struct's fields back at a concrete address to check you got it right.
Watching the binary actually run
Enable the debugger extension, set breakpoints, step, and read registers and process memory at each stop.
65 tools
Listed in project docs. Your client may show a different list.
idb_listidb_closeidb_saveserver_healthlookup_funcsint_convertlist_funcslist_globalsimportsdecompiledisasmxrefs_toxrefs_to_fieldcalleesadd_bookmarkset_commentspatch_asmdeclare_typedefine_funcdefine_codeundefineget_bytesget_intget_stringget_global_valuestack_framedeclare_stackdelete_stackread_structsearch_structsdbg_startdbg_exitdbg_continuedbg_run_todbg_step_intodbg_step_overdbg_bpsdbg_add_bpdbg_delete_bpdbg_toggle_bpdbg_regsdbg_regs_alldbg_regs_remotedbg_gpregsdbg_gpregs_remotedbg_regs_nameddbg_regs_named_remotedbg_stacktracedbg_readdbg_writepy_evalanalyze_funcsfind_regexfind_bytesfind_insnsfindbasic_blocksset_typeinfer_typesexport_funcscallgraphrenamepatchput_intBEFORE YOU INSTALL
What to know first
Tools you get
65 tools named in the project's documentation.
INSTALLATION
Connect your client
Server setup
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zipConfigure the MCP servers and install the IDA Plugin:
ida-pro-mcp --installCompletely restart IDA and your MCP client for the installation to take effect.
MCP Clients
Claude Code
claude plugin marketplace add mrexodia/claude-marketplace
claude plugin uninstall ida-pro-mcp@mrexodia
claude plugin install ida-pro-mcp@mrexodiaCodex
codex plugin marketplace add mrexodia/codex-marketplace
codex plugin remove ida-pro-mcp@mrexodia
codex plugin add ida-pro-mcp@mrexodiaKimi Code
/plugins install https://github.com/mrexodia/ida-pro-mcp/tree/main
/reloadOther MCP Clients
Run ida-pro-mcp --config to get the JSON config for your client.