IDA Pro MCP Server

IDA Pro MCP Server

Bridges Claude Code with IDA Pro 9.0+ to provide 87 tools for AI-assisted reverse engineering, including decompilation, navigation, debugging, and patching.

Category
访问服务器

README

IDA Pro MCP Server for Claude Code

Bridge Claude Code (CLI and Editor Extensions like VS Code, Cursor, Windsurf) with IDA Pro 9.0+ for AI-assisted reverse engineering. 87 tools covering virtually everything IDA Pro can do.


Architecture

Claude Code / Cursor / VS Code (MCP Client)
               │ (stdio)
               ▼
        ida-mcp Server
               │ (JSON-RPC over localhost:13337)
               ▼
   IDA Pro Plugin (ida_mcp_plugin.py)
               │ (IDAPython API on main thread)
               ▼
         IDA Pro 9.0+

Installation & Setup

1. Install the IDA Plugin

Copy ida_plugin/ida_mcp_plugin.py into your IDA Pro plugins directory:

  • macOS: ~/idapro-9.0/plugins/ or /Applications/IDA Professional 9.0.app/Contents/MacOS/plugins/
  • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\ or C:\Program Files\IDA Professional 9.0\plugins\
  • Linux: ~/.idapro/plugins/ or /opt/idapro-9.0/plugins/

When you open any binary in IDA Pro, the plugin starts a JSON-RPC server on 127.0.0.1:13337.

2. Configure Claude Code CLI

claude mcp add ida-pro -- uv run --directory "/Users/benzi/Documents/IDA MCP" ida-mcp

3. Configure VS Code / Cursor / Windsurf

Add to .mcp.json or your editor's MCP configuration:

{
  "mcpServers": {
    "ida-pro": {
      "command": "uv",
      "args": ["run", "--directory", "/Users/benzi/Documents/IDA MCP", "ida-mcp"]
    }
  }
}

Environment Variables

  • IDA_MCP_HOST — Override host (default: 127.0.0.1)
  • IDA_MCP_PORT — Override port (default: 13337)

Available Tools (87 Total)

Analysis (4)

Tool Description
decompile_function Hex-Rays C pseudocode decompilation
disassemble_function Full assembly listing for a function
disassemble_range Assembly between two addresses
get_bytes Read raw hex bytes from an address

Navigation & Discovery (14)

Tool Description
list_functions List all functions with optional filter
get_function_info Detailed function metadata
list_segments Memory segments with permissions
get_xrefs_to Cross-references TO an address
get_xrefs_from Cross-references FROM an address
list_strings Defined strings with optional filter
get_imports Imported functions by module
get_exports Exported functions and entry points
list_structs Structures, unions, member layouts
list_enums Enumerations and values
create_struct Create a new struct type
get_function_callers Functions calling a target (with call sites)
get_function_callees Functions called by a target
make_string Define a C-style string at address

Introspection (14)

Tool Description
get_flowchart Control flow graph — basic blocks with predecessors/successors
get_comment Read comment at an address
get_all_comments Read all comments within a function
get_function_comment Read function-level comment
set_function_comment Set function-level comment
get_stack_frame Full stack frame layout (locals, args, saved regs)
set_operand_type Change operand display (hex/decimal/binary/char)
set_local_variable_type Retype a local variable in decompilation
get_color Get instruction/function/segment color
set_color Set instruction/function/segment color (RGB)
get_function_hash Hash function bytes (MD5/SHA1/SHA256)
get_exception_info Detect try/catch/throw in a function
get_microcode Hex-Rays intermediate representation at any maturity level

Modifications (7)

Tool Description
rename_function Rename a function
rename_address Rename a label, variable, or address
set_comment Set regular or repeatable comment
set_function_type Set C function signature/prototype
set_type Set type at address
rename_local_variable Rename local variable (Hex-Rays)
apply_callee_type Apply type at call site

Search (2)

Tool Description
search_text Text search through disassembly
search_bytes Byte pattern/signature search

Debugger (17)

Tool Description
start_debugger Start debugging the binary
get_debugger_status Check debugger active/suspended state
set_breakpoint Set software breakpoint
delete_breakpoint Remove a breakpoint
list_breakpoints List all breakpoints
enable_breakpoint Enable/disable breakpoint
step_into Step into next instruction
step_over Step over next instruction
continue_execution Continue until next breakpoint
suspend_debugger Pause execution
exit_debugger Terminate process
get_registers Read CPU registers
read_debug_memory Read memory from debugged process (hex dump with ASCII)
get_stack_trace Call stack trace
list_debugger_threads List all process threads
switch_thread Switch active debugger thread
add_watchpoint Set hardware watchpoint (read/write/execute)

Advanced (14)

Tool Description
patch_bytes Patch bytes in the IDA database
execute_idapython Run arbitrary IDAPython code
load_type_library Load .til type information library
list_type_libraries List loaded TILs
make_code Convert bytes to code (instruction)
make_data Convert bytes to typed data
undefine Revert to raw undefined bytes
define_function Create function at address range
undefine_function Delete function definition
add_bookmark Add persistent bookmark
list_bookmarks List all bookmarks
delete_bookmark Remove bookmark
get_local_variables List local variables and arguments
get_global_variables List named global data variables

Database & Export (12)

Tool Description
save_database Save the IDA database
apply_flirt_signature Apply FLIRT .sig for library identification
list_flirt_signatures List applied FLIRT signatures
create_segment Create new memory segment
delete_segment Delete segment definition
set_segment_permissions Change segment rwx permissions
create_array Define typed arrays
navigate_to Jump IDA cursor to address
produce_asm Export clean assembly listing
produce_c Export clean C pseudocode
run_idc_script Execute IDC script code
run_ida_action Trigger registered IDA UI action
list_ida_actions List all available IDA actions

Meta (3)

Tool Description
get_binary_info File path, arch, bitness, entry point
get_analysis_status Check auto-analysis completion
ping Check IDA connectivity

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选