IDA Pro用のスタンドアロンMCPサーバープラグイン。
[!IMPORTANT] アーカイブ予定: IDA Pro がネイティブの MCP サーバーを同梱するようになるため、IDAssistMCP はアーカイブされる予定です。ネイティブサポートにより、別個の MCP 統合を維持する必要がなくなり、IDA Pro 本体と整合性が保たれます。インストールされているバージョンで利用可能になったら、IDA Pro のネイティブ MCP サーバーをご使用ください。このリポジトリは参照用として引き続き利用可能です。
IDA Pro 9.x 向けのスタンドアロン MCP (Model Context Protocol) サーバープラグインで、IDA の解析機能を Claude Desktop などの LLM クライアントに公開します。

action/format/direction パラメータ付きexecute_on_main_thread() ラッパー経由IDASSISTMCP_ プレフィックス)hcli plugin install idassistmcp
これにより、プラグインとその Python 依存関係が自動的にインストールされます。
GitHub Releases から最新のリリース zip をダウンロードし、IDA の plugins ディレクトリに展開します:
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環境変数を使ってカスタムの plugins ディレクトリを指定することもできます。
Claude Desktop の claude_desktop_config.json に追加します:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
IDASSISTMCP_ プレフィックス付きの環境変数で設定します:
| Variable | Default | Description |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | サーバーのバインドアドレス |
IDASSISTMCP_SERVER__PORT | 9080 | サーバーポート |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | トランスポート種別 (sse または streamablehttp) |
IDASSISTMCP_DEBUG | false | デバッグモードを有効化 |
IDASSISTMCP_LOG_LEVEL | INFO | ログレベル |
| Tool | Description |
|---|---|
list_binaries | 現在ロードされているバイナリを一覧表示 |
get_binary_info | 詳細なバイナリメタデータ (アーキテクチャ、ハッシュ、セグメント) |
| Tool | Description |
|---|---|
get_code | 関数コードを取得 — format: 'decompile' (疑似 C) または 'disasm' (アセンブリ) |
analyze_function | 包括的な解析: メタデータ、CFG、呼び出し元/呼び出し先、逆コンパイル |
get_basic_blocks | 後続/先行ブロック付きの CFG 基本ブロック |
get_function_stack_layout | スタックフレームレイアウト (ローカル、引数、保存レジスタ) |
| Tool | Actions | Description |
|---|---|---|
xrefs | direction: to/from/both, include_calls: bool | アドレスへの xref と任意の呼び出し元/呼び出し先 |
| Tool | Actions | Description |
|---|---|---|
comments | action: get, set, list, remove | コメント (通常、繰り返し可能、関数) を管理 |
| Tool | Actions | Description |
|---|---|---|
variables | action: list, rename | ローカルを一覧表示、または scope: auto、local、global でローカル/グローバル変数をリネーム |
| Tool | Actions / Description |
|---|---|
types | action: list, set, create_struct, create_enum — IDB の型を管理 |
get_classes | 型ライブラリから構造体/クラス型を一覧表示 |
| Tool | Description |
|---|---|
get_functions | フィルタリングとページネーション付きの全関数 |
search_functions_by_name | 名前パターンとサイズフィルタで検索 |
get_function_by_name | 完全一致の名前検索 |
get_function_by_address | アドレス検索 |
get_function_statistics | 集計統計 (件数、サイズ、トップ 10) |
| Tool | Description |
|---|---|
rename_symbol | 任意のシンボル (関数またはデータ) をリネーム |
batch_rename | 複数のシンボルを一括リネーム |
| Tool | Description |
|---|---|
get_imports | モジュール別にグループ化されたインポートテーブル |
get_exports | エクスポートテーブル |
get_strings | ページネーション付きの文字列テーブル |
get_segments | パーミッション付きのメモリセグメント |
get_entry_points | すべてのバイナリエントリポイント |
| Tool | Description |
|---|---|
read_memory | アドレスにある生バイトを読み取り |
get_data_at | アドレスにある型付きデータを取得 |
search_bytes | バイナリのバイトパターン検索 |
search_strings | ページネーション付きの文字列検索 |
create_data_var | アドレスにデータ変数を定義 (byte/word/dword/qword/float/ascii/C 型) |
get_data_vars | 定義済みデータ変数 (非コード項目) を一覧表示 |
| Tool | Description |
|---|---|
patch_bytes | IDB 内の生バイトをパッチ |
assemble_code | アドレスにある命令テキストをアセンブルし、任意でパッチ適用 |
export_program | パッチ適用済みバイナリまたは IDA データベースをディスクにエクスポート |
| Tool | Description |
|---|---|
navigate_to | IDA カーソルをアドレスに移動 |
bookmarks | 統合ブックマーク管理 - アクション: list、set、remove |
get_current_address | カーソル位置のアドレスとコンテキストを取得 |
get_current_function | カーソル位置の関数情報を取得 |
| Tool | Description |
|---|---|
start_task | 非同期バックグラウンドタスクを開始 |
get_task_status | タスクの進捗を確認 |
cancel_task | 実行中のタスクをキャンセル |
list_tasks | すべての非同期タスクを一覧表示 |
IDAssistMCP/
├── idassistmcp_plugin.py # IDA plugin_t entry point
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # FastMCP server + transport
├── context.py # Single-binary IDA context
├── tools.py # 41 MCP tools (IDA API)
├── resources.py # 8 MCP resources
├── prompts.py # 7 guided workflow prompts
├── config.py # Pydantic settings
├── cache.py # LRU analysis cache
├── tasks.py # Async task manager
├── logging.py # IDA logging wrapper
├── utils.py # IDA-specific utilities
└── ui/
└── tool_registry.py # Tool catalog for UI
詳細は LICENSE ファイルを参照してください。