IDAssistMCP
IDA Pro 9.x向けスタンドアロンMCP(Model Context Protocol)サーバープラグイン。IDAの解析機能をClaude DesktopなどのLLMクライアントに公開します。

特徴
- 41のMCPツール - バイナリ解析、逆コンパイル、クロスリファレンス、シンボル管理、型システム、ナビゲーション、パッチ、エクスポートなどをカバー
- 6つの統合ツール - コメント、変数、型、xref、ブックマーク、コードに対して
action/format/direction パラメータを提供
- 8つのMCPリソース - ブラウズ可能なバイナリメタデータ(トリアージ、関数、インポート、エクスポート、文字列、情報、セグメント、セクション)
- 7つのガイド付きプロンプト - 一般的なリバースエンジニアリングワークフロー(関数解析、脆弱性特定、ドキュメント作成、データフロートレース、関数比較、構造体復元、ネットワークプロトコル解析)
- SSEおよびStreamable HTTPトランスポート - Hypercorn ASGIサーバー経由
- スレッドセーフなIDB変更 -
execute_on_main_thread() ラッパー
- LRU解析キャッシュ - 逆コンパイルなどの高コスト操作向け
- 非同期タスクマネージャー - 長時間実行操作向け
- Pydantic設定 - 環境変数対応(
IDASSISTMCP_ プレフィックス)
インストール
前提条件
- IDA Pro 9.x + Python 3.10以上
- Hex-Rays逆コンパイラ(オプション、逆コンパイルツール用)
オプション1: IDA Plugin Manager(推奨)
hcli plugin install idassistmcp
これにより、プラグインとそのPython依存関係が自動的にインストールされます。
オプション2: 手動インストール(リリースtarballから)
GitHub Releases から最新リリースzipをダウンロードし、IDAプラグインディレクトリに展開します。
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
zipを %APPDATA%\Hex-Rays\IDA Pro\plugins\ に展開します。
次に、IDAバンドルのPython(システム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 に移動
- MCPサーバーURLがIDAの出力ウィンドウに表示されます
- 再度 Ctrl+Shift+M を押すとサーバーが停止します
Claude Desktopの設定
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 | アドレスのxrefおよびオプションで呼び出し元/呼び出し先 |
コメント (1統合)
| ツール | アクション | 説明 |
|---|
comments | action: get, set, list, remove | コメントの管理(通常、反復、関数) |
変数 (1統合)
| ツール | アクション | 説明 |
|---|
variables | action: list, rename | ローカル変数の一覧表示、またはスコープ 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 | タスクの進行状況確認 |
cancel_task | 実行中のタスクをキャンセル |
プロジェクト構成
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ファイルを参照してください。