SkillAgentSearch skills...

IDAssistMCP

Standalone MCP server plugin for IDA Pro.

Install / Use

claude mcp add symgraph -- npx -y github:symgraph/IDAssistMCP

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

79/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of IDAssistMCP

IDAssistMCP scores 79/100 on our quality scale, 786th of 941 AI & Machine Learning skills we index.

Its MCP Server is 7.7 KB long, well organised into 26 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.

It has 50 GitHub stars, a meaningful sign that others use it.

Substance
29/30
Structure
20/20
Description
8/15
Adoption
7/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 25 days ago, so IDAssistMCP is actively maintained.
  • Our last check on 2026-08-31 found the source still online.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 95/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

IDAssistMCP compared with similar skills

All 4 of these similar skills score higher than IDAssistMCP; compare them before choosing.

SkillScoreStarsUpdatedFormat
IDAssistMCP (this skill)by symgraph795025d agoMCP Server
claude-memby thedotmack100111.7k1d agoCLAUDE.md
Agent-Reachby Panniantong100108.4k2d agoCLAUDE.md
Understand-Anythingby Egonex-AI10090.2k8d agoCLAUDE.md
headroomby headroomlabs-ai10078.7ktodayCLAUDE.md

Frequently asked questions

How do I install IDAssistMCP?
Run claude mcp add symgraph -- npx -y github:symgraph/IDAssistMCP. The install tabs above show the steps for each supported agent.
Which AI agents does IDAssistMCP work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is IDAssistMCP safe to use?
It is MIT-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is IDAssistMCP still maintained?
The repository was last updated 25 days ago, so IDAssistMCP is actively maintained.

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.

Related Skills

View on GitHub
GitHub Stars50
CategoryAI
Updated25d ago
Forks12

Languages

Python

Trust signals

95/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low