Token导航 LogoToken导航TokenDH.com
Ida Multi MCP logo
AI代理stdio官方级别未说明来源级核验

Ida Multi MCP

MCP Server

ida-multi-mcp是一个支持多实例IDA Pro通过单一MCP端点进行二进制逆向工程分析的服务,适用于并行分析多个二进制文件(如恶意软件、载荷等)的场景。

工具数

0

提示词数

0

GitHub Stars

218

资源数

0
逆向工程PythonClaudeClaude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MeroZemory

提供方

MeroZemory

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m pip uninstall -y ida-multi-mcp

详细介绍

ida多mcp

多实例IDA Pro MCP服务器,用于通过单个MCP端点同时对多个二进制文件进行逆向工程。通过idalib支持GUI实例和无头分析(仅限IDA Pro)。

License Python IDA Pro MCP

为什么选择ida multi-mcp?

通过单个MCP连接并行分析多个二进制文件——dropper、payload、C2。每个IDA Pro实例在启动时自动注册;LLM客户端在不接触其配置的情况下看到每个实例。

快速开始

只需让你的AI代理安装它。 复制粘贴这些提示之一——它为您处理Python版本匹配、IDA插件放置和MCP客户端注册。

克劳德码/安培码:

按照以下说明安装和配置ida multi-mcp:https://raw.githubusercontent.com/MeroZemory/ida-multi-mcp/main/docs/installation.md

光标:

@Web获取https://raw.githubusercontent.com/MeroZemory/ida-multi-mcp/main/docs/installation.md并按照安装步骤进行操作。

安装后,在IDA Pro中打开二进制文件(实例自动注册),并询问您的LLM:

*“分解 main 在malware.exe(k7m2)中,并将其与dropper.dll(px3a)中的入口点进行比较”*

更喜欢手动安装吗?看 手动安装 在......下面

运作原理

MCP Client (Claude, Cursor, etc.)
    │  stdio (MCP Protocol)
    ▼
┌──────────────────────────────────────┐
│  ida-multi-mcp Server (Router)       │
│  - Dynamic tool discovery            │
│  - instance_id routing               │
│  - Management + idalib lifecycle     │
└───┬──────┬──────┬──────┬─────────────┘
    │      │      │      │  HTTP JSON-RPC
    ▼      ▼      ▼      ▼
  IDA #1  IDA #2  IDA #3  idalib #1
  (GUI)   (GUI)   (GUI)   (headless)

特性

  • 零配置实例发现 --每个IDA Pro实例在启动时自动注册
  • 无头分析(IDA Pro) --通过以下方式打开没有GUI的二进制文件 idalib_open --每个会话都作为一个独立的子进程运行
  • 港口无碰撞 --使用操作系统自动分配的端口(端口0)
  • 动态工具发现 --所有80多种IDA工具均可自动使用
  • 一球二分诊survey_binary 在一次调用中返回元数据、段、顶部字符串/函数、导入和调用图
  • 交叉二元分析 --通过以下方式定位特定实例 instance_id 参数
  • 智能实例跟踪 --4个字符的ID(k7m2、px3a等),具有自动二进制变化检测功能
  • IDA 8.3–9.3兼容 --内置版本兼容性垫片(compat.py)
  • 基于文件的注册表 --跟踪所有活动实例(GUI和无头)
  • 优雅的回退 --处理二进制更改、过时实例和崩溃

需求

  • Python 3.11或更高版本
  • IDA Pro 8.3+(推荐9.0)

手动安装

已在中使用了AI代理提示 快速开始?你可以跳过这一节。

选择您的平台:

macOS — requires matching IDA's Python version

重要提示: IDA Pro通常使用与系统默认版本不同的Python版本(例如,IDA使用Python 3.11,而macOS附带3.14)。您必须安装以下软件包 两者 您的终端Python和IDA的Python。

步骤1:检查IDA的Python版本

打开IDA Pro,然后在IDA控制台中运行:

Python> import sys; print(sys.version)

注意版本(例如。, 3.11).

步骤2:安装

# 1. Install CLI tool via pipx (for terminal commands)
pipx install git+https://github.com/MeroZemory/ida-multi-mcp.git

# 2. Install package for IDA's Python (replace 3.11 with your IDA's version)
python3.11 -m pip install --user git+https://github.com/MeroZemory/ida-multi-mcp.git

# 3. Install IDA plugin + configure MCP clients
ida-multi-mcp --install

