
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 分