
IDA Pro MCP Fusion
io.github.rison1337由 GitHub 账号 rison1337 发布v2.0.0更新于 Oct 24, 2026
IDA Pro MCP fusion with cache queries and multi-binary headless analysis.
概览
将 MCP 编码助手连接到本地已授权的 IDA Pro,用于反编译、交叉引用与类型分析、补丁修改以及带缓存的多二进制逆向分析。
- 可以做什么
- 通过单一 stdio 端点提供约 75 个面向 IDA 的工具:会话控制(idb_open、idb_batch_open、idb_list、idb_close、idb_save)、概览与反编译(survey_binary、decompile、disasm、analyze_function)、搜索与关系(find、find_bytes、search_text、xrefs_to、callees、callgraph、trace_data_flow)、类型与栈、数据库编辑(rename、set_comments、patch_asm、make_data)、签名,以及可选的调试器扩展。supervisor 可在隔离的无头 worker 中同时打开多个二进制,IDB 旁的 SQLite 缓存为函数、字符串、全局变量、导入、交叉引用和调用图边提供索引查询。
- 适用场景
- 适合让助手直接在 IDA Pro 中处理二进制:样本初筛、反编译与交叉引用追踪、在同一会话中对比多个二进制,或复用已缓存的分析结果而不必反复调用 IDA 的单线程 API。适用于逆向工程与恶意软件分析流程,而非一般编码任务。
- 运行要求
- 需要本地已授权的 IDA Pro 8.3 或更高版本(推荐 9.x),不支持 IDA Free。需要 Python 3.11+、uv/uvx,以及能启动本地 stdio 服务器的 MCP 客户端。需先用 py-activate-idalib.py 激活 IDA 的无头 Python 环境。仅限桌面运行;未声明认证、环境变量或请求头。
安装
在 SourceWeft 中
- 打开 控制台中的 IDA Pro MCP Fusion,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
[English — selected] [Открыть русскую версию]
[Latest release] [Tests] [Python 3.11 or newer] [IDA Pro 8.3 or newer] [MCP over stdio or HTTP] [MIT license]
One MCP endpoint. Many binaries. Persistent analysis context.
Quick start · Why Fusion · Architecture · Tools · Configuration · Development
What is Fusion?
IDA Pro MCP Fusion connects MCP-compatible coding agents to IDA Pro and turns a single connection into a practical reverse-engineering workspace. It combines live IDA analysis with a persistent SQLite index and a supervisor that can keep several binaries open in isolated headless workers.
Use it to decompile and disassemble functions, trace cross-references, query types, rename symbols, patch data, create signatures, inspect multiple samples, and reuse cached analysis without repeatedly walking IDA's single-threaded APIs.
[!IMPORTANT] This project requires a local, licensed installation of IDA Pro. IDA Free is not supported. The server does not provide IDA, Hex-Rays, or a hosted analysis service.
Why Fusion
The cache lives beside the IDB as <database>.mcp.sqlite. Freshness is checked against the IDB modification time and cache schema, so stale rows are not silently reused.
Quick start
1. Prerequisites
- IDA Pro 8.3 or newer; IDA 9.x is recommended
- Python 3.11 or newer
uv/uvx- Any MCP client that can launch a local stdio server
Install uv if it is not available:
Activate IDA's headless Python environment once:
2. Add the MCP server
The recommended setup runs the latest code directly from this repository:
Claude Code:
Or download the packaged MCP bundle from the latest release.
3. Open a database
Ask the connected agent to start with:
Every analysis call then names its database explicitly:
Architecture
- Your MCP client starts
idalib-mcpover stdio or HTTP. - The supervisor creates or adopts one worker per binary and enforces the worker limit.
- Tool calls include a
databasesession ID, so requests are routed to the correct IDB. - IDA performs live decompilation and mutation work; cache tools serve indexed queries from the sidecar SQLite database.
- Workers remain discoverable on the host and clean themselves up after their idle TTL.
GUI databases can participate too. idb_open supports four routing modes:
Multi-binary workflow
Open a small collection and keep every session available:
For a large corpus, build each cache and release its worker immediately:
Useful session controls:
Tool surface
The codebase registers 75 IDA-facing analysis tools, plus the supervisor's multi-session controls. The exact number visible to a client intentionally varies: debugger tools are an extension, dangerous operations are disabled unless explicitly enabled, and a profile can expose a smaller allowlist.
The nine cache-specific tools are:
Configuration
Worker pool
Restricted profiles
Expose only a curated set of tools:
Two ready-to-use profiles are included:
profiles/readonly.txt— inspection without mutation toolsprofiles/triage.txt— compact first-pass analysis surface
Management tools remain available so sessions can still be opened and inspected.
HTTP transport
IDA GUI bridge:
To install the GUI plugin and generate client configuration interactively:
Restart IDA and the MCP client after installation.
Safety notes
- The server binds to loopback by default. Do not expose it to an untrusted network.
- Mutating and arbitrary-Python tools are marked unsafe and are not enabled by default.
py_eval,py_exec_file, debugger controls, and patching operations can execute code or permanently change an IDB. Enable them only for trusted clients and inputs.- Analyze untrusted binaries inside the same isolation boundary you would use for manual malware analysis.
Enable unsafe worker tools only when the workflow requires them:
Troubleshooting
uvx is not recognized
Install uv with python -m pip install uv, open a new terminal, and confirm with uvx --version.
Python / IDA version mismatch
Run Hex-Rays idapyswitch, select a Python 3.11+ installation, then activate idalib again with py-activate-idalib.py.
A database call says that database is required
Call idb_list() and pass the returned session_id as database=. Paths and filenames are not accepted in place of a session ID.
The worker limit has been reached
Close an unused session with idb_close, raise --max-workers, or use close_after_cache=True for corpus indexing.
Development
Clone the repository and run the platform-independent test suite:
Run the IDA-backed suite in an activated IDA environment:
New IDA tools live in src/ida_pro_mcp/ida_mcp/api_*.py and register through the @tool decorator. Supervisor and worker lifecycle tests live under tests/.
Project identity and credits
Fusion Edition is maintained by rison1337.
The project builds on the MIT-licensed mrexodia/ida-pro-mcp codebase. Its persistent cache and headless orchestration also incorporate ideas developed in QiuChenly/ida-pro-mcp-enhancement and winmin/ida-headless-mcp. Attribution is retained here and in the source history; Fusion's packaging, cache tooling, batch workflow, session lifecycle, and public identity are maintained in this repository.
License
Distributed under the MIT License. IDA Pro and Hex-Rays are trademarks of Hex-Rays SA and are not included with this project.
Русский
[Open English version] [Русский — выбран]
Одна MCP-точка. Много бинарников. Контекст анализа сохраняется.
Быстрый старт · Почему Fusion · Архитектура · Инструменты · Настройка
Что такое Fusion?
IDA Pro MCP Fusion подключает MCP-совместимых агентов к IDA Pro и превращает одно соединение в полноценное рабочее место для реверсинга. Живой анализ IDA объединён с постоянным SQLite-индексом и supervisor-процессом, который может держать несколько бинарников в изолированных headless-воркерах.
Можно декомпилировать и дизассемблировать функции, исследовать перекрёстные ссылки, типы и граф вызовов, переименовывать символы, патчить данные, создавать сигнатуры и повторно использовать уже построенный анализ.
[!IMPORTANT] Нужна локальная лицензированная установка IDA Pro. IDA Free не поддерживается. Сервер не содержит IDA, Hex-Rays и не отправляет бинарники во внешний сервис.
Почему Fusion
Кэш лежит рядом с IDB в файле <database>.mcp.sqlite. Актуальность проверяется по времени изменения IDB и версии схемы, поэтому устаревшие данные не выдаются незаметно.
Быстрый старт
1. Что понадобится
- IDA Pro 8.3 или новее; рекомендуется IDA 9.x
- Python 3.11 или новее
uv/uvx- MCP-клиент, который умеет запускать локальный stdio-сервер
Установите uv, если его ещё нет:
Один раз активируйте headless Python от IDA:
2. Добавьте MCP-сервер
Рекомендуемая конфигурация запускает код напрямую из этого репозитория:
Для Claude Code:
Готовый MCPB-пакет доступен в последнем релизе.
3. Откройте базу
Попросите подключённого агента начать так:
Каждый следующий вызов анализа получает явный ID базы:
Архитектура
- MCP-клиент запускает
idalib-mcpчерез stdio или HTTP. - Supervisor создаёт или принимает по одному worker-процессу на каждый бинарник.
- Каждый вызов содержит
database, поэтому запрос попадает в нужную IDB-сессию. - IDA выполняет живой анализ и изменения, а cache-инструменты читают индекс из SQLite.
- Воркеры остаются обнаруживаемыми на компьютере и завершаются после периода простоя.
idb_open поддерживает четыре режима:
Работа с несколькими бинарниками
Открыть несколько образцов и оставить все сессии доступными:
Для большого корпуса можно построить кэш и сразу освободить worker:
Управление сессиями:
Инструменты
В кодовой базе зарегистрировано 75 инструментов анализа IDA, а supervisor добавляет управление мульти-бинарными сессиями. Видимый клиенту список намеренно меняется: debugger-инструменты являются расширением, опасные операции отключены без явного разрешения, а профиль может оставить только выбранные имена.
Настройка
Пул воркеров
Ограниченные профили
Оставить только выбранные инструменты:
profiles/readonly.txt— просмотр без инструментов измененияprofiles/triage.txt— компактный набор для первичного анализа
HTTP
GUI-мост:
Для установки GUI-плагина:
После установки перезапустите IDA и MCP-клиент.
Безопасность
- По умолчанию сервер слушает только loopback. Не открывайте его в недоверенную сеть.
- Изменяющие и произвольные Python-инструменты помечены как unsafe и выключены по умолчанию.
py_eval,py_exec_file, debugger-команды и патчинг могут выполнять код или менять IDB.- Непроверенные бинарники анализируйте в той же изоляции, что и при ручном malware analysis.
Включить unsafe-инструменты можно явно:
Решение проблем
uvx не найден
Установите uv командой python -m pip install uv, откройте новый терминал и проверьте uvx --version.
Несовместимая версия Python или IDA
Запустите idapyswitch, выберите Python 3.11+, затем снова выполните py-activate-idalib.py.
Ошибка о том, что нужен database
Вызовите idb_list() и передайте возвращённый session_id как database=. Пути и имена файлов вместо ID сессии не принимаются.
Достигнут лимит воркеров
Закройте неиспользуемую сессию через idb_close, увеличьте --max-workers или используйте close_after_cache=True.
Разработка
Для тестов, которым нужна сама IDA:
Новые инструменты находятся в src/ida_pro_mcp/ida_mcp/api_*.py и регистрируются через @tool. Тесты supervisor и lifecycle — в tests/.
Проект и авторство
Fusion Edition поддерживается rison1337.
Проект основан на MIT-кодовой базе mrexodia/ida-pro-mcp. Постоянный кэш и headless-оркестрация также используют идеи из QiuChenly/ida-pro-mcp-enhancement и winmin/ida-headless-mcp. Атрибуция сохранена в README и истории исходников; упаковка Fusion, cache-инструменты, batch workflow и lifecycle сессий поддерживаются в этом репозитории.
Лицензия
Проект распространяется по MIT License. IDA Pro и Hex-Rays — товарные знаки Hex-Rays SA и не входят в состав проекта.
来源:README.md,提交 3bd6c5c
工具
0版本历史
1- v2.0.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分