remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Supports running the MCP server with Bun runtime, enabling faster execution and modern JavaScript features.
Provides comprehensive blockchain services including reading state, transferring tokens, querying balances, and interacting with smart contracts on the Ethereum mainnet.
Supports interaction with the Fantom blockchain, including native token transfers, balance checking, and smart contract operations.
EVM MCP サーバー
複数のEVM互換ネットワークにブロックチェーンサービスを提供する包括的なモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、AIエージェントはEthereum、Optimism、Arbitrum、Base、Polygon、その他多くのEVMチェーンと統一されたインターフェースでやり取りできるようになります。
📋 目次
🔭 概要
MCP EVMサーバーは、モデルコンテキストプロトコルを活用してAIエージェントにブロックチェーンサービスを提供します。以下の幅広いサービスをサポートしています。
- ブロックチェーンの状態(残高、トランザクション、ブロックなど)の読み取り
- スマートコントラクトとのやり取り
- トークンの転送(ネイティブ、ERC20、ERC721、ERC1155)
- トークンのメタデータと残高の照会
- 30以上のEVMネットワークにわたるチェーン固有のサービス
- すべてのアドレスパラメータのENS 名前解決(アドレスの代わりに「vitalik.eth」のような人間が読める名前を使用する)
すべてのサービスは、MCPツールとリソースの一貫したインターフェースを通じて公開されているため、AIエージェントがブロックチェーン機能を容易に発見して利用できます。Ethereumアドレスを受け入れるすべてのツールはENS名もサポートしており、バックグラウンドで自動的にアドレス解決されます。
✨ 特徴
ブロックチェーンデータアクセス
- 30以上のEVM互換ネットワークのマルチチェーンサポート
- ブロック番号、チェーンID、RPCを含むチェーン情報
- 番号、ハッシュ、最新でデータアクセスをブロック
- 解読されたログを含む取引の詳細と領収書
- ネイティブトークンとすべてのトークン標準のアドレス残高
- 人間が読めるイーサリアムアドレスのENS解決(「0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045」の代わりに「vitalik.eth」を使用)
トークンサービス
- ERC20トークン
- トークンのメタデータ(名前、シンボル、小数点、供給)を取得する
- トークン残高を確認する
- アドレス間でトークンを転送する
- 支出手当の承認
- NFT(ERC721)
- コレクションとトークンのメタデータを取得する
- トークンの所有権を確認する
- アドレス間でNFTを転送する
- トークンURIを取得し保有数をカウントする
- マルチトークン(ERC1155)
- トークンの残高とメタデータを取得する
- 数量に応じてトークンを転送する
- アクセストークンURI
スマートコントラクトの相互作用
- ビュー/純粋関数を通じてコントラクト状態を読み取る
- 秘密鍵署名を使用したサービスの作成
- EOAと区別するための契約検証
- イベントログの取得とフィルタリング
包括的な取引サポート
- サポートされているすべてのネットワーク間でのネイティブトークン転送
- 取引計画のためのガス見積もり
- 取引状況と領収書情報
- 説明メッセージによるエラー処理
🌐 サポートされているネットワーク
メインネット
- イーサリアム(ETH)
- 楽観主義(OP)
- アービトラム(ARB)
- アービトラム・ノヴァ
- ベース
- ポリゴン(MATIC)
- ポリゴンzkEVM
- アバランチ(AVAX)
- バイナンススマートチェーン(BSC)
- zkSync時代
- リネア
- セロ
- グノーシス(xDai)
- ファントム(FTM)
- ファイルコイン(FIL)
- 月光
- ムーンリバー
- クロノス
- スクロール
- マントル
- マンタ
- ブラスト
- フラクタル
- モード
- メティス
- クロマ
- ゾラ
- オーロラ
- カント
- 流れ
- ルミア
テストネット
- セポリア
- 楽観主義セポリア
- アービトラム・セポリア
- ベースセポリア
- ポリゴンアモイ
- 雪崩富士
- BSCテストネット
- zkSync セポリア
- セポリア線
- スクロールセポリア
- マントルセポリア
- マンタ・セポリア
- ブラストセポリア
- フラクタルテストネット
- モードテストネット
- メティス・セポリア
- クロマ・セポリア
- ゾラ・セポリア
- セロ・アルファホレス
- ゴエルリ
- ホレスキー
- フローテストネット
- Lumia テストネット
🛠️ 前提条件
- Bun 1.0.0以上
- Node.js 18.0.0 以上(Bun を使用しない場合)
📦 インストール
⚙️ サーバー構成
サーバーは次のデフォルト構成を使用します。
- デフォルトのチェーンID :1(Ethereum Mainnet)
- サーバーポート: 3001
- サーバーホスト: 0.0.0.0 (どのネットワークインターフェースからもアクセス可能)
これらの値はアプリケーションにハードコードされています。変更が必要な場合は、以下のファイルを編集してください。
- チェーン設定の場合:
src/core/chains.ts
- サーバー構成の場合:
src/server/http-server.ts
🚀 使用方法
npx の使用 (インストール不要)
npx を使用すると、インストールせずに MCP EVM サーバーを直接実行できます。
ローカルでサーバーを実行する
stdio を使用してサーバーを起動します (CLI ツールに埋め込むため)。
または、Web アプリケーション用に SSE を使用して HTTP サーバーを起動します。
サーバーへの接続
MCP対応クライアントを使用して、このMCPサーバーに接続してください。テストとデバッグには、 MCP Inspectorを使用できます。
カーソルからの接続
カーソルから MCP サーバーに接続するには:
- カーソルを開いて設定(左下の歯車アイコン)に移動します
- 左側のサイドバーの「機能」をクリックします
- 「MCPサーバー」セクションまでスクロールします
- 「新しいMCPサーバーを追加」をクリックします
- 次の詳細を入力してください。
- サーバー名:
evm-mcp-server
- タイプ:
command
- コマンド:
npx @mcpdotdirect/evm-mcp-server
- サーバー名:
- 「保存」をクリック
接続すると、Cursor 内で MCP サーバーの機能を直接使用できるようになります。サーバーは MCP サーバーリストに表示され、必要に応じて有効化/無効化できます。
カーソルでmcp.jsonを使用する
チームと共有したり、プロジェクト間で使用したりできる、より移植性の高い構成にするには、プロジェクトのルート ディレクトリに.cursor/mcp.json
ファイルを作成します。
このファイルをプロジェクトの.cursor
ディレクトリに配置すると(存在しない場合は作成してください)、Cursor はプロジェクトで作業する際にこれらの MCP サーバー設定を自動的に検出して使用します。この方法により、以下のことが容易になります。
- MCP構成をチームと共有する
- MCP セットアップのバージョン管理
- プロジェクトごとに異なるサーバー構成を使用する
例: SSE を使用した HTTP モード
Web アプリケーションを開発していて、Server-Sent Events (SSE) を使用して HTTP サーバーに接続する場合は、次の構成を使用できます。
これは HTTP サーバーの SSE エンドポイントに直接接続します。これは次の場合に役立ちます。
- ブラウザからMCPサーバーに接続する必要があるWebアプリケーション
- ローカルコマンドの実行が理想的ではない環境
- 複数のユーザーまたはアプリケーション間で単一の MCP サーバー インスタンスを共有する
この構成を使用するには:
- プロジェクトルートに
.cursor
ディレクトリが存在しない場合は作成します。 - 上記のJSONを
.cursor
ディレクトリにmcp.json
として保存します。 - カーソルを再起動するか、プロジェクトを開きます
- カーソルは構成を検出し、サーバーを有効にするかどうかを提案します。
例: カーソルでMCPサーバーを使用する
mcp.json
でMCPサーバーを設定したら、Cursorで簡単に使用できます。ワークフローの例を以下に示します。
- プロジェクトに新しい JavaScript/TypeScript ファイルを作成します。
- カーソルでファイルを開いた状態で、カーソルに次の操作を実行できます。
- 「vitalik.ethの現在のETH残高を確認する」
- 「イーサリアム上のUSDCの価格を調べる」
- 「Optimismの最新ブロックを見せてください」
- 「0x1234...がコントラクトアドレスであるかどうかを確認する」
- カーソルは MCP サーバーを使用してこれらの操作を実行し、結果を会話内で直接返します。
MCP サーバーはすべてのブロックチェーン通信を処理し、Cursor が自然言語を通じてブロックチェーン関連のタスクを理解して実行できるようにします。
Claude CLI を使用して接続する
Claude CLI を使用している場合は、次の 2 つのコマンドだけで MCP サーバーに接続できます。
例: ENSでトークン残高を取得する
例: ENS名の解決
📚 APIリファレンス
ツール
サーバーはエージェント向けに以下のMCPツールを提供します。アドレスパラメータを受け入れるすべてのツールは、EthereumアドレスとENS名の両方をサポートします。
トークンサービス
ツール名 | 説明 | 主なパラメータ |
---|---|---|
get-token-info | ERC20トークンのメタデータを取得する | tokenAddress (アドレス/ENS)、 network |
get-token-balance | ERC20トークンの残高を確認する | tokenAddress (アドレス/ENS)、 ownerAddress (アドレス/ENS)、 network |
transfer-token | ERC20トークンの転送 | privateKey 、 tokenAddress (アドレス/ENS)、 toAddress (アドレス/ENS)、 amount 、 network |
approve-token-spending | トークンの許可を承認する | privateKey 、 tokenAddress (アドレス/ENS)、 spenderAddress (アドレス/ENS)、 amount 、 network |
get-nft-info | NFTメタデータを取得する | tokenAddress (アドレス/ENS)、 tokenId 、 network |
check-nft-ownership | NFTの所有権を確認する | tokenAddress (アドレス/ENS)、 tokenId 、 ownerAddress (アドレス/ENS)、 network |
transfer-nft | NFTを転送する | privateKey 、 tokenAddress (アドレス/ENS)、 tokenId 、 toAddress (アドレス/ENS)、 network |
get-nft-balance | 所有しているNFTの数 | tokenAddress (アドレス/ENS)、 ownerAddress (アドレス/ENS)、 network |
get-erc1155-token-uri | ERC1155メタデータを取得する | tokenAddress (アドレス/ENS)、 tokenId 、 network |
get-erc1155-balance | ERC1155残高を確認する | tokenAddress (アドレス/ENS)、 tokenId 、 ownerAddress (アドレス/ENS)、 network |
transfer-erc1155 | ERC1155トークンの転送 | privateKey 、 tokenAddress (アドレス/ENS)、 tokenId 、 amount 、 toAddress (アドレス/ENS)、 network |
ブロックチェーンサービス
ツール名 | 説明 | 主なパラメータ |
---|---|---|
get-chain-info | ネットワーク情報を取得する | network |
get-balance | ネイティブトークン残高を取得する | address (アドレス/ENS)、 network |
transfer-eth | ネイティブトークンを送信する | privateKey 、 to (アドレス/ENS)、 amount 、 network |
get-transaction | 取引の詳細を取得する | txHash 、 network |
read-contract | スマートコントラクトの状態を読み取る | contractAddress (アドレス/ENS)、 abi 、 functionName 、 args 、 network |
write-contract | スマートコントラクトへの書き込み | contractAddress (アドレス/ENS)、 abi 、 functionName 、 args 、 privateKey 、 network |
is-contract | アドレスがコントラクトかどうかを確認する | address (アドレス/ENS)、 network |
resolve-ens | ENS名をアドレスに解決する | ensName 、 network |
リソース
サーバーは、以下のMCPリソースURIを通じてブロックチェーンデータを公開します。アドレスを受け入れるすべてのリソースURIは、ENS名もサポートしており、ENS名は自動的にアドレスに解決されます。
ブロックチェーンリソース
リソースURIパターン | 説明 |
---|---|
evm://{network}/chain | 特定のネットワークのチェーン情報 |
evm://chain | イーサリアムメインネットチェーン情報 |
evm://{network}/block/{blockNumber} | 番号によるブロックデータ |
evm://{network}/block/latest | 最新のブロックデータ |
evm://{network}/address/{address}/balance | ネイティブトークン残高 |
evm://{network}/tx/{txHash} | 取引の詳細 |
evm://{network}/tx/{txHash}/receipt | ログ付き取引領収書 |
トークンリソース
リソースURIパターン | 説明 |
---|---|
evm://{network}/token/{tokenAddress} | ERC20トークン情報 |
evm://{network}/token/{tokenAddress}/balanceOf/{address} | ERC20トークン残高 |
evm://{network}/nft/{tokenAddress}/{tokenId} | NFT(ERC721)トークン情報 |
evm://{network}/nft/{tokenAddress}/{tokenId}/isOwnedBy/{address} | NFT所有権の検証 |
evm://{network}/erc1155/{tokenAddress}/{tokenId}/uri | ERC1155トークンURI |
evm://{network}/erc1155/{tokenAddress}/{tokenId}/balanceOf/{address} | ERC1155トークン残高 |
🔒 セキュリティに関する考慮事項
- 秘密鍵はトランザクションの署名にのみ使用され、サーバーに保存されることはありません。
- 本番環境での使用のために追加の認証メカニズムを実装することを検討する
- 実稼働環境ではHTTPサーバーにHTTPSを使用する
- 不正使用を防ぐためにレート制限を実装する
- 高価値サービスの場合は確認手順を追加することを検討してください
📁 プロジェクト構造
🛠️ 開発
サーバーを変更または拡張するには:
src/core/services/
の適切なファイルに新しいサービスを追加します。src/core/tools.ts
に新しいツールを登録するsrc/core/resources.ts
に新しいリソースを登録するsrc/core/chains.ts
に新しいネットワーク サポートを追加します。- サーバー設定を変更するには、
src/server/http-server.ts
内のハードコードされた値を編集します。
📄 ライセンス
このプロジェクトは、 MIT ライセンスの条件に基づいてライセンスされます。
You must be authenticated.
Tools
AI エージェントが 30 以上の Ethereum 互換ブロックチェーン ネットワークと対話し、トークン転送、契約の対話、ENS 解決などのサービスを統合インターフェースを通じて提供できるようにするモデル コンテキスト プロトコル サーバーです。
- 📋 Contents
- 🔭 Overview
- ✨ Features
- 🌐 Supported Networks
- 🛠️ Prerequisites
- 📦 Installation
- ⚙️ Server Configuration
- 🚀 Usage
- 📚 API Reference
- 🔒 Security Considerations
- 📁 Project Structure
- 🛠️ Development
- 📄 License