# 4. Configure Claude Code manually (recommended over --install for Claude Code)
claude mcp add ida-multi-mcp -s user -- ida-multi-mcp
注: ida-multi-mcp --install 使用注册MCP服务器 python3 -m ida_multi_mcp,这可能表明macOS上的Python版本错误。对于Claude Code,请使用 claude mcp add 如上所示,以确保它直接使用pipx管理的CLI。

Windows

# 0. (Recommended) Clean previous install to avoid stale scripts/config
ida-multi-mcp --uninstall
python -m pip uninstall -y ida-multi-mcp

# 1. Install ida-multi-mcp
python -m pip install git+https://github.com/MeroZemory/ida-multi-mcp.git

# 2. Install IDA plugin + configure all MCP clients
ida-multi-mcp --install
如果IDA使用的Python版本与默认版本不同,请使用 py -3.12 (替换为IDA的版本)而不是 python. 如果您手动编辑 %USERPROFILE%\\.codex\\config.toml,对Windows路径使用文字TOML引用(例如。, [projects.'\\?\\C:\\path\\to\\repo'], command = 'C:\\...\\python.exe').

Linux

# 1. Install ida-multi-mcp
pip install --user git+https://github.com/MeroZemory/ida-multi-mcp.git

# 2. Install IDA plugin + configure MCP clients
ida-multi-mcp --install

AI代理参考

AI代理应该遵循的规范安装指南是 docs/installation.md。它涵盖了平台特定的包安装、IDA Python版本匹配、通过插件设置 ida-multi-mcp --install,以及验证。

支持的MCP客户端

适用于任何兼容MCP的客户端。 ida-multi-mcp --install 自动配置所有检测到的客户端(Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Zed等20+)。

Full tested client list (19)

客户端类型
克劳德代码CLI
克劳德桌面桌面
光标IDE
VS代码(副本)IDE
风帆IDE
ZedIDE
增强代码IDE
临床扩展
基洛代码扩展名
基罗IDE
LM工作室桌面
Opencode命令行界面
Qodo Gen扩展
Roo代码扩展名
带来IDE
翘曲终端
Amazon Q开发者命令行界面命令行界面
Copilot命令行界面命令行界面
Gemini命令行界面命令行界面

手动MCP客户端配置

对于未自动检测到的客户端或查看原始配置JSON:

ida-multi-mcp --config

卸载

macOS

# 1. Remove IDA plugin + MCP client configurations
ida-multi-mcp --uninstall

# 2. Remove packages
pipx uninstall ida-multi-mcp
python3.11 -m pip uninstall -y ida-multi-mcp  # replace 3.11 with IDA's version

Windows

# 1. Remove IDA plugin + MCP client configurations
ida-multi-mcp --uninstall

# (optional) If IDA is installed in a custom location
ida-multi-mcp --uninstall --ida-dir "C:\Program Files\IDA Pro 9.0"

# 2. Remove the Python package
python -m pip uninstall -y ida-multi-mcp

卸载后,完全重新启动IDA Pro和MCP客户端,以便拾取删除的配置。

用法

打开多个二进制文件(GUI模式)

  1. 打开IDA Pro并加载您的第一个二进制文件(例如。, malware.exe)

- 插件自动加载(Plugin_FIX标志) - 实例自动注册为4节ID(例如。, k7m2)

  1. 用第二个二进制文件打开另一个IDA Pro实例(例如。, dropper.dll)

- 另一个实例自动注册(例如。, px3a)

  1. 对更多二进制文件重复此操作

无头分析(仅限IDA Pro)

需要IDA Pro许可证。 IDA主页/免费不包括 idalib.

没有GUI的开放二进制文件——每个会话都作为一个独立的子进程运行:

> Use idalib_open to analyze /path/to/malware.exe headlessly

LLM电话 idalib_open(input_path="/path/to/malware.exe"),它生成一个无头idalib进程,等待自动分析,并返回一个 instance_id从那时起,所有80多个IDA工具的工作方式都与GUI实例完全相同。

使用以下命令指定自定义Python idapro 已安装,请使用以下命令启动服务器:

ida-multi-mcp --idalib-python /path/to/python3.11

查看已注册实例

ida-multi-mcp --list

输出:

Registered IDA instances (3):

  k7m2
    Binary: malware.exe
    Path: C:/samples/malware.exe
    Arch: x86_64
    Port: 49152
    PID: 12345

  px3a
    Binary: dropper.dll
    Path: C:/samples/dropper.dll
    Arch: x86_64
    Port: 49153
    PID: 12346

  9bf1
    Binary: payload.exe
    Path: C:/samples/payload.exe
    Arch: x86
    Port: 49154
    PID: 12347

