Skip to main content
Glama
31Benzi

IDA Pro MCP Server

by 31Benzi

IDA Pro MCP Сервер для Claude Code

Объединяет Claude Code (CLI и расширения редакторов, такие как VS Code, Cursor, Windsurf) с IDA Pro 9.0+ для AI-ассистированной обратной разработки. 87 инструментов, охватывающих практически все возможности IDA Pro.


Архитектура

Claude Code / Cursor / VS Code (MCP Client)
               │ (stdio)
               ▼
        ida-mcp Server
               │ (JSON-RPC over localhost:13337)
               ▼
   IDA Pro Plugin (ida_mcp_plugin.py)
               │ (IDAPython API on main thread)
               ▼
         IDA Pro 9.0+

Установка и настройка

1. Установка плагина IDA

Скопируйте ida_plugin/ida_mcp_plugin.py в каталог plugins вашей IDA Pro:

  • macOS: ~/idapro-9.0/plugins/ или /Applications/IDA Professional 9.0.app/Contents/MacOS/plugins/

  • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\ или C:\Program Files\IDA Professional 9.0\plugins\

  • Linux: ~/.idapro/plugins/ или /opt/idapro-9.0/plugins/

При открытии любого бинарного файла в IDA Pro плагин запускает JSON-RPC сервер на 127.0.0.1:13337.

2. Настройка Claude Code CLI

claude mcp add ida-pro -- uv run --directory "/Users/benzi/Documents/IDA MCP" ida-mcp

3. Настройка VS Code / Cursor / Windsurf

Добавьте в .mcp.json или конфигурацию MCP вашего редактора:

{
  "mcpServers": {
    "ida-pro": {
      "command": "uv",
      "args": ["run", "--directory", "/Users/benzi/Documents/IDA MCP", "ida-mcp"]
    }
  }
}

Переменные окружения

  • IDA_MCP_HOST — Переопределить хост (по умолчанию: 127.0.0.1)

  • IDA_MCP_PORT — Переопределить порт (по умолчанию: 13337)


Доступные инструменты (всего 87)

Анализ (4)

Инструмент

Описание

decompile_function

Декомпиляция C-псевдокода Hex-Rays

disassemble_function

Полный листинг ассемблера для функции

disassemble_range

Ассемблер между двумя адресами

get_bytes

Чтение сырых шестнадцатеричных байт по адресу

Навигация и поиск (14)

Инструмент

Описание

list_functions

Список всех функций с опциональным фильтром

get_function_info

Детальная метаинформация о функции

list_segments

Сегменты памяти с правами доступа

get_xrefs_to

Перекрестные ссылки НА адрес

get_xrefs_from

Перекрестные ссылки С адреса

list_strings

Определенные строки с опциональным фильтром

get_imports

Импортированные функции по модулям

get_exports

Экспортированные функции и точки входа

list_structs

Структуры, объединения, макеты членов

list_enums

Перечисления и значения

create_struct

Создать новый тип структуры

get_function_callers

Функции, вызывающие цель (с местами вызовов)

get_function_callees

Функции, вызываемые целью

make_string

Определить C-строку по адресу

Интроспекция (14)

Инструмент

Описание

get_flowchart

Граф потока управления — базовые блоки с предшественниками/преемниками

get_comment

Чтение комментария по адресу

get_all_comments

Чтение всех комментариев в функции

get_function_comment

Чтение комментария на уровне функции

set_function_comment

Установка комментария на уровне функции

get_stack_frame

Полный макет стекового кадра (локальные, аргументы, сохраненные регистры)

set_operand_type

Изменить отображение операнда (шестнадцатеричный/десятичный/двоичный/символ)

set_local_variable_type

Переопределить тип локальной переменной в декомпиляции

get_color

Получить цвет инструкции/функции/сегмента

set_color

Установить цвет инструкции/функции/сегмента (RGB)

get_function_hash

Хеш байт функции (MD5/SHA1/SHA256)

get_exception_info

Обнаружить try/catch/throw в функции

get_microcode

Промежуточное представление Hex-Rays на любом уровне зрелости

Модификации (7)

Инструмент

Описание

rename_function

Переименовать функцию

rename_address

Переименовать метку, переменную или адрес

set_comment

Установить обычный или повторяемый комментарий

set_function_type

Установить сигнатуру/прототип C-функции

set_type

Установить тип по адресу

rename_local_variable

Переименовать локальную переменную (Hex-Rays)

apply_callee_type

Применить тип в месте вызова

Поиск (2)

Инструмент

Описание

search_text

Текстовый поиск по дизассемблеру

search_bytes

Поиск по шаблону байт/сигнатуре

Отладчик (17)

Инструмент

Описание

start_debugger

Запустить отладку бинарного файла

get_debugger_status

Проверить состояние отладчика (активен/приостановлен)

set_breakpoint

Установить программную точку останова

delete_breakpoint

Удалить точку останова

list_breakpoints

Список всех точек останова

enable_breakpoint

Включить/отключить точку останова

step_into

Шаг с заходом в следующую инструкцию

step_over

Шаг с обходом следующей инструкции

continue_execution

Продолжить до следующей точки останова

suspend_debugger

Приостановить выполнение

exit_debugger

Завершить процесс

get_registers

Чтение регистров ЦП

read_debug_memory

Чтение памяти из отлаживаемого процесса (hex dump с ASCII)

get_stack_trace

Трассировка стека вызовов

list_debugger_threads

Список всех потоков процесса

switch_thread

Переключить активный поток отладчика

add_watchpoint

Установить аппаратную точку наблюдения (чтение/запись/выполнение)

Расширенные (14)

Инструмент

Описание

patch_bytes

Пропатчить байты в базе данных IDA

execute_idapython

Выполнить произвольный код IDAPython

load_type_library

Загрузить библиотеку типов .til

list_type_libraries

Список загруженных TIL

make_code

Преобразовать байты в код (инструкцию)

make_data

Преобразовать байты в типизированные данные

undefine

Вернуть к сырым неопределенным байтам

define_function

Создать функцию в диапазоне адресов

undefine_function

Удалить определение функции

add_bookmark

Добавить постоянную закладку

list_bookmarks

Список всех закладок

delete_bookmark

Удалить закладку

get_local_variables

Список локальных переменных и аргументов

get_global_variables

Список именованных глобальных переменных данных

База данных и экспорт (12)

Инструмент

Описание

save_database

Сохранить базу данных IDA

apply_flirt_signature

Применить FLIRT .sig для идентификации библиотек

list_flirt_signatures

Список примененных сигнатур FLIRT

create_segment

Создать новый сегмент памяти

delete_segment

Удалить определение сегмента

set_segment_permissions

Изменить права rwx сегмента

create_array

Определить типизированные массивы

navigate_to

Переместить курсор IDA по адресу

produce_asm

Экспортировать чистый листинг ассемблера

produce_c

Экспортировать чистый C-псевдокод

run_idc_script

Выполнить скрипт IDC

run_ida_action

Запустить зарегистрированное действие IDA UI

list_ida_actions

Список всех доступных действий IDA

Мета (3)

Инструмент

Описание

get_binary_info

Путь к файлу, архитектура, разрядность, точка входа

get_analysis_status

Проверить завершение автоанализа

ping

Проверить соединение с IDA

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Live SEO workflow tools for Claude Code, Codex, and AI agents.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/31Benzi/IDA-PRO-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server