MCP Ethereum Address Info Server について
MCP Ethereum Address Info Serverは、複数チェーンのEthereumアドレス情報を提供し、SSEで更新を配信します。指定アドレスの変化を購読するMCPクライアント向けです。
主な機能
- 01複数チェーンのEthereumアドレス情報を取得
- 02SSEで更新を受信
- 03アドレスの購読と解除
- 04接続中のSSEクライアントを確認
活用シーン
- 01指定アドレスの更新を監視
- 02接続中のクライアントに変更を配信
MCP 対応
MCPサーバーとしてアドレス情報取得ツールを提供し、SSEを通じてアドレス更新を購読できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Ethereum Address Info Server
このサーバーは、Model Context Protocol(MCP)を使用して、複数のチェーンにわたる Ethereum アドレスの情報を提供します。リアルタイム更新用の Server-Sent Events(SSE)エンドポイントも含まれています。
目次
セットアップ
-
リポジトリをクローンします。
git clone <repository-url> cd mcp-0x-address -
依存関係をインストールします。
npm install -
次の変数を含む
.envファイルを作成します。MCP_PORT=3002
サーバーの実行
HTTP MCP サーバーを起動します。
npm run start:http
これにより、ポート 3002(または .env ファイルで指定されたポート)でサーバーが起動します。
利用可能なエンドポイント
サーバーは次のエンドポイントを提供します。
GET /health- サーバーのヘルスチェックPOST /mcp- ツール呼び出し用の MCP エンドポイントGET /sse- リアルタイム更新用の Server-Sent Events エンドポイントGET /sse/clients- 接続中の SSE クライアントに関する情報を取得しますPOST /sse/subscribe/:clientId- アドレス更新を購読しますPOST /sse/unsubscribe/:clientId- アドレス更新の購読を解除します
SSE エンドポイントの使用
SSE エンドポイントを使用すると、クライアントはサーバーからリアルタイムの更新を受け取れます。使用方法は次のとおりです。
- SSE エンドポイントに接続します
- 接続応答からクライアント ID を取得します
- 特定のアドレスを購読します
- それらのアドレスのリアルタイム更新を受け取ります
Curl を使ったテスト
1. SSE エンドポイントに接続する
curl -N http://localhost:3002/sse
これにより SSE エンドポイントへの接続が確立され、イベントの受信が始まります。手動で終了するまで、接続は開いたままになります。
2. 接続中のクライアントを確認する
curl http://localhost:3002/sse/clients
3. アドレス更新を購読する
SSE エンドポイントに接続すると、クライアント ID が届きます。その ID を使ってアドレス更新を購読します。
curl -X POST \
http://localhost:3002/sse/subscribe/YOUR_CLIENT_ID \
-H "Content-Type: application/json" \
-d '{"addresses": ["0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"]}'
YOUR_CLIENT_ID を、SSE エンドポイントへの接続時に受け取ったクライアント ID に置き換えます。
4. アドレス更新の購読を解除する
curl -X POST \
http://localhost:3002/sse/unsubscribe/YOUR_CLIENT_ID \
-H "Content-Type: application/json" \
-d '{"addresses": ["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}'
5. アドレス更新を発生させる
アドレス更新(購読中のクライアントに送信されます)を発生させるには、get-address-info ツールを呼び出します。
curl -X POST \
http://localhost:3002/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-address-info",
"arguments": {
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
}
}
}'
6. サーバーのヘルス状態を確認する
curl http://localhost:3002/health
7. Ping ツールをテストする
curl -X POST \
http://localhost:3002/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ping",
"arguments": {}
}
}'
ワークフローの例
SSE 機能をテストするための一連のワークフローを以下に示します。
-
サーバーを起動します。
npm run start:http -
新しいターミナルで、SSE エンドポイントに接続します。
curl -N http://localhost:3002/sse次のような応答が届きます。
data: {"type":"connection","clientId":"client-1234567890abcdef","message":"Connected to MCP SSE endpoint","timestamp":"2023-01-01T00:00:00.000Z"} -
応答から
clientIdを確認します。 -
別のターミナルで、アドレス更新を購読します。
curl -X POST \ http://localhost:3002/sse/subscribe/client-1234567890abcdef \ -H "Content-Type: application/json" \ -d '{"addresses": ["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}' -
アドレス更新を発生させます。
curl -X POST \ http://localhost:3002/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get-address-info", "arguments": { "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" } } }' -
SSE エンドポイントに接続しているターミナルに、そのアドレスの更新が表示されます。
自動テストスクリプト
テストをより自動化するには、次の bash スクリプトを使用できます。
#!/bin/bash
# Start SSE connection in the background and capture the output
curl -N http://localhost:3002/sse > sse_output.txt &
SSE_PID=$!
# Wait a moment for the connection to establish
sleep 2
# Extract the client ID from the output
CLIENT_ID=$(grep -o '"clientId":"[^"]*"' sse_output.txt | head -1 | cut -d'"' -f4)
if [ -z "$CLIENT_ID" ]; then
echo "Failed to get client ID"
kill $SSE_PID
exit 1
fi
echo "Connected with client ID: $CLIENT_ID"
# Subscribe to an address
curl -X POST \
http://localhost:3002/sse/subscribe/$CLIENT_ID \
-H "Content-Type: application/json" \
-d '{"addresses": ["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}'
echo "Subscribed to address. Waiting for updates..."
echo "Press Ctrl+C to stop"
# Keep the script running to see updates
tail -f sse_output.txt
# Clean up on exit
trap "kill $SSE_PID; rm sse_output.txt" EXIT
これを test_sse.sh として保存し、chmod +x test_sse.sh で実行可能にしてから、./test_sse.sh で実行します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。