この記事ではMCPに特化して解説します。MCP(Model Context Protocol)全般は MCPサーバーの作り方2026完全ガイド をご覧ください。
概要
IDA Pro MCPは、逆アセンブルの標準的作業をClaudeなどのAIアシスタントで自動化するMCP(Model Context Protocol)サーバーです。IDA Proの強力なバイナリ解析機能をLLMから直接操作でき、セキュリティ研究者やマルウェア分析者の生産性を大幅に向上させます。バイナリの構造解析、関数の識別、逆コンパイル結果の解釈といった定型的で時間のかかる作業をAIが担当することで、人間のアナリストは高度な推論や脆弱性発見に集中できるようになります。
本ツールはセキュリティ研究・教育・ペネトレーションテストを目的として設計されており、正当な権限のある環境での利用が前提です。GTFOBins のような権限昇格ツール集と同様、リバースエンジニアリングの知識を持つ専門家が防御側の視点でバイナリを分析することに本来の用途があります。
主な機能
-
IDA Pro連携インターフェース:IDA Proのスクリプティング機能を通じて、MCPプロトコルでLLMとの双方向通信を実現し、逆アセンブル結果の取得や解析制御をシームレスに行えます。
-
バイナリメタデータの自動抽出:関数エントリーポイント、引数、戻り値型、使用されているライブラリなどをAIが自動で識別・整理し、構造化されたデータとして提供します。
-
コードセマンティック分析:逆コンパイルされたコードをLLMで解析し、セキュリティ脆弱性(バッファオーバーフロー、メモリリークなど)の候補を検出・報告できます。
-
インタラクティブな質問応答:特定の関数やバイナリセクションについて自然言語で質問すると、AIが逆アセンブル結果を参照しながら回答を生成します。
-
マルウェア動作の推論:怪しい関数呼び出しやシステムAPI使用パターンからマルウェアの意図を推測し、検体の危険性レベルを段階的に評価します。
-
スクリプト自動生成:検出した脆弱性を検証するためのPython・IDC言語スクリプトをAIが自動生成でき、再度IDA Pro上で実行・検証できます。
技術スタック
- 対応バイナリ形式:ELF、PE(Windowsバイナリ)、Mach-O、COFF
- IDA Pro版: 7.0以上(MCPサーバーはPythonで実装)
- LLMプロバイダー: Anthropic Claude(メイン対応)、その他MCPクライアント互換モデル
- スクリプティング:IDA Pro Python API、IDC言語
- 通信プロトコル:Model Context Protocol(MCP)標準仕様
- 依存ライブラリ:Python 3.8+、idalib(IDA Pro標準ライブラリ)
IDA Pro MCPの処理フロー
(自然言語で指示)"] --> B["Claude AI
(MCPクライアント)"] B --> C["MCP Protocol
(JSON-RPC通信)"] C --> D["ida_mcp_server.py
(MCPサーバー)"] D --> E["IDA Pro Python API
(idalib)"] E --> F["IDA Pro
(逆アセンブラエンジン)"] F --> G["バイナリ解析結果
(関数・シンボル・逆コンパイル)"] G --> D D --> C C --> B B --> H["解析レポート
(自然言語・コードスニペット)"] H --> A
MCPプロトコルはJSON-RPCベースの標準化された通信仕様であり、ClaudeとIDA Proのような外部ツールを疎結合で接続します。Cyproxio MCP for Security のようなセキュリティ特化MCPサーバーと組み合わせることで、より包括的な脅威分析パイプラインを構築することも可能です。
IDA Pro MCPの導入方法(2026-08-06 時点の公式手順)
旧版は
git clone → pip install -r requirements.txt → python ida_mcp_server.py という手順を載せていましたが、これは現在のリポジトリの実際の導入方法と一致していません。公式READMEが案内しているのは、下記のとおり AIクライアントのプラグインとして入れる方式と、uv を前提とした idalib の有効化です。
前提条件(READMEの要件)
| 項目 | 要件 |
|---|---|
| IDA Pro | 8.3以上(9系推奨)。IDA Free はサポート対象外と明記 |
| Python | 3.11以上(idapyswitch で最新のPythonへ切り替える) |
| パッケージ実行 | uv が必要 |
| idalib | グローバルに有効化しておく必要がある |
| MCPクライアント | Claude Code・Codex・Kimi Code に専用手順。ほか20以上のクライアントに対応 |
「IDA Free で試そう」は最初の段階で詰まる——READMEが明示的に非対応と書いている点は、導入前に必ず確認したい。
ステップ1:idalib をグローバルに有効化する
OSごとにパスが違うだけで、やることは同じスクリプトの実行だ。
# Windows
uv run "C:\Program Files\IDA Professional 9.3\idalib\python\py-activate-idalib.py"
# macOS
uv run "/Applications/IDA Professional 9.3.app/Contents/MacOS/idalib/python/py-activate-idalib.py"
# Linux
uv run "/path/to/idapro-9.3/idalib/python/py-activate-idalib.py"
ステップ2:AIクライアントに入れる
Claude Code の場合——マーケットプレイスを登録してプラグインとして入れる。2行目の uninstall は、古い版が残っている環境で確実に入れ替えるための手順としてREADMEに含まれている。
claude plugin marketplace add mrexodia/claude-marketplace
claude plugin uninstall ida-pro-mcp@mrexodia
claude plugin install ida-pro-mcp@mrexodia
Kimi Code の場合——チャット内でスラッシュコマンドを打つ。
/plugins install https://github.com/mrexodia/ida-pro-mcp/tree/main
/reload
これで idalib MCPサーバーと idapython スキルが入る。プラグインは $KIMI_CODE_HOME/plugins/managed/ にコピーされるため、uv がPATHに通っていることが条件になる。なおインストール直後の最初のセッションだけ遅い——uv が依存関係を解決してからサーバーが応答するためで、故障ではない。
その他のクライアント——対応表に無い場合は、次のコマンドがそのクライアント向けのJSON設定を吐く。手書きしないで済む。
ida-pro-mcp --config
ステップ3:GUIを使わずheadlessで回す
ここがこのプロジェクトの実用上の肝で、IDAのGUIを開かずにバイナリ解析をパイプラインに載せられる。
# GUIに接続するSSEサーバーとして起動する
uv run ida-pro-mcp --transport http://127.0.0.1:8744/sse
# headless: 最初からバイナリを指定して起動する
uv run idalib-mcp --host 127.0.0.1 --port 8745 path/to/executable
# headless: バイナリ無しで起動し、あとから idb_open(...) で開く
uv run idalib-mcp --host 127.0.0.1 --port 8745
# stdio ベースのクライアント向け
uv run idalib-mcp --stdio
idalib-mcp は、開いたデータベースごとに専用のワーカープロセスを持つスーパーバイザとして動く。ワーカーは自分を起動したスーパーバイザより長生きする設計で、ホスト内の探索ディレクトリに自分を登録する。別のスーパーバイザ(stdio でも HTTP でも)が同じパスに対して idb_open を呼ぶと、すでに動いているワーカーをそのまま引き継ぐ——「共有モード」のような設定は存在しない。ワーカーは一定時間リクエストが来なければ自動終了する(既定のアイドルTTLは1時間)。
--max-workers の枠を先に空けたい場合は idb_close を呼んで明示的に解放する。なお引き継いだGUI/ワーカーは kill されず detach されるだけなので、解析中のセッションを巻き添えで落とす心配はない。
プロジェクトの状態(2026-08-06 実測)
| 項目 | 実測値 |
|---|---|
| GitHub Stars | 11,155 |
| Forks | 1,322 |
| ライセンス | MIT |
| 最終コミット | 2026-08-05 |
| 最新のタグ付きリリース | 1.4.0(2025-10-06) |
開発は現役なのに、タグ付きリリースは約10か月前で止まっている——これは実務上の注意点になる。「最新リリースを入れる」という発想で 1.4.0 を拾うと、上で紹介した Claude Code プラグイン方式や headless のワーカー永続化といった、その後 main に入った機能が丸ごと抜ける。READMEが案内しているのはいずれも main を参照する導入方法なので、素直にそちらに従うのが正しい。
競合比較
| 項目 | IDA Pro MCP | Ghidra API統合 | Binary Ninja MCP |
|---|---|---|---|
| IDEの統合度 | IDA Pro専用(最も密結合) | 独立設計(拡張性重視) | Binary Ninja向けだが軽量 |
| LLM対応 | Claude推奨 | 汎用APIサポート | 複数モデル対応 |
| 解析精度 | IDA Proの強力なヒューリスティック継承 | 学術志向・カスタマイズ性高 | 実務バランス型 |
| セットアップ難度 | 中程度(IDA Pro依存) | 低い(独立) | 低い |
| セキュリティ脆弱性検出 | AIによる推論ベース | ルールベース | ハイブリッド |
| ライセンス費用 | IDA Pro本体が有料 | 無料(OSS) | 商用ライセンスあり |
IDA Pro MCPの最大の差別化点は、IDA Proの業界標準としての地位を活かしながらAIの推論能力を組み合わせた点にあります。マルウェア分析やセキュリティ監査の現場でIDA Proは既に主流ツールであり、その資産をそのままLLMの力で拡張できるのは極めて実用的です。Ghidraは無料でオープンソースですが、業界的な解析精度ではIDA Proが優位。Binary Ninjaはモダン設計ですが、シェアではIDA Proに遠く及びません。MCPプロトコルの標準化により、将来的に他のリバースエンジニアリングツールへの拡張も容易になるでしょう。
こんな人におすすめ
-
セキュリティ研究者・ペネトレーションテスター:大量のバイナリを分析する際、AIがメタデータ抽出や初期スクリーニングを自動化することで、脆弱性発見に費やす人間の時間を劇的に短縮できます。
-
マルウェア分析チーム:未知の検体の動作意図をAIが自然言語で推論してくれるため、報告書作成や優先度判定の効率が向上します。
-
バグバウンティハンター:難読化されたバイナリでもIDA Proとのセットでセマンティック分析が可能になり、隠れた脆弱性の発見確率が高まります。
-
リバースエンジニアリング教育に携わる者:学生がIDA Proの操作方法だけでなく、AIとの対話を通じてバイナリ解析の思考プロセスを学べる新しい教材として機能します。
-
デジタルフォレンジック専門家:不正なプログラムやルートキットの詳細解析をAIがアシストすることで、法的証拠としての分析報告書を迅速に作成できます。