Etherscan MCP Server について
LLMアプリケーションからEtherscanのブロックチェーンデータにアクセスするGo製MCPサーバーです。Etherscan API V2を通じて50以上のチェーンに対応し、アカウント、ブロック、コントラクト、ガス、トークン、トランザクションを照会できます。
主な機能
- 0150以上のチェーンのデータ照会
- 02アカウントとトークン残高の取得
- 03ブロックとトランザクションの確認
- 04コントラクトABIとソースコードの取得
- 05ガス価格とトークン詳細の確認
活用シーン
- 01アカウント残高や取引履歴の確認
- 02ブロックやトランザクションレシートの調査
- 03検証済みコントラクトの詳細確認
- 04対応チェーン間でのトークンデータ比較
MCP 対応
Etherscan API V2によるブロックチェーン照会をMCPツールとして公開します。stdioとSSEに対応し、APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Etherscan MCP サーバー
LLM アプリケーションが Etherscan のブロックチェーンデータにアクセスできるようにする、Model Context Protocol (MCP) 向けの Etherscan API クライアントの Go 実装です。
特長
- マルチチェーンに対応する Etherscan API V2 にアクセスできます
- 50 以上の対応チェーンで単一の API キーを使用できます
- さまざまなブロックチェーンデータの取得方法に対応しています:
- アカウント残高
- ブロック情報
- コントラクトデータ(ABI、ソースコード)
- ガスオラクル
- トークン情報
- トランザクションデータ
- その他
必要条件
- Etherscan API キー(https://etherscan.io/myapikey から取得してください)
インストール
-
リポジトリをクローンします:
git clone https://github.com/huahuayu/etherscan-mcp-server.git cd etherscan-mcp-server -
Etherscan API キーの環境変数を設定します:
ETHERSCAN_API_KEY=your_api_key_here -
サーバーをビルドします:
make build -
サーバーをインストールします:
make install # install to /usr/local/bin
使用方法
デフォルトモード(標準入力/出力)
stdin/stdout 通信を使用してサーバーを実行します(デフォルトモード):
./bin/etherscan-mcp-server
このモードは、stdin/stdout を介して通信する LLM アプリケーションと直接連携する場合に便利です。
MCP の設定:
{
"mcpServers": {
"etherscan-mcp-server": {
"command": "etherscan-mcp-server",
"env": {
"ETHERSCAN_API_KEY": "$your_api_key"
}
}
}
}
Cursor を再起動し、正常に動作するか確認します:

SSE モード
Server-Sent Events モードでサーバーを実行します:
./bin/etherscan-mcp-server --sse
SSE モードでは、サーバーは HTTP でリッスンし、SSE エンドポイントを提供します。
SSE の MCP 設定:
{
"mcpServers": {
"etherscan-mcp-server": {
"url": "http://localhost:4000/sse",
"env": {
"ETHERSCAN_API_KEY": "$your_api_key"
}
}
}
}
サーバーオプション
--sse:SSE サーバーモードを有効にします(デフォルトは stdin/stdout モードです)--port <port>:SSE サーバーのポートを指定します(デフォルトは PORT 環境変数の値、または 4000 です)
接続エンドポイント(SSE モード)
SSE モードで実行すると、サーバーは次を提供します:
- SSE エンドポイント:
http://localhost:4000/sse
対応チェーン
50 以上のチェーンに対応しています。全一覧と各チェーンに対応する Chain ID については、Etherscan V2 対応チェーンを参照してください。
無料プランの制限と RPC フォールバックに関する注意: Etherscan の対応チェーンポリシーによると、一部のネットワークは無料 API プランでは利用できません。以下はその一例です(これらに限定されません):
- BNB Smart Chain (BSC) — Chain ID:56
- Base — Chain ID:8453
- Avalanche C-Chain — Chain ID:43114
これら 3 つのチェーンでは、このサーバーに組み込みの RPC フォールバック機能があります。Etherscan API が
NOTOKを返すと、標準の JSON-RPC メソッドを使用する無料のパブリック RPC エンドポイントに自動的にフォールバックします。これらのチェーンでは、以下のツールを利用するために有料プランは必要ありません:
ツール JSON-RPC メソッド getLatestBlockNumbereth_blockNumbergetAccountBalanceeth_getBalancegetTokenBalanceeth_call(balanceOf)getTokenDetailseth_call(name/symbol/decimals)getTransactionByHasheth_getTransactionByHashgetTransactionReceipteth_getTransactionReceiptgetTransactionCounteth_getTransactionCountexecuteContractMethodeth_call使用する RPC エンドポイント:
- BSC:
https://binance.llamarpc.com- Base:
https://base.llamarpc.com- Avalanche C-Chain:
https://api.avax.network/ext/bc/C/rpcEtherscan 固有のその他のツール(例:
getContractABI、getTransactionsByAddress)では、これらのチェーンで Etherscan の有料プランが引き続き必要です。
クエリの例
次のような自然言語のクエリを使用できます:
アカウントと残高情報
- 「アドレス 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae の ETH 残高はいくらですか?」
- 「BSC 上のアドレス 0x123abc... の USDT トークン残高を表示してください」
- 「0xvitalik.eth はこのアドレスから何件のトランザクションを実行しましたか?」
ブロック情報
- 「Polygon の最新ブロック情報を取得」
- 「ブロック 17000000 のマイナー報酬はいくらですか?」
- 「Ethereum のブロック 16900000 を採掘したのは誰ですか?」
コントラクトとのやり取り
- 「0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 のソースコードを表示」
- 「Polygon 上の USDC コントラクトの ABI は何ですか?」
- 「自分のアドレスをパラメーターとして、USDT コントラクトの balanceOf 関数を呼び出す」
トランザクション情報
- 「トランザクション 0x123456789abcdef... の詳細を表示」
- 「トランザクション 0xabcdef... はもう承認されましたか?」
- 「トランザクション 0x789abc... で使用されたガス価格はいくらですか?」
ガスとネットワーク
- 「Ethereum の現在のガス価格はいくらですか?」
- 「今、迅速なトランザクションに推奨されるガス価格はいくらですか?」
- 「Ethereum ネットワークで保留中のトランザクションはいくつありますか?」
トークン情報
- 「LINK トークンのコントラクトについて教えてください」
- 「アドレス 0x123... が所有している ERC-721 NFT は何ですか?」
- 「0xvitalik.eth の最近のトークン送金を表示」
カスタムクエリ
- 「過去 1000 ブロックに Binance のホットウォレットへ送金されたすべての USDC を追跡」
- 「ブロック 17000000 で最も多くの ETH を受け取ったアドレスはどれですか?」
- 「類似したトランザクションについて、Ethereum と Arbitrum のガス使用量を比較」
利用可能なツール
Etherscan MCP サーバーは、ブロックチェーンデータにアクセスするための以下のツールを提供します。
- getAccountBalance - 特定のブロックチェーン上のアカウント残高を取得
- getBlockByNumber - ブロック番号からブロック情報を取得
- getBlockRewards - ブロック番号からブロック報酬を取得
- getContractABI - 検証済みコントラクトの ABI を取得
- getContractSourceCode - 検証済みコントラクトのソースコードを取得
- executeContractMethod - 読み取り専用のコントラクト関数を実行
- getGasOracle - 現在のガス価格オラクルの出力を取得
- getTokenBalance - 特定のブロックチェーン上のアカウントのトークン残高を取得
- getTokenDetails - トークンの詳細情報を取得
- getTransactionByHash - ハッシュからトランザクションの詳細を取得
- getTransactionByBlockNumberAndIndex - ブロック番号とインデックスからトランザクションを取得
- getTransactionCount - アドレスから送信されたトランザクション数を取得
- getTransactionReceipt - トランザクションのレシートのステータスを確認
- getTransactionStatus - コントラクトの実行ステータスを確認
- getTransactionsByAddress - アドレス別のトランザクション一覧を取得
- getInternalTransactionsByAddress - アドレス別の内部トランザクション一覧を取得
- getTokenTransfersByAddress - アドレス別のトークン送金一覧を取得
- getERC721Transfers - アドレス別の ERC721 トークン送金一覧を取得
- getLatestBlockNumber - 最新のブロック番号を取得
各ツールは固有のパラメーターを受け取り、構造化された形式でブロックチェーンデータを提供します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。