IDAssistMCP
Автономный MCP-сервер (Model Context Protocol) в виде плагина для IDA Pro 9.x, который предоставляет возможности анализа IDA клиентам LLM, таким как Claude Desktop.

Возможности
- 41 MCP-инструмент, охватывающий бинарный анализ, декомпиляцию, перекрёстные ссылки, управление символами, систему типов, навигацию, патчинг, экспорт и многое другое
- 6 объединённых инструментов с параметрами
action/format/direction для комментариев, переменных, типов, перекрёстных ссылок, закладок и кода
- 8 MCP-ресурсов для просмотра бинарных метаданных (общая информация, функции, импорты, экспорты, строки, сведения, сегменты, секции)
- 7 направляющих подсказок для типовых задач реверс-инжиниринга (анализ функций, поиск уязвимостей, документирование, трассировка потоков данных, сравнение функций, восстановление структур, анализ сетевых протоколов)
- Транспорты SSE и Streamable HTTP через ASGI-сервер Hypercorn
- Потокобезопасные изменения IDB через обёртку
execute_on_main_thread()
- LRU-кэш анализа для дорогих операций, таких как декомпиляция
- Менеджер асинхронных задач для длительных операций
- Конфигурация Pydantic с поддержкой переменных окружения (префикс
IDASSISTMCP_)
Установка
Требования
- IDA Pro 9.x с Python 3.10+
- Декомпилятор Hex-Rays (опционально, для инструментов декомпиляции)
Вариант 1: Менеджер плагинов IDA (рекомендуется)
hcli plugin install idassistmcp
Это автоматически устанавливает плагин и его Python-зависимости.
Вариант 2: Установка вручную (из архива релиза)
Скачайте последний zip-архив релиза на GitHub Releases и распакуйте его в каталог плагинов IDA:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Распакуйте zip в %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Затем установите зависимости, используя встроенный Python IDA (не системный Python):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
Замените <IDA_INSTALL_DIR> на путь к вашей установке IDA Pro.
Совет: Вы также можете использовать переменную окружения IDAUSR, чтобы указать собственный каталог плагинов.
Использование
Запуск сервера
- Откройте бинарный файл в IDA Pro
- Нажмите Ctrl+Shift+M или перейдите в Edit > Plugins > IDAssistMCP
- URL MCP-сервера будет выведен в окно вывода IDA
- Снова нажмите Ctrl+Shift+M, чтобы остановить сервер
Конфигурация для Claude Desktop
Добавьте в файл claude_desktop_config.json:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Переменные окружения
Настройка через переменные окружения с префиксом IDASSISTMCP_:
Справочник инструментов
Управление бинарными файлами (2)
| Инструмент | Описание |
|---|
list_binaries | Показать текущий загруженный бинарный файл |
get_binary_info | Подробные метаданные бинарного файла (архитектура, хеши, сегменты) |
Анализ кода (4)
Перекрёстные ссылки (1 объединённый)
| Инструмент | Действия | Описание |
|---|
xrefs | direction: to/from/both, include_calls: bool | Перекрёстные ссылки и опционально вызывающие/вызываемые для адреса |
Комментарии (1 объединённый)
| Инструмент | Действия | Описание |
|---|
comments | action: get, set, list, remove | Управление комментариями (обычные, повторяемые, функции) |
Переменные (1 объединённый)
| Инструмент | Действия | Описание |
|---|
variables | action: list, rename | Показать локальные переменные или переименовать локальные/глобальные с scope: auto, local, global |
Типы (2 — 1 объединённый + 1 отдельный)
| Инструмент | Действия / Описание |
|---|
types | action: list, set, create_struct, create_enum — управление типами IDB |
get_classes | Показать типы структур/классов из библиотеки типов |
Поиск функций (5)
Управление символами (2)
| Инструмент | Описание |
|---|
rename_symbol | Переименовать любой символ (функцию или данные) |
batch_rename | Пакетное переименование нескольких символов |
Информация о бинарном файле (5)
Анализ данных (6)
Патчинг (3)
| Инструмент | Описание |
|---|
patch_bytes | Патчить сырые байты в IDB |
assemble_code | Ассемблировать инструкцию по адресу и опционально применить патч |
export_program | Экспортировать пропатченный бинарный файл или базу IDA на диск |
Навигация (4)
Управление задачами (4)
| Инструмент | Описание |
|---|
start_task | Запустить асинхронную фоновую задачу |
get_task_status | Проверить прогресс задачи |
Структура проекта
IDAssistMCP/
├── idassistmcp_plugin.py # Точка входа плагина IDA
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # Сервер FastMCP + транспорт
├── context.py # Контекст одного бинарного файла IDA
├── tools.py # 41 MCP-инструмент (IDA API)
├── resources.py # 8 MCP-ресурсов
├── prompts.py # 7 подсказок для направленных рабочих процессов
├── config.py # Настройки Pydantic
├── cache.py # LRU-кэш анализа
├── tasks.py # Менеджер асинхронных задач
├── logging.py # Обёртка для логирования IDA
├── utils.py # Утилиты для IDA
└── ui/
└── tool_registry.py # Каталог инструментов для UI
Лицензия
Подробности см. в файле LICENSE.