mcpField
E
Etherscan MCP Server

Etherscan MCP Server

ローカル
github.com/huahuayu金融データ1036 週間前に更新

Etherscan MCP Server について

LLMアプリケーションからEtherscanのブロックチェーンデータにアクセスするGo製MCPサーバーです。Etherscan API V2を通じて50以上のチェーンに対応し、アカウント、ブロック、コントラクト、ガス、トークン、トランザクションを照会できます。

主な機能

  1. 0150以上のチェーンのデータ照会
  2. 02アカウントとトークン残高の取得
  3. 03ブロックとトランザクションの確認
  4. 04コントラクトABIとソースコードの取得
  5. 05ガス価格とトークン詳細の確認

活用シーン

  1. 01アカウント残高や取引履歴の確認
  2. 02ブロックやトランザクションレシートの調査
  3. 03検証済みコントラクトの詳細確認
  4. 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、ソースコード)
    • ガスオラクル
    • トークン情報
    • トランザクションデータ
    • その他

必要条件

インストール

  1. リポジトリをクローンします:

    git clone https://github.com/huahuayu/etherscan-mcp-server.git
    cd etherscan-mcp-server
    
  2. Etherscan API キーの環境変数を設定します:

    ETHERSCAN_API_KEY=your_api_key_here
    
  3. サーバーをビルドします:

    make build
    
  4. サーバーをインストールします:

    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 を再起動し、正常に動作するか確認します:

README の画像

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_blockNumber
getAccountBalanceeth_getBalance
getTokenBalanceeth_call (balanceOf)
getTokenDetailseth_call (name/symbol/decimals)
getTransactionByHasheth_getTransactionByHash
getTransactionReceipteth_getTransactionReceipt
getTransactionCounteth_getTransactionCount
executeContractMethodeth_call

使用する RPC エンドポイント:

  • BSC:https://binance.llamarpc.com
  • Base:https://base.llamarpc.com
  • Avalanche C-Chain:https://api.avax.network/ext/bc/C/rpc

Etherscan 固有のその他のツール(例: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 サーバーは、ブロックチェーンデータにアクセスするための以下のツールを提供します。

  1. getAccountBalance - 特定のブロックチェーン上のアカウント残高を取得
  2. getBlockByNumber - ブロック番号からブロック情報を取得
  3. getBlockRewards - ブロック番号からブロック報酬を取得
  4. getContractABI - 検証済みコントラクトの ABI を取得
  5. getContractSourceCode - 検証済みコントラクトのソースコードを取得
  6. executeContractMethod - 読み取り専用のコントラクト関数を実行
  7. getGasOracle - 現在のガス価格オラクルの出力を取得
  8. getTokenBalance - 特定のブロックチェーン上のアカウントのトークン残高を取得
  9. getTokenDetails - トークンの詳細情報を取得
  10. getTransactionByHash - ハッシュからトランザクションの詳細を取得
  11. getTransactionByBlockNumberAndIndex - ブロック番号とインデックスからトランザクションを取得
  12. getTransactionCount - アドレスから送信されたトランザクション数を取得
  13. getTransactionReceipt - トランザクションのレシートのステータスを確認
  14. getTransactionStatus - コントラクトの実行ステータスを確認
  15. getTransactionsByAddress - アドレス別のトランザクション一覧を取得
  16. getInternalTransactionsByAddress - アドレス別の内部トランザクション一覧を取得
  17. getTokenTransfersByAddress - アドレス別のトークン送金一覧を取得
  18. getERC721Transfers - アドレス別の ERC721 トークン送金一覧を取得
  19. getLatestBlockNumber - 最新のブロック番号を取得

各ツールは固有のパラメーターを受け取り、構造化された形式でブロックチェーンデータを提供します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。