mcpField
C
Cloudflare Remote MCP Server

Cloudflare Remote MCP Server

ローカル
github.com/endou-mameクラウド・インフラ073 週間前に更新

Cloudflare Remote MCP Server について

リモート MCP のデプロイを試す開発者向けの Cloudflare Workers 用サンプル実装です。Durable Objects で状態を持つリクエストを処理し、HTTP Streamable トランスポートでツール、リソース、プロンプトを示します。

主な機能

  1. 01HTTP Streamable トランスポート
  2. 02Durable Objects によるリクエスト処理
  3. 03エコー・時刻・数値のサンプルツール
  4. 04静的なサンプルリソース
  5. 05組み込みの対話プロンプト
  6. 06CORS 対応

活用シーン

  1. 01Cloudflare Workers でリモート MCP エンドポイントをデプロイ
  2. 02状態を持つ MCP リクエスト処理の確認
  3. 03ツール・リソース・プロンプトの操作テスト
  4. 04HTTP 経由で MCP クライアントを接続

MCP 対応

HTTP Streamable MCP エンドポイントを通じて、サンプルツール、リソース、プロンプトを公開します。クライアントは HTTP POST で JSON-RPC リクエストを送り、Server-Sent Events を受信します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Cloudflare リモート MCP サーバー

Cloudflare Workers と Durable Objects 上で動作する Model Context Protocol(MCP)サーバーの実装です。

機能

  • リモート MCP サーバー:インターネット経由でアクセスできる、HTTP Streamable トランスポートベースの MCP サーバー
  • Durable Objects:Cloudflare Durable Objects を使用したステートフルなリクエスト処理
  • サンプルツール:MCP プロトコル用のデモツール
  • サンプルリソース:MCP 経由でアクセスできる静的データリソース
  • サンプルプロンプト:AI との対話用に事前に用意されたプロンプト
  • CORS サポート:Cross-Origin Resource Sharing により、ウェブに対応

アーキテクチャ

┌─────────────────┐  HTTP POST + SSE  ┌──────────────────┐
│   MCP Client    │ ◄──────────────► │ Cloudflare       │
│   (AI/Claude)   │                  │ Worker           │
└─────────────────┘                  └─────────┬────────┘
                                               │
                                               ▼
                                     ┌──────────────────┐
                                     │ MCPServerObject  │
                                     │ (Durable Object) │
                                     │                  │
                                     │ • MCP Protocol   │
                                     │ • HTTP Processing│
                                     │ • Request State  │
                                     └──────────────────┘

利用可能な機能

ツール
  • echo:入力テキストをそのまま返します
  • get_time:現在のタイムスタンプを取得します
  • random_number:min と max の間の乱数を生成します
リソース
  • cloudflare://worker-info:Cloudflare Worker に関する情報
  • cloudflare://sample-data:テスト用のサンプル JSON データ
プロンプト
  • explain_code:コードを説明するプロンプトを生成します
  • debug_help:デバッグを支援するプロンプトを生成します

デプロイ

  1. 依存関係をインストールします:

    npm install
    
  2. Cloudflare にデプロイします:

    npm run deploy
    
  3. デプロイした URL で MCP サーバーにアクセスします

開発

  1. ローカル開発を開始します:

    npm run dev
    
  2. サーバーをテストします:

    # Get server info
    curl http://localhost:8787/
    
    # Test MCP endpoint with a simple request
    curl -X POST http://localhost:8787/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
    

使用方法

HTTP API
  • GET / - サーバー情報と機能
  • POST /mcp - MCP HTTP Streamable エンドポイント
MCP 接続

MCP クライアントを HTTP エンドポイントに接続します:

  • ローカル:http://localhost:8787/mcp
  • 本番環境:https://your-worker.your-subdomain.workers.dev/mcp
プロトコルの詳細

サーバーはHTTP Streamable トランスポートを使用します:

  • リクエスト:本文に JSON-RPC メッセージを含む HTTP POST
  • レスポンス:text/event-stream コンテンツタイプの Server-Sent Events(SSE)ストリーム
  • 形式:各レスポンスは data: {JSON}\n\n として送信されます
MCP メッセージの例
ツール一覧
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'
ツールの呼び出し
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "echo",
      "arguments": {
        "text": "Hello, MCP!"
      }
    }
  }'
リソース一覧
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "resources/list"
  }'

設定

サーバーの設定は wrangler.jsonc にあります:

  • Durable Objects:MCPServerObject がステートフルな MCP リクエスト処理を担当します
  • 互換性日付:Cloudflare Workers の最新機能を利用できるよう、現在の日付に設定されています

開発メモ

  • MCP プロトコルの実装に @modelcontextprotocol/sdk を使用します
  • 状態管理のため、HTTP リクエストは Durable Objects によって処理されます
  • レスポンスは Server-Sent Events(SSE)を使用してストリーミングされます
  • ウェブクライアントとの互換性のため、CORS が有効になっています
  • エラー処理には JSON-RPC エラーレスポンスが含まれます
  • 厳密モードを有効にした TypeScript を使用します

トランスポートプロトコル

この実装では WebSocket ではなく、HTTP Streamable トランスポートを使用します:

  • プロキシやファイアウォールとの互換性が高くなります
  • 標準的な HTTP のセマンティクスを使用します
  • リアルタイムのレスポンスに Server-Sent Events をサポートします
  • ステートレスなクラウド環境により適しています

ライセンス

これは、教育目的のサンプル実装です。

コメント

MCP は初めてですか?

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

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