mcpField
M
MCP Server with Cloudflare Workers

MCP Server with Cloudflare Workers

ローカル
github.com/sivakumarlクラウド・インフラ084 週間前に更新

MCP Server with Cloudflare Workers について

`workers-mcp` を使って Cloudflare Workers 上に MCP サーバーを構築するためのガイドとサンプルです。メソッドや API 呼び出しのツール化、ローカルテスト、デプロイ、共有シークレット認証を扱います。

主な機能

  1. 01Worker ベースの MCP サーバー設定
  2. 02メソッドを MCP ツールとして公開
  3. 03外部 API への接続
  4. 04ローカルプロキシでのテスト
  5. 05Wrangler によるデプロイ
  6. 06共有シークレット認証

活用シーン

  1. 01AI アシスタントに API を公開
  2. 02Worker の MCP サーバーをローカルでテスト
  3. 03MCP サーバーを Cloudflare Workers にデプロイ

MCP 対応

`workers-mcp` で Cloudflare Workers を MCP に対応させ、Worker のメソッドをツールとして公開します。MCP クライアントはテスト時にはローカルプロキシ経由で、デプロイ後は Worker に接続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"my-mcp-worker": {
"command": "npx",
"args": [
"-y",
"create-cloudflare"
]
}
}
}
起動コマンドnpx -y create-cloudflare

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcreate-cloudflare

ツール

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

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

詳細

Cloudflare Workers を使用した MCP サーバー

はじめに

Model Context Protocol(MCP)は、AI エージェントやアシスタントがサービスとやり取りできるようにするオープンスタンダードです。MCP サーバーをセットアップすると、AI アシスタントから API に直接アクセスできるようになります。

workers-mcp パッケージと組み合わせた Cloudflare Workers は、MCP サーバーを構築するための強力でスケーラブルなソリューションを提供します。

前提条件

開始する前に、以下を用意してください。


はじめに

ステップ 1:新しい Cloudflare Worker を作成する

まず、新しい Cloudflare Worker プロジェクトを初期化します。

npx create-cloudflare@latest my-mcp-worker
cd my-mcp-worker

次に、Cloudflare アカウントを認証します。

wrangler login
ステップ 2:Wrangler を設定する

wrangler.toml ファイルを更新し、正しいアカウント情報を設定します。

name = "my-mcp-worker"
main = "src/index.ts"
compatibility_date = "2025-03-03"
account_id = "your-account-id"

MCP ツールのインストール

MCP のサポートを有効にするには、workers-mcp パッケージをインストールします。

npm install workers-mcp

セットアップコマンドを実行して MCP を設定します。

npx workers-mcp setup

これにより、以下が実行されます。

  • 必要な依存関係を追加する
  • テスト用のローカルプロキシをセットアップする
  • MCP に準拠するよう Worker を設定する

MCP サーバーコードの作成

src/index.ts を更新して MCP サーバーを定義します。

import { WorkerEntrypoint } from 'cloudflare:workers';
import { ProxyToSelf } from 'workers-mcp';

export default class MyWorker extends WorkerEntrypoint<Env> {
  /**
   * A friendly greeting from your MCP server.
   * @param name {string} The name of the user.
   * @return {string} A personalized greeting.
   */
  sayHello(name: string) {
    return `Hello from an MCP Worker, ${name}!`;
  }

  /**
   * @ignore
   */
  async fetch(request: Request): Promise<Response> {
    return new ProxyToSelf(this).fetch(request);
  }
}
主なコンポーネント:
  • WorkerEntrypoint:受信リクエストとメソッドの公開を管理します。
  • ProxyToSelf:MCP プロトコルへの準拠を確保します。
  • sayHello メソッド:AI アシスタントが呼び出せる MCP 関数の例です。

API 呼び出しの追加

外部 API と連携することで、MCP サーバーを拡張できます。以下は、天気データを取得する例です。

export default class WeatherWorker extends WorkerEntrypoint<Env> {
  /**
   * Fetch weather data for a given location.
   * @param location {string} The city or ZIP code.
   * @return {object} Weather details.
   */
  async getWeather(location: string) {
    const response = await fetch(`https://api.weather.example/v1/${location}`);
    const data = await response.json();
    return {
      temperature: data.temp,
      conditions: data.conditions,
      forecast: data.forecast
    };
  }

  async fetch(request: Request): Promise<Response> {
    return new ProxyToSelf(this).fetch(request);
  }
}

MCP サーバーのデプロイ

Worker のセットアップが完了したら、Cloudflare にデプロイします。

npx wrangler deploy

デプロイ後、Worker が稼働し、AI アシスタントが MCP ツールを検出して使用できるようになります。

MCP サーバーを更新するには、以下のコマンドで再デプロイします。

npm run deploy

MCP サーバーのテスト

MCP のセットアップをローカルでテストするには、以下を実行します。

npx workers-mcp proxy

このコマンドは、MCP クライアント(Claude Desktop など)が接続できるように、ローカルプロキシを起動します。


セキュリティ

MCP サーバーを保護するには、Wrangler Secrets を使用します。

npx wrangler secret put MCP_SECRET

これにより、許可されていないアクセスを防止する共有シークレット認証の仕組みが追加されます。


まとめ

おめでとうございます!Cloudflare Workers を使用して MCP サーバーを構築し、デプロイできました。これで、機能を追加したり、新しいツールを AI アシスタントに公開したりできます。

詳しくは、Cloudflare MCP ドキュメントをご覧ください。


コメント

MCP は初めてですか?

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

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