在LLM中使用

连接后,所有80多个IDA工具都可用。 所有IDA工具调用都需要instance_id 参数以避免跨代理争用。

分析单个实例:

Decompile the main function in malware.exe (k7m2)

交叉二元分析:

Decompile main in malware.exe (k7m2) and compare it with the entry point in dropper.dll (px3a)

管理工具

服务器提供内置管理工具:

list_instances()

列出所有已注册的实例及其元数据(二进制名称、路径、体系结构、端口、, 类型: guiidalib).

refresh_tools()

从IDA实例中重新发现工具。如果您更新IDA插件,请使用此选项。

get_ached_output(cache_id、偏移量、大小)

从之前被截断的工具调用中检索缓存输出。

decompile_to_file(…)

分解函数并将结果直接保存到磁盘上的文件中。需要 instance_id.

idalib_open(输入路径、超时、不安全) *(仅限IDA Pro)*

在新的headless idalib会话中打开二进制文件。生成子进程,等待自动分析,在共享注册表中注册。

idalib_close(实例id) *(仅限IDA Pro)*

终止无头idalib会话并将其从注册表中删除。

idalib_list() *(仅限IDA Pro)*

列出所有托管的无头idalib会话。

idalib_status(实例id) *(仅限IDA Pro)*

特定idalib会话的运行状况/准备状态检查。

实例ID说明

实例ID由4个字符组成,以36个字符串(0-9,a-z)为基础,如下所示 k7m2, px3a, 9bf1.

为什么是4个字符?

  • 简短易读
  • 168万种组合(典型使用时无碰撞)
  • 如果检测到碰撞,自动扩展到5个字符

它们是如何产生的?

  • 基于:进程ID、端口和IDB文件路径
  • 相同的二进制文件重新打开=相同的ID(确定性)
  • 二进制替换/更改=新ID(自动)

更改二进制文件时会发生什么? 在IDA实例中打开其他二进制文件时:

  1. 旧实例到期(例如。, k7m2 → 过期)
  2. 新实例寄存器(例如。, b12)
  3. 如果LLM尝试使用旧ID,则会收到替换ID的有用错误

CLI命令

ida-multi-mcp

启动MCP服务器(stdio)。由MCP客户端使用。这是默认命令。

ida-multi-mcp
ida-multi-mcp --idalib-python /path/to/python3  # custom Python for headless sessions

ida-multi-mcp --list

列出所有已注册的IDA实例。

ida-multi-mcp --list

ida-multi-mcp --install [--ida-dir DIR]

安装IDA插件并自动配置所有检测到的MCP客户端(Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Zed等20+)。

ida-multi-mcp --install
ida-multi-mcp --install --ida-dir "C:\Program Files\IDA Pro 9.0"  # Windows custom path

ida-multi-mcp --uninstall [--ida-dir DIR]

删除IDA插件,清理注册表,并删除MCP客户端配置。

ida-multi-mcp --uninstall

ida-multi-mcp --config

打印MCP客户端配置JSON以便于参考。

ida-multi-mcp --config

建筑

实例注册表

地点:

  • macOS/Linux: ~/.ida-mcp/instances.json
  • 窗户: %USERPROFILE%\.ida-mcp\instances.json

每个注册实例包括:

  • ID --4节实例标识符(k7m2、px3a等)
  • 进程ID --IDA Pro实例的进程ID
  • 主机 --始终127.0.0.1(本地主机)
  • 端口 --动态分配的HTTP端口
  • 二进制名称 --文件名(malware.exe、driver.dll等)
  • 二进制路径 --二进制文件的完整路径
  • 拱门 --架构(x86_64、x86、arm64等)
  • 注册地址 --实例注册时的时间戳
  • 最后的心跳 --上次心跳检查时间戳

IDA插件目录

  • macOS/Linux: ~/.idapro/plugins/
  • 窗户: %APPDATA%\Hex-Rays\IDA Pro\plugins\

请求路由

  1. MCP客户端调用工具(例如。, decompile)需要 instance_id 参数
  2. 服务器通过HTTP JSON-RPC路由到目标实例
  3. IDA实例处理请求
  4. 结果返回给客户端

健康监测

  • 每个IDA实例每60秒发送一次心跳
  • 停滞实例(2分钟以上没有心跳)会自动清理
  • 服务器启动时,死进程将从注册表中删除
  • 如果实例崩溃,后续请求将收到一条有用的错误消息

