
claude-reverser/ida-instances-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
ida-pro-mcpのカスタムビルド - ヘッドレスIDA Proインスタンスのホスト用安定性強化されたMCPサーバー
概要
ida-pro-mcpのカスタムビルド:MCPクライアントがIDA Proを駆動できるMCPサーバーで、ホスティングを目的とした安定性パス(Ida-Instancesセットアップ)で再構築されました。 これはmrexodiaのida-pro-mcp(MIT)のフォークです。すべての上流の功績はDuncan Ogilvieおよび貢献者に帰されます。以下のカスタム変更はこのリポジトリで維持されています。 アップストリームv2.0.0上での安定性強化: - Linux、macOS、またはWindows - Python(IDA内のidapyswitchを使用)- IDA Pro(9.x推奨)- uv - MCPクライアント(Claude Code、カーソル、Codex、Opencode、VS Codeなど) UV環境のためにイダリブを有効化する: ヘッドレスランはIDADIRのインストールディレクトリも必要です。 起動時に が生成(またはディスクから読み込まれ)され、 なしのリクエストは 401 Unauthorized — 例外なし — が返されます。 インスタンスを所有するマシン/ネットワークからキーを一度取得します:
概要(AI 翻訳)
ida-pro-mcpのカスタムビルド:an MCPクライアントを操作できるMCPサーバー drive IDA Pro — 複数ホストを目的とした安定性パスで再設計 ヘッドレスidalibインスタンス**(Ida-Instancesセットアップ)。
これはmrexodiaのida-pro-mcp(MIT)のフォークです。上流のクレジットはすべて
ダンカン・オギルビーと寄稿者;習慣
以下の変更はこのリポジトリで維持されています。
カスタムとは何か
アップストリームv2.0.0上での安定性強化:
| エリア | 変化 |
|---|---|
| データセーフティ | 部分的なデータベースクリーンアップは所有権を認識しており、他のライブインスタンスが主張した.id0/.id1/.id2/.nam/.tilファイルを削除せず、ディスカバリーが利用できない場合はフェイルセーフです。 |
| セーブの信頼性 | idb_saveは600秒の予算で動作しています(以前は60秒);idb_closeはセーブ失敗後に作業員を殺すことを拒否し、静かに変更を破棄する |
| 同時進行 | スーパーバイザーロックはもはやワーカースポーン(~120秒)、ヘルスプローブ(~2.5秒/セッション)、ステールワーカー終了をまたがらなくなりました — 1回のスローオープンで毎セッションフリーズすることはできません |
| 堅牢性 | stdio上のJSON-RPCの不具合が、プロキシをクラッシュさせる代わりに-32700/-32600を返す |
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
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
idapyswitchinside 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)
インストール
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>"
}
}
}
}