evmcp
evmcp
EVM + MCP — AIアシスタントにブロックチェーンのスーパーパワーを。
Base、Optimism、Avalanche、Celo、Arbitrum のオンチェーンデータへのリアルタイムアクセスを提供する MCP サーバー。バッチクエリとクロスチェーンデータのために、コンパニオン・スマートコントラクトがオンチェーンにデプロイされています。
仕組み
EVMCP は Model Context Protocol (MCP) を実装しています。これは AI アシスタントが外部ツールを呼び出せるようにする標準規格です。接続すると、AI アシスタントは残高の照会、トランザクションのデコード、ガス価格の比較などに利用できる 28 個の読み取り専用ブロックチェーンツールを、5 つの EVM チェーンにわたって呼び出せるようになります。
EVMCP の特長は コンパニオン・スマートコントラクト です。Avalanche と Celo にデプロイされた 4 つの Solidity コントラクトで、Multicall3 によるバッチクエリ、オンチェーンツールレジストリ、イベント集約、クロスチェーン残高キャッシュを実現します。MCP サーバーはこれらのコントラクトから読み取りを行います。すべての書き込み操作は管理 CLI が別途実行します。
Related MCP server: chain-data
クイックスタート
Claude Desktop の場合
Claude Desktop の設定(~/Library/Application Support/Claude/claude_desktop_config.json)に追加してください:
{
"mcpServers": {
"evmcp": {
"command": "npx",
"args": ["-y", "evmcp"],
"env": { "ALCHEMY_API_KEY": "your_key_here" }
}
}
}Claude Code の場合
claude mcp add evmcp -- npx -y evmcp対応チェーン
チェーン | チェーンID | ネイティブトークン | コンパニオンコントラクト |
Base | 8453 | ETH | 未デプロイ |
Optimism | 10 | ETH | 未デプロイ |
Avalanche C-Chain | 43114 | AVAX | デプロイ済み |
Celo | 42220 | CELO | デプロイ済み |
Arbitrum One | 42161 | ETH | 未デプロイ |
Ethereum メインネット(チェーンID 1)は、ENS 解決のみサポートされています。
ツール(全29種)
残高(3)
ツール | 説明 |
| 特定のチェーン上のアドレスのネイティブトークン残高(ETH/AVAX/CELO)を取得します |
| 特定のチェーン上のアドレスの ERC20 トークン残高を取得します |
| サポートされている 5 つのチェーンすべてで、アドレスのネイティブトークン残高を並列に取得します |
ブロック(3)
ツール | 説明 |
| 特定のチェーンでハッシュによりブロックを取得します |
| 特定のチェーンで番号によりブロックを取得します。最新ブロックを取得するには "latest" を渡します |
| 特定のチェーンの最新ブロック番号、タイムスタンプ、ベースフィーを取得します |
トランザクション(3)
ツール | 説明 |
| 特定のチェーンでハッシュによりトランザクションを取得します |
| status、gasUsed、ログを含むトランザクションのレシートを取得します |
| 提供された ABI を使用してトランザクションの関数呼び出しをデコードします |
コントラクト(3)
ツール | 説明 |
| 提供された ABI を使用してスマートコントラクトの読み取り専用関数を呼び出します |
| アドレスにコントラクトコードがデプロイされているかを確認し、バイトコードの長さとハッシュを取得します |
| 特定のアドレスのストレージスロットの生の値を読み取ります |
トークン(2)
ツール | 説明 |
| 名前、シンボル、小数位数、合計供給量を含む ERC20 トークンのメタデータを取得します |
| 所有者がスペンダーに許可した ERC20 トークンの許容量(allowance)を取得します |
ガス(3)
ツール | 説明 |
| 特定のチェーンの現在のガス価格と EIP-1559 の手数料データを取得します |
| 特定のチェーン上のトランザクションのガスを見積もります |
| サポートされている 5 つのチェーンすべての現在のガス価格を比較します |
ENS(2)
ツール | 説明 |
| ENS 名(例: vitalik.eth)を Ethereum L1 経由で Ethereum アドレスに解決します |
| アドレスを Ethereum L1 経由で ENS 名に逆引きします |
イベント(2)
ツール | 説明 |
| 特定のチェーン上のコントラクトが発行したイベントログを取得します |
| 提供された ABI を使用して生のイベントログをデコードします |
チェーンとヘルスチェック(3)
ツール | 説明 |
| チェーン名、チェーンID、現在のブロック番号、ブロックタイム、ネイティブシンボルを取得します |
| サポートされている 5 つのチェーンすべてで、アドレスにコントラクトコードがデプロイされているかを確認します |
| 6 つの RPC エンドポイント(Ethereum、Base、Optimism、Avalanche、Celo、Arbitrum)への接続をテストします |
バッチ(1)
ツール | 説明 |
| Multicall3 を使用して、複数の読み取り呼び出しを単一の RPC リクエストで実行します |
クロスチェーン(2)
ツール | 説明 |
| サポートされている 5 つのチェーンすべてで、アドレスのネイティブトークン残高を比較します |
| サポートされている 5 つのチェーンすべてで、アドレスのトランザクション数を確認します |
レジストリ(1)
ツール | 説明 |
| オンチェーンの MCPRegistry コンパニオンコントラクトから登録済みツールのメタデータを読み取ります |
オプティマイザー(1)
ツール | 説明 |
| Base/Optimism/Arbitrum の L1 データ手数料を考慮したうえで、トランザクションに最も安いチェーンを推奨します |
リソース(4)
URI パターン | 説明 | キャッシュ TTL |
| チェーンの現在のブロック高とガス価格 | 12s |
| gwei 単位のベースフィー、ガス価格、プライオリティフィー | 12s |
| 人気トークンのアドレスと小数位数(v1 ではハードコード) | 1時間 |
| サポートされているすべてのチェーンと、ID、シンボル、コンパニオンコントラクトのアドレス | 固定 |
テンプレート化されたリソースで利用できるチェーンID: 8453 (Base)、10 (Optimism)、43114 (Avalanche)、42220 (Celo)、42161 (Arbitrum)。
プロンプト(4)
プロンプト | 引数 | 説明 |
|
| ウォレットのマルチチェーン残高とアクティビティを分析します |
|
| スマートコントラクトの基本的な検査と監査のワークフロー |
| (なし) | 全チェーンのガスコスト、速度、特性を比較します |
|
| トランザクションを詳細にデコード、分析、トレースします |
コンパニオンコントラクト
4 つの Solidity コントラクトが Avalanche と Celo にデプロイされています。MCP サーバーはこれらのコントラクトから読み取りを行い、バッチクエリ、オンチェーンツールメタデータ、クロスチェーンデータを提供します。Base と Optimism へのデプロイは計画中です。
Avalanche C-Chain (43114)
コントラクト | アドレス |
MCPRegistry |
|
BatchQuery |
|
EventAggregator |
|
CrossChainCache |
|
Celo (42220)
コントラクト | アドレス |
MCPRegistry |
|
BatchQuery |
|
EventAggregator |
|
CrossChainCache |
|
コントラクトの説明
MCPRegistry -- すべての EVMCP ツールのオンチェーン上のメタデータ(名前、説明、バージョン)。オーナーのみ書き込み可能。
BatchQuery -- Multicall3 を介した最適化されたバッチ読み取り。multi-balance、multi-contract-check、multi-token-balance のヘルパーを含みます。
EventAggregator -- コントラクトごとのイベント数サマリーをキャッシュします。管理 CLI によって更新されます。
CrossChainCache -- クロスチェーンクエリ用の残高スナップショットを保存します。管理 CLI によって更新されます。
環境変数
変数 | 必須 | 説明 |
| 必須* | Alchemy API キー(全チェーンをカバー) |
| 任意* | Base の RPC URL を上書き |
| 任意* | Optimism の RPC URL を上書き |
| 任意* | Avalanche の RPC URL を上書き |
| 任意* | Celo の RPC URL を上書き |
| 任意* | Arbitrum の RPC URL を上書き |
| 任意 | ENS 解決用の RPC URL を上書き |
| 任意 | キャッシュ TTL(秒)(デフォルト: 15) |
| 任意 | 最大キャッシュエントリ数(デフォルト: 1000) |
| 任意 | debug、info、warn、error(デフォルト: info) |
| 任意 | テストネットチェーンを使用する(デフォルト: false) |
| TRANSPORT | なし | Streamable HTTP トランスポート用の stdio(デフォルト)または http |
| HTTP_PORT | なし | HTTP トランスポート用のポート(デフォルト: 3402) |
| X402_ENABLED | なし | HTTP トランスポートでの x402 支払いゲートを有効化 |
| X402_PAYEE_ADDRESS | なし** | Base 上の USDC 受取アドレス |
| X402_FACILITATOR_URL | なし | x402 ファシリテーター URL(デフォルトあり) |
*ALCHEMY_API_KEY または 5 つの個別チェーン RPC URL のいずれかを指定します。
**X402_ENABLED=true の場合に必須です。
開発
pnpm install
pnpm build
pnpm inspect # MCP Inspector UI at localhost:6274
pnpm test # Unit tests
pnpm typecheck # Type check
pnpm lint # ESLintライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Provide AI agents and automation tools with contextual access to blockchain data including balance…
Pay-per-call on-chain data for AI agents: token, wallet, risk, whale, NFT, tx. No API keys.
Related MCP Servers
AlicenseBqualityDmaintenanceEnables AI assistants to access and explain blockchain data across 100+ networks using natural language, without requiring authentication.95 npmMIT- AlicenseAqualityCmaintenanceEnables AI agents to fetch live multi-chain portfolio, token info, gas prices, and token prices across Ethereum, Base, Polygon, Arbitrum, and Optimism with a single call. No API key required.4MIT
- AlicenseAqualityCmaintenanceRead-only on-chain intelligence for AI agents on Base, providing tools to read balances, token metadata, gas, and transaction status live from chain without API keys.5MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying on-chain data (balances, transactions, token transfers, blocks) across 20+ EVM chains through natural language.706 npmMIT