IDAssistMCP

IDAssistMCP

Enables LLM clients like Claude to interact with IDA Pro for binary analysis, decompilation, cross-references, patching, and more via 41 MCP tools, 8 resources, and 7 guided prompts.

Category
Visit Server

README

IDAssistMCP

Standalone MCP (Model Context Protocol) server plugin for IDA Pro 9.x that exposes IDA's analysis capabilities to LLM clients like Claude Desktop.

Screenshot

Features

  • 41 MCP tools covering binary analysis, decompilation, cross-references, symbol management, type system, navigation, patching, export, and more
  • 6 consolidated tools with action/format/direction parameters for comments, variables, types, xrefs, bookmarks, and code
  • 8 MCP resources for browsable binary metadata (triage, functions, imports, exports, strings, info, segments, sections)
  • 7 guided prompts for common reverse engineering workflows (function analysis, vulnerability identification, documentation, data flow tracing, function comparison, struct recovery, network protocol analysis)
  • SSE and Streamable HTTP transports via Hypercorn ASGI server
  • Thread-safe IDB modifications via execute_on_main_thread() wrapper
  • LRU analysis cache for expensive operations like decompilation
  • Async task manager for long-running operations
  • Pydantic configuration with environment variable support (IDASSISTMCP_ prefix)

Installation

Prerequisites

  • IDA Pro 9.x with Python 3.10+
  • Hex-Rays decompiler (optional, for decompilation tools)

Option 1: IDA Plugin Manager (recommended)

hcli plugin install idassistmcp

This automatically installs the plugin and its Python dependencies.

Option 2: Manual install (from release tarball)

Download the latest release zip from GitHub Releases and extract it into your IDA plugins directory:

Linux / macOS:

unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/

Windows: Extract the zip into %APPDATA%\Hex-Rays\IDA Pro\plugins\.

Then install dependencies using IDA's bundled Python (not your system Python):

Linux / macOS:

<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt

Windows:

"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"

Replace <IDA_INSTALL_DIR> with your IDA Pro installation path.

Tip: You can also use the IDAUSR environment variable to specify a custom plugins directory.

Usage

Starting the Server

  1. Open a binary in IDA Pro
  2. Press Ctrl+Shift+M or go to Edit > Plugins > IDAssistMCP
  3. The MCP server URL will be printed to IDA's output window
  4. Press Ctrl+Shift+M again to stop the server

Claude Desktop Configuration

Add to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "idassistmcp": {
      "url": "http://localhost:9080/mcp"
    }
  }
}

Environment Variables

Configure via environment variables with the IDASSISTMCP_ prefix:

Variable Default Description
IDASSISTMCP_SERVER__HOST localhost Server bind address
IDASSISTMCP_SERVER__PORT 9080 Server port
IDASSISTMCP_SERVER__TRANSPORT streamablehttp Transport type (sse or streamablehttp)
IDASSISTMCP_DEBUG false Enable debug mode
IDASSISTMCP_LOG_LEVEL INFO Log level

Tools Reference

Binary Management (2)

Tool Description
list_binaries List the currently loaded binary
get_binary_info Detailed binary metadata (arch, hashes, segments)

Code Analysis (4)

Tool Description
get_code Get function code — format: 'decompile' (pseudo-C) or 'disasm' (assembly)
analyze_function Comprehensive analysis: metadata, CFG, callers/callees, decompilation
get_basic_blocks CFG basic blocks with successors/predecessors
get_function_stack_layout Stack frame layout (locals, args, saved regs)

Cross-References (1 consolidated)

Tool Actions Description
xrefs direction: to/from/both, include_calls: bool Xrefs and optional callers/callees for an address

Comments (1 consolidated)

Tool Actions Description
comments action: get, set, list, remove Manage comments (regular, repeatable, function)

Variables (1 consolidated)

Tool Actions Description
variables action: list, rename List locals, or rename local/global variables with scope: auto, local, global

Types (2 — 1 consolidated + 1 standalone)

Tool Actions / Description
types action: list, set, create_struct, create_enum — manage IDB types
get_classes List struct/class types from type library

Function Discovery (5)

Tool Description
get_functions All functions with filtering and pagination
search_functions_by_name Search by name pattern and size filters
get_function_by_name Exact name lookup
get_function_by_address Address lookup
get_function_statistics Aggregate statistics (counts, sizes, top-10)

Symbol Management (2)

Tool Description
rename_symbol Rename any symbol (function or data)
batch_rename Batch rename multiple symbols

Binary Info (5)

Tool Description
get_imports Import table grouped by module
get_exports Export table
get_strings String table with pagination
get_segments Memory segments with permissions
get_entry_points All binary entry points

Data Analysis (6)

Tool Description
read_memory Read raw bytes at address
get_data_at Get typed data at address
search_bytes Binary byte pattern search
search_strings String search with pagination
create_data_var Define data variable at address (byte/word/dword/qword/float/ascii/C type)
get_data_vars List defined data variables (non-code items)

Patching (3)

Tool Description
patch_bytes Patch raw bytes in IDB
assemble_code Assemble instruction text at an address and optionally patch it
export_program Export the patched binary or IDA database to disk

Navigation (4)

Tool Description
navigate_to Move IDA cursor to address
bookmarks Consolidated bookmark management - actions: list, set, remove
get_current_address Get address and context at cursor position
get_current_function Get function info at cursor position

Task Management (4)

Tool Description
start_task Start async background task
get_task_status Check task progress
cancel_task Cancel running task
list_tasks List all async tasks

Project Structure

IDAssistMCP/
├── idassistmcp_plugin.py              # IDA plugin_t entry point
├── requirements.txt
├── README.md
└── src/
    └── idassist_mcp/
        ├── __init__.py
        ├── server.py                  # FastMCP server + transport
        ├── context.py                 # Single-binary IDA context
        ├── tools.py                   # 41 MCP tools (IDA API)
        ├── resources.py               # 8 MCP resources
        ├── prompts.py                 # 7 guided workflow prompts
        ├── config.py                  # Pydantic settings
        ├── cache.py                   # LRU analysis cache
        ├── tasks.py                   # Async task manager
        ├── logging.py                 # IDA logging wrapper
        ├── utils.py                   # IDA-specific utilities
        └── ui/
            └── tool_registry.py       # Tool catalog for UI

License

See LICENSE file for details.

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
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
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
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
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
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