IDA-instances-MCP
MCP-сервер для IDA Pro с несколькими headless-сессиями idalib: агент открывает бинарники, держит базы изолированно и работает по ключу доступа
- 126 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Плагин в IDA умеет выполнять произвольный код через py_eval, а ключ работает как bearer-токен: кто его получил, тот управляет экземпляром
- Сервер по умолчанию слушает 0.0.0.0, принимает загрузку файлов командой POST /upload и пишет их на диск
- Флаг --unsafe включает разрушающие инструменты и отладчик, образцы вредоносного кода запускать только в изолированной среде
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/ida-instances-mcpОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Плагин в IDA умеет выполнять произвольный код через py_eval, а ключ работает как bearer-токен: кто его получил, тот управляет экземпляром
- Сервер по умолчанию слушает 0.0.0.0, принимает загрузку файлов командой POST /upload и пишет их на диск
- Флаг --unsafe включает разрушающие инструменты и отладчик, образцы вредоносного кода запускать только в изолированной среде
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
IDA-instances-MCP — доработанная сборка ida-pro-mcp, MCP-сервера, через который агент управляет IDA Pro. Автор переделал ее для размещения на сервере: команда uv run idalib-mcp запускает супервизор, который слушает адрес 0.0.0.0:9999/mcp и открывает каждую базу в отдельном рабочем процессе idalib. Сессиями управляют инструменты idb_open, idb_list и idb_close, число параллельных баз задает флаг --max-workers (по умолчанию 4). Каждый HTTP-запрос требует ключ. Сервер генерирует его при старте и один раз отдает по GET /key, дальше ключ лежит в ~/.idapro/mcp/api_key. Для проверки готовности есть /health, для списка открытых баз /sessions, для загрузки образца напрямую на сервер /upload. Бездействующие сессии закрываются через час (после сохранения), при SIGTERM сервер сохраняет все базы. Для интерактивной работы в самой IDA остается плагин и stdio-прокси uv run ida-pro-mcp. В репозитории лежат профили инструментов readonly.txt и triage.txt, которые сужают набор доступных вызовов, и скилл skills/idapython/SKILL.md.
Для кого. Для реверс-инженеров и аналитиков вредоносного кода с лицензией IDA Pro, которые хотят дать Claude Code, Cursor или Codex разбирать бинарники на отдельном сервере.
Подходит, если
- Несколько бинарников нужно разбирать параллельно, каждый в своей изолированной сессии idalib
- IDA с лицензией стоит на сервере или в контейнере, а агент работает на другой машине
- Образцы нужно заливать на сервер по HTTP командой POST /upload и открывать через idb_open
- Агенту надо оставить только чтение: профиль readonly.txt убирает инструменты записи
- Долгая декомпиляция не должна обрываться по таймауту клиента: прокси ждет до 900 секунд
Не подходит, если
- У вас нет лицензии IDA Pro: IDA Free не поддерживается
- Вам нужен открытый дизассемблер: для Ghidra в каталоге есть отдельные MCP-серверы
- Сервер будет доступен из интернета без TLS-прокси: ключ работает как bearer-токен, кто его получил, тот владеет экземпляром
- Нужна официальная версия без доработок: эта сборка отстает от автора ida-pro-mcp на свои правки
Пример запроса к агенту
Залей sample.elf на сервер IDA, открой базу и найди функцию, которая сравнивает введенный пароль с эталономMCP
- Транспорт
- http, stdio
- Авторизация
- ключ необязателен
Переменные окружения
IDADIRобязательная- Каталог установки IDA Pro, нужен для headless-запуска
IDA_MCP_API_KEYсекрет- Свой ключ доступа вместо сгенерированного
IDA_MCP_IDLE_TIMEOUT- Минуты до закрытия простаивающей сессии, по умолчанию 60
Ограничения
Нужны IDA Pro 8.3 или новее (рекомендуется 9.x), Python 3.11 или новее и uv. Перед запуском выполните py-activate-idalib.py из каталога IDA и задайте IDADIR.
- Супервизор по умолчанию слушает 0.0.0.0, а плагин в IDA тоже привязан к 0.0.0.0 и требует тот же ключ, потому что умеет выполнять произвольный код через py_eval. Для доступа за пределами доверенной сети автор советует TLS-прокси.
- Флаг --unsafe включает разрушающие инструменты и отладчик.
- При старте сервер проверяет релизы на GitHub и предлагает самообновление, отключается переменной IDA_MCP_NO_UPDATE_CHECK=1.
Как отключить. Остановите процесс idalib-mcp (по SIGTERM он сохранит базы) и удалите запись ida-instances из настроек MCP клиента командой claude mcp remove ida-instances. Ключ хранится в ~/.idapro/mcp/api_key, загрузки в ~/.idapro/mcp/uploads.
Частые вопросы
Чем IDA-instances-MCP отличается от обычного ida-pro-mcp?
Это его форк с правками под размещение на сервере: ключ доступа на каждый запрос, эндпоинты /health, /sessions и /upload, закрытие простаивающих сессий, сохранение баз при остановке и прокси-таймаут 900 секунд вместо 30.
Как получить ключ доступа к серверу?
Сервер создает ключ при первом запуске и один раз отдает его по GET /key. После этого адрес перестает его выдавать до перезапуска. Ключ сохраняется в ~/.idapro/mcp/api_key, а переменная IDA_MCP_API_KEY задает свой.
Как подключить сервер к Claude Code?
Командой claude mcp add --transport http ida-instances http://your-host:9999/mcp --header 'Authorization: Bearer ключ'. Для Cursor и других клиентов подойдет JSON с полями url и headers.
Работает ли сервер с бесплатной IDA?
Нет. Нужна IDA Pro 8.3 или новее, IDA Free автор не поддерживает.
Как ограничить агента режимом чтения?
Запустите супервизор с флагом --profile и файлом profiles/readonly.txt из репозитория: набор инструментов сузится до чтения. Профиль triage.txt задает набор для первичного разбора.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер для IDA Pro с одной точкой входа на несколько открытых баз: декомпиляция, перекрестные ссылки и поиск похожих функций между бинарниками
MCP-сервер, который связывает IDA Pro с агентом: чтение декомпиляции, переименование и типизация, комментарии и запуск IDAPython прямо в базе
Headless MCP-сервер для IDA Pro на Rust: агент открывает базу, перечисляет функции, дизассемблирует, декомпилирует и строит перекрестные ссылки
Официальный MCP-сервер Hex-Rays: агент открывает базы IDA, выполняет в них Python и разбирает бинарники. Плагины есть для Claude Code и Codex
Расширение Ghidra с MCP-сервером: агент читает псевдокод и дизассемблер, строит графы вызовов и правит имена, типы и структуры через 100 инструментов
MCP-сервер к дизассемблеру Ghidra: сотни инструментов для обратной разработки, декомпиляция, переименование, работа со структурами, эмуляция и отладка
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| IDA-instances-MCP (эта запись) | нет | ключ необязателен | 126 | |
| GhidrAssistMCP | нет | не нужна | 780 | расширение для бесплатной Ghidra, а не для IDA Pro |
| ReVa | нет | API-ключ | 879 | MCP-сервер для Ghidra с мелкими инструментами декомпиляции |
Коротко о README
Страница описывает, чем сборка отличается от ida-pro-mcp 2.0.0: таблица из двенадцати правок (безопасность данных, сохранение, блокировки, таймауты, ключ, эндпоинты, самообновление) и список требований. Дальше идут запуск супервизора и прокси, пример выдачи ключа и загрузки образца через curl, подключение клиентов и таблица переменных окружения IDA_MCP_*. Раздел о безопасности предупреждает, что ключ работает как bearer-токен. Лицензия MIT унаследована от оригинала.