etherscan-mcp-server について
etherscan-mcp-server は MCP クライアントを Etherscan に接続し、Ethereum の残高、トランザクション、コントラクト ABI、ガス価格を取得します。ウォレット確認やオンチェーン分析向けで、API キーは任意です。
主な機能
- 01ETH と ERC-20 の残高取得
- 02トランザクションとトークン転送の確認
- 03検証済みコントラクト ABI の取得
- 04現在のガス見積もりの確認
- 05自動レート制限と再試行
活用シーン
- 01ウォレットの ETH とトークン保有量の確認
- 02トランザクションやコントラクトの動きの追跡
- 03検証済みコントラクトの関数確認
- 04取引前のガス見積もりの比較
MCP 対応
残高、トランザクション、ABI、ガス価格など、Etherscan のオンチェーン照会ツールを MCP クライアントに公開します。読み取り専用です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| address | string | はい | 残高を確認する Ethereum アドレス(0x...) |
詳細
Etherscan MCP サーバー
Etherscan 用の MCP サーバーです。MCP 対応クライアントを Ethereum ブロックチェーンエクスプローラーに接続できます。
これは何ですか?
Etherscan の Ethereum ブロックチェーンエクスプローラー API(ETH 残高、ERC-20 トークン残高、トランザクション履歴、コントラクト ABI、ガス価格)を、自然言語を通じて AI アシスタントやエージェントから利用できるようにする MCP(Model Context Protocol) サーバーです。
Claude Desktop、Cursor、Windsurf、Cline、Continue、または任意の MCP 対応クライアントで使用して、ウォレットの確認、コントラクトの監査、オンチェーンのアクティビティ分析を行えます。
選ばれる理由
- API キーは不要です — Etherscan の無料プランでそのまま動作します(キーなしの場合、約5秒に1回の呼び出しに制限されます)
- API キーにも対応しています —
ETHERSCAN_API_KEYを設定すると、1秒あたり5回の呼び出しとすべての結果を利用できます - 8つの組み込みツール — よく使われるオンチェーンの問い合わせに対応します
- 見やすい Markdown 出力 — チャットで自然に読める形式で結果を表示します
- レート制限を自動管理 — 無料プランの制限を守り、429 エラー時には再試行します
ツール
| ツール | 説明 |
|---|---|
get_eth_balance | アドレスのネイティブ ETH 残高を取得します |
get_token_balances | アドレスのすべての ERC-20 トークン残高を取得します |
get_transaction | ハッシュを指定してトランザクションの詳細を取得します |
get_transactions_by_address | アドレスの通常(外部)トランザクションを取得します |
get_erc20_transfers | アドレスの ERC-20 トークン送金イベントを取得します |
get_internal_transactions | アドレスの内部(コントラクト呼び出し)トランザクションを取得します |
get_contract_abi | 検証済みスマートコントラクトの ABI を取得します |
get_gas_price | 現在のガス価格オラクルを取得します(低速/標準/高速、Gwei 単位) |
クイックスタート
1. MCP クライアントに追加する
MCP クライアントの設定(例:claude_desktop_config.json)に、次の内容を追加します。
{
"mcpServers": {
"etherscan": {
"command": "npx",
"args": ["-y", "etherscan-mcp-server"]
}
}
}
これで完了です。npx が自動的にダウンロードして実行します。レート制限を緩和するには、etherscan.io/apis で無料の API キーを取得して追加します。
{
"mcpServers": {
"etherscan": {
"command": "npx",
"args": ["-y", "etherscan-mcp-server"],
"env": {
"ETHERSCAN_API_KEY": "your_key_here"
}
}
}
}
2. 使用する
AI アシスタントに次のような質問をしてみましょう。
- 「vitalik.eth のアドレス
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045の ETH 残高はいくらですか?」 - 「そのアドレスの ERC-20 トークン残高を表示してください」
- 「トランザクション
0x...の詳細を取得してください」 - 「このアドレスの直近20件の通常トランザクションを一覧表示してください」
- 「このウォレットへの USDT の送金をすべて表示してください」
- 「USDC コントラクト
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48の ABI を取得してください」 - 「Ethereum メインネットの現在のガス価格はいくらですか?」
出力例
get_eth_balance
ETH Balance for 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
247.3821 ETH
get_gas_price
⛽ Etherscan Gas Price Oracle
- Safe Low (🐢): 12.50 Gwei
- Standard (🚗): 15.20 Gwei
- Fast (🚀): 18.90 Gwei
- Last Block: 19850000
- Gas Used Ratio: 0.512
- Suggested Base Fee: 13.40 Gwei
*Estimated tx cost for 21,000 gas: 🐢 0.000263 ETH | 🚀 0.000397 ETH*
get_transactions_by_address
Normal Transactions for 0xd8dA...6045 (20 results, page 1)
- ✅ ↗ OUT 0.5 ETH · transfer — block 19,850,123 — 2026-06-05 — gas: 15.20 Gwei — hash: 0x4f8a2b9c3d1e5f7a...
- ✅ ↙ IN 1.2 ETH · transfer — block 19,849,876 — 2026-06-05 — gas: 14.80 Gwei — hash: 0x9c1d4e7f2a8b6c3d...
- ❌ ↗ OUT 0.0 ETH · swapExactTokensForETH — block 19,849,500 — 2026-06-05 — gas: 22.10 Gwei — hash: 0x2b7c9e1f4a3d8b5c...
get_contract_abi
Contract ABI for 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
- Functions: 28
- Events: 13
- Constructors: 1
- Fallback/Receive: 0
### Functions (showing first 25)
- `name()` → string (view)
- `symbol()` → string (view)
- `decimals()` → uint8 (view)
- `totalSupply()` → uint256 (view)
- `balanceOf(address)` → uint256 (view)
- `transfer(address,uint256)` → bool (nonpayable)
- `approve(address,uint256)` → bool (nonpayable)
- `transferFrom(address,address,uint256)` → bool (nonpayable)
...
使用例
ウォレットの確認
「このアドレスの ETH とトークンの残高を確認してください」— どのウォレットの保有資産も数秒で確認できます。スマートコントラクトウォレットやマルチシグを含む、あらゆる Ethereum アドレスに対応します。
トランザクションの調査
「このアドレスの直近20件のトランザクションを表示してください」— オンチェーンのアクティビティを追跡し、取引相手を特定して、資金の流れを把握できます。コントラクト呼び出しには get_internal_transactions、トークンの移動には get_erc20_transfers を使用します。
スマートコントラクトの分析
「Uniswap Router コントラクトの ABI を取得して」——検証済みコントラクトの ABI を取得して、利用可能な関数を確認します。トランザクションの失敗原因のデバッグや、プロトコルの仕組みの理解に欠かせません。
ガスの最適化
「現在のガス価格を教えて」——低速・標準・高速のガス見積もりと、予測されるトランザクションコストを取得します。手数料を節約できるよう、トランザクションのタイミングを調整できます。
DeFi ポートフォリオの追跡
「ウォレットのすべてのトークン残高を表示して」——ERC-20 トークン全体の保有状況を集計します。CoinGecko MCP サーバーの get_prices と組み合わせることで、ポートフォリオ全体の評価額を確認できます。
セキュリティ監査
「このコントラクトのすべての内部トランザクションを一覧表示して」——内部呼び出しを追跡して、コントラクトの動作を把握します。不審なパターンの特定や、コントラクトが謳いどおりに動作するかの検証に役立ちます。
セキュリティ
- API キーは不要 — Etherscan の無料枠で動作します。より高いレート制限が必要な場合は、任意で API キーを設定できます。
- 読み取り専用 — Etherscan の API から公開ブロックチェーンデータを取得するだけです。書き込みや変更は行いません。
- ローカルファイルへのアクセスなし — お使いのマシン上のファイルを読み書きしません。
- シェルへのアクセスなし — コマンドの実行やプロセスの起動は行いません。
- レート制限あり — 無料枠の制限内に収まるよう、リクエスト数を自動的に抑えます。
- オープンソース — MIT ライセンスです。GitHub でコードを確認できます。
トラブルシューティング
「API key required」または応答が非常に遅い
API キーがない場合、Etherscan の制限により、5 秒あたり 1 回しか呼び出せません。etherscan.io/apis で無料のキーを取得し、ETHERSCAN_API_KEY 環境変数を設定すると、1 秒あたり 5 回呼び出せます。
「Rate limit exceeded」(429)
サーバーは 429 エラー時に自動で再試行しますが、短時間に多数のクエリを送ると、引き続き制限に達することがあります。無料の API キーを使用すると、1 秒あたり 5 回呼び出せます。最適な結果を得るには、リクエストの間隔を約 200ms 空けてください。
「Contract not found」または ABI が空
Etherscan で ABI を利用できるのは、検証済みのコントラクトのみです。コントラクトが検証されていない場合、API はエラーを返します。まず etherscan.io でコントラクトの検証状況を確認してください。
サーバーが起動しない
Node.js 18 以降がインストールされていることを確認してください:node --version。npx を使用している場合は、npm が最新であることを確認してください:npm install -g npm@latest。
MCP クライアントが接続できない
設定ファイルのパスが正しいことを確認してください。Claude Desktop では、macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json、Windows の場合は %APPDATA%\Claude\claude_desktop_config.json を使用します。設定を変更した後は、クライアントを再起動してください。
「Address checksum」エラー
Etherscan では、チェックサム形式のアドレス(大文字と小文字が混在したアドレス)が必要です。サーバーはこれを自動的に処理しますが、エラーが表示される場合は、etherscan.io でチェックサム形式のアドレスを確認して試してください。
要件
- Node.js 18 以降
- Etherscan API キー(推奨)— etherscan.io/apis で無料のキーを取得できます
レート制限
Etherscan の無料枠(1 秒あたり 5 回)の範囲内に収まるよう、サーバーはリクエストを約 1 秒あたり 4 回に自動で制限します。API キーがない場合、Etherscan の制限により、5 秒あたり 1 回しか呼び出せません。
より高い制限で利用するには、Etherscan の無料 API キーを登録し、ETHERSCAN_API_KEY 環境変数を設定してください:
{
"mcpServers": {
"etherscan": {
"command": "etherscan-mcp-server",
"env": {
"ETHERSCAN_API_KEY": "your_key_here"
}
}
}
}
開発
git clone https://github.com/nova/etherscan-mcp-server.git
cd etherscan-mcp-server
npm install
npm run build
npm start
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。