1scan - Blockchain Explorer API Gateway & MCP Server について
1scanは複数のEtherscan系ブロックチェーンエクスプローラーAPIを統合するゲートウェイで、AIアシスタント向けのMCPサーバーも備えます。対応ネットワークのアカウント、取引、ブロック、コントラクト情報を扱う開発者向けです。
主な機能
- 01複数のエクスプローラーAPIを統合
- 02API負荷分散
- 03APIレート制限の管理
- 04URLパラメーターでAPIキーを指定
- 05ブロックチェーンデータ検索ツール
活用シーン
- 01複数ネットワークのアカウント残高確認
- 02取引やブロック詳細の調査
- 03トークン転送とコントラクト情報の取得
MCP 対応
MCPサーバーとして、残高、取引、ブロック、トークン、コントラクトを調べるブロックチェーンエクスプローラーツールをMCPクライアントに提供します。SSEまたはstdioに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:3000/mcp/sseclaude mcp add --transport http 1scan http://localhost:3000/mcp/sse{"mcpServers":{"1scan":{"type":"http","url":"http://localhost:3000/mcp/sse"}}}Cursor で開く{"servers":{"1scan":{"type":"http","url":"http://localhost:3000/mcp/sse"}}}VS Code で開く{"mcpServers":{"1scan":{"type":"http","url":"http://localhost:3000/mcp/sse"}}}{"mcpServers":{"1scan":{"serverUrl":"http://localhost:3000/mcp/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
1scan - ブロックチェーンエクスプローラー API ゲートウェイ & MCP サーバー
AI アシスタント向けの Model Context Protocol(MCP)サポートを備えた、複数の Etherscan 風ブロックチェーンエクスプローラー API を統合する API ゲートウェイです。
概要
1scan は、次の 2 つの主要なコンポーネントを提供します。
- API ゲートウェイ:複数のブロックチェーンエクスプローラー API にアクセスするための統合エンドポイント
- MCP サーバー:AI モデル(Cursor IDE の Claude など)がブロックチェーンデータを直接照会できるようにします
対応するブロックチェーンネットワーク
各ブロックチェーンエクスプローラーから独自の API キーを申請してください
| ネットワーク名 | Chain ID | エクスプローラーリンク | エクスプローラー API エンドポイント |
|---|---|---|---|
| Ethereum | 1 | https://etherscan.io | api.etherscan.io |
| Binance Smart Chain | 56 | https://bscscan.com | api.bscscan.com |
| Arbitrum One | 42161 | https://arbiscan.io | api.arbiscan.io |
| Polygon | 137 | https://polygonscan.com | api.polygonscan.com |
| Optimism | 10 | https://optimistic.etherscan.io | api-optimistic.etherscan.io |
| Avalanche C-Chain | 43114 | https://snowtrace.io | api.snowtrace.io |
| Base | 8453 | https://basescan.org | api.basescan.org |
| zkSync Era | 324 | https://explorer.zksync.io | block-explorer-api.mainnet.zksync.io |
| Gnosis | 100 | https://gnosisscan.io | api.gnosisscan.io |
| Fantom | 250 | https://ftmscan.com | api.ftmscan.com |
| Mantle | 5000 | https://mantlescan.info | api.mantlescan.info |
| Cronos | 25 | https://cronoscan.com | api.cronoscan.com |
| Polygon ZkEVM | 1101 | https://zkevm.polygonscan.com | api-zkevm.polygonscan.com |
| Linea | 59144 | https://lineascan.build | api.lineascan.build |
| Moonbeam | 1284 | https://moonscan.io | api.moonscan.io |
| Celo | 42220 | https://celoscan.io | api.celoscan.io |
| Scroll | 534352 | https://scrollscan.com | api.scrollscan.com |
| OpBNB | 204 | https://opbnbscan.com | api.opbnbscan.com |
| Moonriver | 1285 | https://moonriver.moonscan.io | api-moonriver.moonscan.io |
| Arbitrum Nova | 42170 | https://nova.arbiscan.io | api-nova.arbiscan.io |
| Blast | 81457 | https://blastscan.io | api.blastscan.io |
| Fraxtal | 252 | https://fraxscan.com | api.fraxscan.com |
| Wemix | 1111 | https://wemixscan.com | api.wemixscan.com |
| Xai | 660279 | https://xaiscan.io | api.xaiscan.io |
| World Chain | 480 | https://worldscan.org | api.worldscan.org |
| Ape | 33139 | https://apescan.io/ | api.apescan.io |
| Kroma | 255 | https://kromascan.com | api.kromascan.com |
| Taiko | 167000 | https://taikoscan.io | api.taikoscan.io |
| Bittorrent | 199 | https://bttcscan.com | api.bttcscan.com |
| Xdc | 50 | https://xdcscan.io | api.xdcscan.io |
機能
- 🔄 複数のブロックチェーンエクスプローラーに対応する統一 API エンドポイント
- ⚖️ API 負荷分散
- 🔑 API レート制限の管理
- 🎯 URL パラメーターによるカスタム API キーのサポート
- 🤖 AI アシスタントがブロックチェーンデータを照会するための MCP サーバー
インストール
Go から
go install github.com/huahuayu/1scan@latest
ソースから
# Clone the repository
git clone https://github.com/huahuayu/1scan.git
cd 1scan
# Build both 1scan API server and MCP server
make build
クイックスタート
1. 設定ファイルを作成する
API キーを含む config.json ファイルを作成します。
{
"1": {
"endpoint": "api.etherscan.io",
"keys": {
"YOUR_ETHERSCAN_API_KEY_1": 5,
"YOUR_ETHERSCAN_API_KEY_2": 10
}
},
"56": {
"endpoint": "api.bscscan.com",
"keys": {
"YOUR_BSCSCAN_API_KEY": 5
}
}
}
各チェーンのエントリには、次の項目が含まれています。
chainID:ブロックチェーンのネットワーク IDendpoint:ブロックチェーンエクスプローラーの API エンドポイントkeys:API キーとそのレート制限(1 秒あたりのリクエスト数)のマップ
2. API サーバーを起動する
# Run with default settings
1scan -config /path/to/config.json
# Or using make
make run-1scan
3. MCP サーバーを起動する
# Run with default settings
1scanmcp -config /path/to/config.json # default serve at port 3000
# Or using make
make run-1scanmcp
# With custom settings
1scanmcp -config /path/to/config.json -port 3000 -path /mcp
Cursor IDE との統合
Cursor IDE で 1scan MCP を使用するには、次の手順を実行します。
-
API サーバーと MCP サーバーの両方を起動します。
# Terminal 1 make run-1scan # Terminal 2 make run-1scanmcp -
Cursor IDE で「Settings → AI → MCP Servers」に移動します。
-
次の URL を使用して、新しい MCP サーバーを追加します。
{
"mcpServers": {
"1scan": {
"url": "http://localhost:3000/mcp/sse"
}
}
}
-
必要に応じて Cursor IDE を再起動します。
-
これで、AI との会話でブロックチェーンデータを使用できます。
Can you check the balance of address 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on Ethereum?
MCP サーバーの設定
MCP サーバーの実行時に、次のパラメーターで設定をカスタマイズできます。
-port:MCP サーバーを実行するポート(デフォルト:"3000")-path:MCP サーバーのエンドポイントパス(デフォルト:"/mcp")-config:設定ファイルのパス(デフォルト:"config.json")-transport:トランスポートの種類(sse または stdio)(デフォルト:"sse")
例:
1scanmcp -port 3000 -config /path/to/config.json
利用可能な MCP ツール
MCP サーバーは、次のツールを AI モデルに公開します。
getAccountBalance- 指定したブロックチェーン上のアカウント残高を取得しますgetTokenBalance- 指定したブロックチェーン上のアカウントのトークン残高を取得しますgetTransactionByHash- ハッシュからトランザクションの詳細を取得しますgetBlockByNumber- ブロック番号からブロック情報を取得しますgetContractABI- 検証済みコントラクトの ABI を取得しますgetContractSourceCode- 検証済みコントラクトのソースコードを取得しますgetTokenInfo- ERC20 トークンの情報を取得しますgetGasPrice- 指定したブロックチェーンの現在のガス価格を取得しますgetLogs- 指定したパラメーターに一致するイベントログを取得しますgetTransaction- ハッシュからトランザクションの詳細を取得しますgetTransactionCount- アドレスから送信されたトランザクション数を取得しますgetTransactionReceipt- トランザクションハッシュからトランザクションレシートを取得しますgetBlockTransactionCountByNumber- ブロック内のトランザクション数を取得しますgetBlockTransactionCountByHash- ブロックハッシュからブロック内のトランザクション数を取得しますgetBlockByHash- ハッシュからブロック情報を取得しますgetNormalTransactions- アドレスから通常のトランザクションを取得しますgetInternalTransactions- アドレスまたはトランザクションハッシュから内部トランザクションを取得しますgetERC20Transfers- アドレスまたはコントラクトから ERC-20 トークンの転送イベントを取得しますgetERC721Transfers- アドレスまたはコントラクトから ERC-721 NFT の転送イベントを取得しますgetValidators- バリデーター情報を取得します(バリデーターセットを持つネットワークの場合)getContractCreation- コントラクトの作成情報を取得しますgetContractVerificationStatus- コントラクトの検証ステータスを確認します
MCP の対話例
MCP インターフェースを通じてブロックチェーンデータを操作する例を紹介します。
# Get account balance
What's the ETH balance of vitalik.eth (0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045) on Ethereum?
# Check a token balance
What's the USDC balance of address 0x28C6c06298d514Db089934071355E5743bf21d60 on Ethereum?
# Examine a transaction
Can you analyze transaction 0xdd6d7f687c9821404ae8c2ea7de5cfb5a23fc4c01ef1e7f535748cb147aa76dd on Ethereum?
# Look up block information
What transactions were in Ethereum block 18700000?
# Get contract ABI
Can you show me the ABI for the USDC contract (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) on Ethereum?
# Analyze contract source code
I need to understand how the Uniswap V3 router works. Can you show me the source code for 0xE592427A0AEce92De3Edee1F18E0157C05861564 on Ethereum?
# Check multiple chains
What's the difference in gas fees between Ethereum and Arbitrum right now?
# Examine token information
Tell me about the tokenomics of the APE token on Ethereum.
MCP ツールの一覧
MCP サーバーは、AI モデルに次のツールを公開します。
getAccountBalance- 特定のブロックチェーン上のアカウント残高を取得しますgetTokenBalance- 特定のブロックチェーン上のアカウントのトークン残高を取得しますgetTransactionByHash- ハッシュからトランザクションの詳細を取得しますgetBlockByNumber- ブロック番号からブロック情報を取得しますgetContractABI- 検証済みコントラクトの ABI を取得しますgetContractSourceCode- 検証済みコントラクトのソースコードを取得しますgetTokenInfo- ERC20 トークンに関する情報を取得しますgetGasPrice- 特定のブロックチェーンの現在のガス価格を取得しますgetLogs- 指定したパラメーターに一致するイベントログを取得しますgetTransaction- ハッシュからトランザクションの詳細を取得しますgetTransactionCount- アドレスから送信されたトランザクション数を取得しますgetTransactionReceipt- トランザクションハッシュからトランザクションレシートを取得しますgetBlockTransactionCountByNumber- ブロック内のトランザクション数を取得しますgetBlockTransactionCountByHash- ブロックハッシュからブロック内のトランザクション数を取得しますgetBlockByHash- ハッシュからブロック情報を取得しますgetNormalTransactions- アドレスから通常のトランザクションを取得しますgetInternalTransactions- アドレスまたはトランザクションハッシュから内部トランザクションを取得しますgetERC20Transfers- アドレスまたはコントラクトから ERC-20 トークンの転送イベントを取得しますgetERC721Transfers- アドレスまたはコントラクトから ERC-721 NFT の転送イベントを取得しますgetValidators- バリデーター情報を取得します(バリデーターセットを持つネットワークの場合)getContractCreation- コントラクトの作成情報を取得しますgetContractVerificationStatus- コントラクトの検証ステータスを確認します
MCP 統合のトラブルシューティング
Cursor から MCP サーバーへの接続で問題が発生した場合は、次の手順を実施してください。
-
両方のサーバーが実行中であることを確認します。
# Check if servers are running ps aux | grep 1scanmcp -
Cursor で正しい URL が設定されていることを確認します
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。