idamesh について
idameshは、IDA Proを使うリバースエンジニアやセキュリティ分析者向けのMCPサーバーです。逆アセンブル、逆コンパイル、バイナリ分析、編集機能を提供し、複数のデータベースセッションでの並行作業も調整できます。
主な機能
- 01逆アセンブルとHex-Rays逆コンパイル
- 02バイナリ検索と構造化クエリ
- 03セキュリティ調査とデータフロー分析
- 04バイナリの名称変更、注釈、パッチ適用
- 05並列データベースセッションと編集の統合
活用シーン
- 01関数、型、コールグラフの調査
- 02脆弱性や暗号処理のトリアージ
- 03複数のエージェントで同じバイナリを分析
- 04注釈やパッチの適用と統合
MCP 対応
idameshは、IDA Proの機能をMCPツールと読み取り専用の`ida://…`リソースとして公開します。stdioワーカーとStreamable HTTPエンドポイントに対応し、スーパーバイザーで複数のデータベースセッションを管理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
idamesh
IDA Pro 用の Model Context Protocol(MCP)サーバーです。IDA の逆アセンブラーと Hex-Rays デコンパイラーを、ツールおよびリソースとして MCP クライアント(Claude など)に公開します。また、複数のデータベースを単一のエンドポイントの背後で管理するスーパーバイザーを備えており、複数のエージェントが並行して作業できます。
できること
- 読み取り — デコンパイル(Hex-Rays)、逆アセンブル、クロスリファレンス、コールグラフ、型と構造体の調査、メモリの読み取り、文字列/バイト/テキストの検索。
- クエリ — 関数、命令、クロスリファレンス、型、インポートに対する構造化フィルター。
- 分析 — 全体調査/トリアージ、暗号や危険な API の検出、脆弱性のヒューリスティック検出、スタック文字列の再構成、データフロー/汚染追跡。
- 変更 — 名前変更、コメント追加、型の変更、コードとデータの定義、スタックフレームの編集、バイト列/アセンブリのパッチ適用、ブックマーク、アノテーションのエクスポート/インポート。
- 並列化 — 各データベースをプライベートコピーで開くことで、複数のエージェントが同じバイナリを同時に作業でき、変更を1つのデータベースにマージできます。
読み取り専用の IDB 状態は、ida://… MCP リソースとしても公開されます。
要件
- Python 3.9+
idapro/idalibPython API を提供するライセンス済み IDA Pro インストール。IDADIR環境変数を IDA のインストールディレクトリに設定してください。
インストール
pip install idamesh
または、開発用にクローンからインストールします。
pip install -e .[dev] # editable install + pytest, to run the test suite
これにより、worker、supervisor、install の3つのサブコマンドを持つ idamesh コマンドが利用できるようになります。
使用方法
ヘッドレスワーカー — stdio で1つのデータベースを扱います(クライアントが起動します)。
idamesh worker /path/to/target.exe
スーパーバイザー — 多数のデータベースを1つの HTTP エンドポイントで扱います。
idamesh supervisor # http://127.0.0.1:8745/mcp
idb_open/idb_list/idb_close ツールを使って、その背後でデータベースを開いたり閉じたりできます。database キーを任意で指定すると、任意のツールをセッションにルーティングできます(データベースが1つだけ開いている場合は省略します)。同じバイナリを2回開くと、独立した2つのセッションが作成されます。idb_merge で、それぞれの変更を調整できます。
GUI プラグイン — 開いている IDA データベースを使って、MCP を提供します。
idamesh install # deploy the plugin into IDA's user directory, then restart IDA
idamesh supervisor を実行するか、IDAMESH_AUTOLAUNCH_SUPERVISOR=1 を設定してプラグインにスーパーバイザーを起動させた後、IDA でバイナリを開きます。スーパーバイザーがライブセッションを取り込み、そこへルーティングします。
ワーカー(--transport http)とスーパーバイザーはどちらも、ループバックにバインドされ、Origin の検証を行う単一の /mcp エンドポイントで、MCP Streamable HTTP を使用します。
Claude Code から接続
claude mcp add --scope user --transport http idamesh http://127.0.0.1:8745/mcp
または、単一の stdio ワーカーを直接起動します。
claude mcp add --scope user -e IDADIR=/path/to/IDA-Pro \
idamesh -- idamesh worker /path/to/target.exe
テスト
pip install -e .[dev]
python -m pytest -q
ライブの idalib エンドツーエンドテストは、IDA を利用できない場合(IDADIR が設定されていない場合)に問題なくスキップされるため、IDA をインストールしていなくてもテストスイートはすべて成功します。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。