二进制变化检测

使用双策略检测:

初级(快速) --二进制文件更改时,IDA事件挂钩立即触发 回退(安全) --每次工具调用都会验证二进制文件没有更改,处理钩子故障

当检测到二进制变化时:

  • 旧实例ID标记为已过期
  • 新实例使用新ID注册
  • LLM收到带有替换ID的有用消息

故障排除

"No IDA instances registered"

确保:

  1. IDA Pro正在加载二进制文件的情况下运行
  2. 检查IDA的插件列表(编辑→ 插件→ 扫描)以确认 ida-multi-mcp 插件已加载
  3. 检查IDA控制台是否有错误消息
  4. ida-multi-mcp --list 再次

"Instance 'k7m2' not found"

实例已崩溃或过期。运行:

ida-multi-mcp --list

要查看可用实例,请使用有效的ID。

"Instance 'k7m2' expired. Replaced by 'px3a'"

您在该IDA实例中打开了另一个二进制文件。这是意料之中的。使用新的实例ID(px3a).

Plugin doesn't load in IDA / "No module named 'ida_multi_mcp'"

这通常意味着IDA的Python无法找到该包,原因是 Python版本不匹配.

  1. 检查IDA的Python版本——在IDA控制台中,运行:
   import sys; print(sys.version)
  1. 安装特定Python版本的包:

macOS:

   # Replace 3.11 with IDA's actual Python version
   python3.11 -m pip install --user git+https://github.com/MeroZemory/ida-multi-mcp.git

窗户:

   # Replace 3.12 with IDA's actual Python version
   py -3.12 -m pip install git+https://github.com/MeroZemory/ida-multi-mcp.git
  1. 确保IDA插件目录包含 ida_multi_mcp.py:

- macOS/Linux: ~/.idapro/plugins/ - 窗户: %APPDATA%\Hex-Rays\IDA Pro\plugins\

  1. 重新启动IDA Pro

MCP server fails to connect (macOS)

如果您的MCP客户端显示 Status: failed 对于ida multi-mcp,注册的命令可能指向错误的Python版本。

  1. 检查配置了什么命令(例如,在 .claude.json, .cursor/mcp.json)
  1. 如果它显示 python3 -m ida_multi_mcp,将其替换为pipx管理的CLI:

克劳德代码:

   claude mcp remove ida-multi-mcp -s user
   claude mcp add ida-multi-mcp -s user -- ida-multi-mcp

其他客户: 编辑MCP配置JSON并更改:

   {
     "command": "ida-multi-mcp",
     "args": []
   }
  1. 重新启动MCP客户端

Codex fails to start on Windows with TOML parse error

如果Codex打印出以下错误 invalid unquoted key 为了 %USERPROFILE%\.codex\config.toml,该配置包含无效的TOML语法的Windows路径。

在Windows路径中使用文字引号键/字符串:

[projects.'\\?\C:\Git\MeroZemory\tidy-up']
trust_level = "trusted"

[mcp_servers.ida-multi-mcp]
command = 'C:\Users\MeroZemory\AppData\Local\Programs\Python\Python311\python.exe'
args = ["-m", "ida_multi_mcp"]

不要使用未报价的 \\?\... 项目表键,除非转义反斜杠,否则不要使用双引号Windows路径。

设计决策

决定理由
端口0(自动分配)消除端口冲突,扩展到无限实例
4节36个ID简短、可读、1.68M组合,易于记忆
基于文件的注册表简单、跨进程、可调试、无数据库依赖性
动态工具发现面向未来,自动更新,无硬编码工具列表
双二进制变化检测IDA挂钩失败时的稳健回退
每个二进制的子进程(idalib)真正的并行性、崩溃隔离、无进程内数据库切换
compat.py垫片IDA 8.3–9.3 API差异的单一来源

演出

以大型游戏客户端(736K函数,x86-64,IDA 9.3)为基准:

度量
工具总延迟(28个工具)32.0秒
总响应有效负载373 KB
预计代币成本~93K代币
类别延迟令牌
分类(survey_binary)17.0秒~77K
查询(func_query, imports_query)7.5秒~2.4K
导航(list_funcs, find_*, xrefs_*)5.5秒~8.5K
分析(decompile, analyze_function)41毫秒~3.7K
修改(set_comments, append_comments)4毫秒~125

基础设施开销:

  • 注册表操作:\

目录标签

目录标签

逆向工程PythonClaude本地部署多实例分析IDAPro插件二进制分析MCP协议

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP