CR

claude-reverser/ida-instances-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

187 stars 26 forks Качество 79 Тренд 25MIT

Кастомная сборка ida-pro-mcp — стабилизированного MCP-сервера для размещения инстанций IDA Pro без головы

Обзор

Кастомная сборка ida-pro-mcp: MCP-сервер, позволяющий клиентам MCP управлять IDA Pro — переработанный с пропуском стабильности, ориентированной на хостинг (конфигурация Ida-Instances). Это ответвление от ida-pro-mcp (MIT) от mrexodia. Вся заслуга выше принадлежит Дункану Огилви и его авторам; приведённые ниже изменения сохраняются в этом репозитории. Укрепление устойчивости поверх upstream версии 2.0.0: - Linux, macOS или Windows — Python (используйте idapyswitch внутри IDA для соответствия) — IDA Pro (рекомендуется 9.x). - uv — MCP-клиент (Claude Code, курсор, codex, Opencode, VS Code и др.) Активируйте idalib для вашей UV-среды: Для безголовых запусков также требуется каталог установки IDA в IDADIR. При запуске an генерируется (или загружается с диска), и каждый запрос без него получает 401 Unauthorized — без исключений. Получите ключ один раз из машины/сети, которой принадлежит экземпляр:

Обзор (машинный перевод)

Кастомная сборка ida-pro-mcp: MCP сервер, который позволяет MCP-клиентам диск IDA Pro — переработано с пропуском стабильности, направленным на размещение multiple безголовые Idalib экземпляры (конфигурация Ida-Instances).

Это форк ida-pro-mcp (MIT) от mrexodia. Вся заслуга выше по течению принадлежит Дункан Огилви и авторы; обычай Изменения, приведённые ниже, сохраняются в этом репозитории.

Что такое обычай

Укрепление устойчивости поверх upstream версии 2.0.0:

Зона Изменения
Безопасность данных Частичная очистка базы данных ориентирована на собственность: она никогда не удаляет .id0/.id1/.id2/.nam/.til файлы, заявленные другим живым экземпляром, и выходит из защиты, когда обнаружение недоступно
Надежность сохранений idb_save работает с бюджетом 600s (был 60s); idb_close отказывается убивать работника после неудачного сохранения, вместо того чтобы молча отбрасывать изменения
Параллельность Блокировка супервайзера больше не охватывает появление рабочих (~120 секунд), зонды здоровья (~2,5 секунды за сессию) или устранение устаревшего рабочего — одно медленное открытие не может заморозить каждую сессию
Надёжность Неправильный JSON-RPC по stdio возвращает -32700/-32600 вместо сбоя прокси

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

IDA-instances-MCP

Custom build of ida-pro-mcp: an MCP Server that lets MCP clients drive IDA Pro — reworked with a stability pass aimed at hosting multiple headless idalib instances (the Ida-Instances setup).

This is a fork of mrexodia’s ida-pro-mcp (MIT). All upstream credit goes to Duncan Ogilvie and contributors; the custom changes below are maintained in this repository.

What’s custom

Stability hardening on top of upstream v2.0.0:

Area Change
Data safety Partial-database cleanup is ownership-aware: it never deletes .id0/.id1/.id2/.nam/.til files claimed by another live instance, and fails safe when discovery is unavailable
Save reliability idb_save runs with a 600s budget (was 60s); idb_close refuses to kill a worker after a failed save instead of silently discarding changes
Concurrency Supervisor lock no longer spans worker spawn (~120s), health probes (~2.5s/session) or stale-worker termination — one slow open can’t freeze every session
Robustness Malformed JSON-RPC over stdio returns -32700/-32600 instead of crashing the proxy
Timeouts Proxy timeout raised 30s → 900s and made configurable (IDA_MCP_PROXY_TIMEOUT) so long decompiles don’t “fail” client-side while still running server-side
Networking Worker port TOCTOU now retries; SSE writes and teardown are lock-guarded; CORS policy reads are cached off the IDA main thread
Resource limits IDB trace log capped at 64 MB (IDA_MCP_TRACE_MAX_MB) with oversized arguments/results clipped; flush-failure queue bounded
Authentication Every HTTP request requires an instance API key; issued exactly once via GET /key, then burned. The key persists on disk so it survives restarts and reboots
Hosting endpoints GET /health (unauthenticated readiness probe), GET /sessions (open databases + last-accessed), POST /upload (direct binary upload with size cap)
Idle reaping Sessions untouched for IDA_MCP_IDLE_TIMEOUT minutes are auto-closed (saved first)
Graceful shutdown On SIGTERM/SIGINT every open database is saved before exit — no more lost work on pct stop
Self-update Startup checks GitHub releases; interactive sessions are offered a one-keypress auto-update
Hosting defaults Headless supervisor listens on 0.0.0.0:9999; the GUI plugin also binds 0.0.0.0 and now requires the same API key

Requirements

  • Linux, macOS or Windows
  • Python 3.11+ (use idapyswitch inside IDA to match)
  • IDA Pro 8.3+ (9.x recommended). IDA Free is not supported
  • uv
  • An MCP client (Claude Code, Cursor, Codex, Opencode, VS Code, …)

Setup

Activate idalib for your uv environment:

# linux (server deployment)
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "ida-instances": { "url": "http://your-host:9999/mcp", "headers": { "Authorization": "Bearer <key-from-/key>" } } } }