EVMole について
EVMole は、デプロイ済みの EVM ランタイムバイトコードを構造的に解析するローカルの MCP サーバーです。コントラクトのバイトコードをオフラインで調べたいエージェントやクライアント向けで、stdio で通信し、ネットワークアクセスや認証情報は不要です。
主な機能
- 01関数セレクターとディスパッチ位置の抽出
- 02推定される関数引数と状態可変性
- 03推定される永続ストレージおよび一時ストレージへのアクセス
- 04コンパイラメタデータの出力
- 05逆アセンブル、基本ブロック、制御フローグラフ
活用シーン
- 01ネットワークに接続せずにデプロイ済みコントラクトのバイトコードを解析
- 02エージェントによるコントラクトのセレクターとストレージアクセスの確認
- 03大規模な逆アセンブル出力や制御フロー出力のページ単位の取得
MCP 対応
本プロジェクトは、単一のツール analyze_evm_bytecode を stdio 経由で公開する MCP サーバーです。MCP クライアントが 16 進数のバイトコードを渡すと、構造化された解析結果を受け取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | |
| offset | number | いいえ | |
| include | array | いいえ | 含める分析機能:selectors、arguments、stateMutability、storage、transientStorage、metadata、disassembly、basicBlocks、controlFlowGraph。arguments と stateMutability を指定すると selectors も含まれます。 |
| bytecode | string | はい | デプロイ済み EVM ランタイムバイトコード(16 進数)。最大 1 MiB。 |
詳細
evmole-mcp
evmole-mcp は、デプロイ済みの EVM ランタイムバイトコードを構造化して解析する EVMole のローカル MCP サーバーです。MCP 対応のエージェントやクライアントで使用する analyze_evm_bytecode ツールを 1 つ提供します。
サーバーを起動する
npx -y evmole-mcp@latest
Node.js 22 以降が必要です。
MCP クライアントを設定する
{
"mcpServers": {
"evmole": {
"command": "npx",
"args": ["-y", "evmole-mcp@latest"]
}
}
}
サーバーは stdio 経由で通信します。
ランタイムバイトコードを解析する
analyze_evm_bytecode ツールは、16 進数の bytecode、任意の include 機能名、任意の offset と limit の値を受け取ります。次の情報を抽出できます。
- 関数セレクターとディスパッチ位置。
- 推定された引数と状態の可変性。
- 推定された永続ストレージと一時ストレージへのアクセス。
- コンパイラーのメタデータ。
- 逆アセンブル、基本ブロック、制御フローグラフ。
関数セレクターのみを取得する場合は、selectors を指定できます。arguments または stateMutability を指定すると、セレクターの抽出も有効になり、要求された関数情報は analysis.functions にまとめられます。ほかに要求された解析結果は、対応する analysis フィールドに返されます。
include を省略した場合、ツールはセレクター、引数、状態の可変性、両方のストレージ領域、メタデータを解析します。逆アセンブルと制御フロー関連の機能は出力が大きくなる場合があるため、オプトインです。ツールは、正規のバージョン 1 EVMole レスポンスを構造化コンテンツと JSON テキストのフォールバックとして返します。結果を解釈する前に、warnings と pagination を確認してください。
プライバシーと制限事項
このサーバーは stdio のみを使用し、ネットワークリクエストを行わず、認証情報を必要とせず、コントラクトアドレスを取得せず、ファイルを書き込みません。calldata のデコード、ソースの検証、作成バイトコードの実行、ソースの完全な逆コンパイルは行いません。引数、可変性、ストレージの説明は推定結果であり、ソースレベルで検証された事実ではありません。
evmole-mcp の各リリースは、対応する正確なバージョンの evmole に依存します。
詳しいセットアップとプライバシーに関するガイダンスは、https://github.com/cdump/evmole/tree/master/agent をご覧ください。問題は https://github.com/cdump/evmole/issues で報告してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。