Web3 MCP Server について
Web3 MCP Serverは、viemを使ってEthereumネットワークの情報を取得するツールを提供します。残高や取引の照会、ENS検索、読み取り専用のコントラクト呼び出しに対応しています。
主な機能
- 01ETHとERC-20の残高照会
- 02取引とブロックの詳細確認
- 03ENSの名前解決と逆引き
- 04読み取り専用コントラクトメソッドの呼び出し
- 05Mainnet、Goerli、Sepolia、ローカルネットワーク対応
活用シーン
- 01ETHやトークン残高の確認
- 02取引やブロックの調査
- 03ENS名の解決
- 04スマートコントラクトデータの読み取り
MCP 対応
MCPサーバーは、Ethereumの照会機能と読み取り専用コントラクト呼び出しをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Web3 MCP サーバー
このプロジェクトは、viem ライブラリを使用して Ethereum ネットワークとやり取りする Model Context Protocol(MCP)サーバーを実装します。残高、トランザクション、ブロック、ENS などの照会に対応しています。
プロジェクト構成
- server/: 主な作業対象です。MCP サーバーの実装とすべてのコアロジックが含まれています。そのため、以下のコマンドと手順では、
cd serverで移動するディレクトリを前提としています。 - client/: MCP サーバーのテストに使用します。このフォルダーでテストスクリプトを実行したり、開発中にサーバーとやり取りしたりできます。クライアントを実行するには、
cd client; npm i && npm startを実行します。
機能
- ETH および ERC-20 トークンの残高を取得
- トランザクションとブロックの詳細を照会
- ENS の名前解決と逆引き
- 読み取り専用のコントラクトメソッドを呼び出し
- mainnet、Goerli、Sepolia、ローカル(Hardhat)ネットワークに対応
環境の設定
- 依存関係をインストールします:
npm install .envファイルを作成します(環境変数を設定する場合は任意):CHAIN_ENV=mainnet # or goerli, sepolia, local- 設定しない場合は、デフォルトで
mainnetが使用されます。 localの場合は、http://127.0.0.1:8545でノードが稼働していることを確認してください。
- 設定しない場合は、デフォルトで
サーバーの実行
npm start
ネットワークの切り替え
CHAIN_ENV 環境変数を次のいずれかに設定します:
mainnetgoerlisepolialocal
例:
CHAIN_ENV=goerli npm start
MCP サーバーのテスト
mcp-cli ツールを使用して、MCP サーバーをテストできます:
npx @wong2/mcp-cli npm start
これにより、ツールの一覧表示や呼び出し、サーバーの機能の対話的な確認ができます。
MCP サーバーと Claude および Cursor IDE の統合
Claude と Cursor IDE はどちらも、設定からカスタム MCP サーバーを追加できます。どちらのツールでも、手順はほぼ同じです:
MCP サーバーを追加する手順
-
MCP サーバーをビルドします:
npm run buildこれにより、サーバーが
server/buildディレクトリにコンパイルされます。 -
ツールの設定を開きます:
- Cursor IDE:
Settings>MCPに移動します。 - Claude(デスクトップ):
Settings>Developer>Edit Configに移動します。
- Cursor IDE:
-
新しいグローバル MCP サーバーを追加します:
- UI を使うか、JSON 設定ファイルを直接編集して追加できます。
- JSON 設定の例:
{ "mcpServers": { "web3-tools": { "command": "node", "args": ["$GITHUB_REPO/server/build/index.js"] } } }$GITHUB_REPOを、ローカルのリポジトリディレクトリへのパスに置き換えてください。
-
設定を保存し、必要に応じてツールを再起動または再読み込みします。
-
ツールを更新するには:
- サーバーコードを変更した後は、必ず
npm run buildを実行してください。 - 変更を反映するには、ツールを手動で更新するか、MCP サーバーを再起動する必要がある場合があります。
- サーバーコードを変更した後は、必ず
注:UI や設定ファイルの場所は、ツールの進化に伴って変更される場合があります。最新情報については、各ツールのドキュメントを参照してください。
次のステップ
- testnet/local 向けの書き込み(トランザクション)サポートを追加
- Vitest を使用した単体テストと統合(e2e)テストで、包括的なデモを実現(
npm testですべてのテストを実行) - 保守性を高めるため、コードをモジュールにリファクタリング
- 基本的なレート制限を追加するか、RPC の使用に関する警告を追加
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。