mcpField
M
MCP Ethereum Address Info Server

MCP Ethereum Address Info Server

ローカル
github.com/doronaviguyメディア・デザイン185 週間前に更新

MCP Ethereum Address Info Server について

MCP Ethereum Address Info Serverは、複数チェーンのEthereumアドレス情報を提供し、SSEで更新を配信します。指定アドレスの変化を購読するMCPクライアント向けです。

主な機能

  1. 01複数チェーンのEthereumアドレス情報を取得
  2. 02SSEで更新を受信
  3. 03アドレスの購読と解除
  4. 04接続中のSSEクライアントを確認

活用シーン

  1. 01指定アドレスの更新を監視
  2. 02接続中のクライアントに変更を配信

MCP 対応

MCPサーバーとしてアドレス情報取得ツールを提供し、SSEを通じてアドレス更新を購読できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Ethereum Address Info Server

このサーバーは、Model Context Protocol(MCP)を使用して、複数のチェーンにわたる Ethereum アドレスの情報を提供します。リアルタイム更新用の Server-Sent Events(SSE)エンドポイントも含まれています。

目次

セットアップ

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

    git clone <repository-url>
    cd mcp-0x-address
    
  2. 依存関係をインストールします。

    npm install
    
  3. 次の変数を含む .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 エンドポイントを使用すると、クライアントはサーバーからリアルタイムの更新を受け取れます。使用方法は次のとおりです。

  1. SSE エンドポイントに接続します
  2. 接続応答からクライアント ID を取得します
  3. 特定のアドレスを購読します
  4. それらのアドレスのリアルタイム更新を受け取ります

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 機能をテストするための一連のワークフローを以下に示します。

  1. サーバーを起動します。

    npm run start:http
    
  2. 新しいターミナルで、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"}
    
  3. 応答から clientId を確認します。

  4. 別のターミナルで、アドレス更新を購読します。

    curl -X POST \
      http://localhost:3002/sse/subscribe/client-1234567890abcdef \
      -H "Content-Type: application/json" \
      -d '{"addresses": ["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}'
    
  5. アドレス更新を発生させます。

    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. 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 で実行します。

コメント

MCP は初めてですか?

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

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