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
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured