IDA-instances-MCP

MCP-сервер для IDA Pro с несколькими headless-сессиями idalib: агент открывает бинарники, держит базы изолированно и работает по ключу доступа

  • 126 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Широкий доступ

Почему такой уровень

  • Плагин в IDA умеет выполнять произвольный код через py_eval, а ключ работает как bearer-токен: кто его получил, тот управляет экземпляром
  • Сервер по умолчанию слушает 0.0.0.0, принимает загрузку файлов командой POST /upload и пишет их на диск
  • Флаг --unsafe включает разрушающие инструменты и отладчик, образцы вредоносного кода запускать только в изолированной среде
Все причины и проверки

claude-reverser/ida-instances-mcp

Установка

В терминале, через 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-серверШирокий доступ463Звезды репозитория

MCP-сервер, который связывает IDA Pro с агентом: чтение декомпиляции, переименование и типизация, комментарии и запуск IDAPython прямо в базе

MCP-серверШирокий доступ13,1 тыс.Звезды репозитория

Headless MCP-сервер для IDA Pro на Rust: агент открывает базу, перечисляет функции, дизассемблирует, декомпилирует и строит перекрестные ссылки

MCP-серверШирокий доступ874Звезды репозитория
Официальный

Официальный MCP-сервер Hex-Rays: агент открывает базы IDA, выполняет в них Python и разбирает бинарники. Плагины есть для Claude Code и Codex

ПлагинШирокий доступ1,4 тыс.Звезды репозитория

Расширение Ghidra с MCP-сервером: агент читает псевдокод и дизассемблер, строит графы вызовов и правит имена, типы и структуры через 100 инструментов

MCP-серверШирокий доступ780Звезды репозитория

MCP-сервер к дизассемблеру Ghidra: сотни инструментов для обратной разработки, декомпиляция, переименование, работа со структурами, эмуляция и отладка

MCP-серверШирокий доступ5,9 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
IDA-instances-MCP (эта запись)нетключ необязателен126
GhidrAssistMCPнетне нужна780расширение для бесплатной Ghidra, а не для IDA Pro
ReVaнетAPI-ключ879MCP-сервер для Ghidra с мелкими инструментами декомпиляции

Коротко о README

Страница описывает, чем сборка отличается от ida-pro-mcp 2.0.0: таблица из двенадцати правок (безопасность данных, сохранение, блокировки, таймауты, ключ, эндпоинты, самообновление) и список требований. Дальше идут запуск супервизора и прокси, пример выдачи ключа и загрузки образца через curl, подключение клиентов и таблица переменных окружения IDA_MCP_*. Раздел о безопасности предупреждает, что ключ работает как bearer-токен. Лицензия MIT унаследована от оригинала.

Бейдж для README

Сообщить о проблеме

Foxx AIIDA-instances-MCP
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.