PR

【2025年版】Cloudflare WorkersでMCPサーバーをデプロイ – 実用例で理解する完全ガイド

MCPとは?

MCP(Model Context Protocol)は、AIアシスタント(Claude、Cursor等)が外部サービスと連携するための新しい標準規格です。2025年3月にCloudflareが正式サポートを発表しました。

必要な準備

  • Cloudflareアカウント(無料)
  • GitHubアカウント(無料)
  • Node.js(バージョン18以上)
  • Claude Desktop または Cursor

ツールのインストール

# Wrangler CLIのインストール
npm install -g wrangler

# インストール確認
wrangler --version

ステップ1: プロジェクト作成

# 新しいプロジェクトを作成
mkdir my-mcp-server
cd my-mcp-server

# Cloudflare Workersプロジェクトを初期化
npm create cloudflare@latest

# 選択項目:
# - Template: Hello World worker
# - TypeScript: Yes
# - Deploy: No

ステップ2: MCPライブラリのインストール

# MCPライブラリをインストール
npm install workers-mcp

ステップ3: コードの作成

src/index.tsファイルを編集:

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

export default class MyMCPServer extends WorkerEntrypoint<Env> {
  /**
   * 挨拶機能
   * @param name - 名前
   * @return 挨拶メッセージ
   */
  async greetUser(name: string = "世界"): Promise<string> {
    return `こんにちは、${name}さん!`
  }

  /**
   * ランダム数値生成
   * @return ランダム数値
   */
  async getRandomNumber(): Promise<string> {
    const num = Math.floor(Math.random() * 1000)
    return `ランダム数値: ${num}`
  }

  /**
   * 計算機能
   * @param a - 数値1
   * @param b - 数値2
   * @param operation - 演算子
   * @return 計算結果
   */
  async calculate(a: number, b: number, operation: string): Promise<string> {
    let result: number
    switch (operation) {
      case 'add': result = a + b; break
      case 'subtract': result = a - b; break
      case 'multiply': result = a * b; break
      case 'divide': 
        if (b === 0) return "エラー: ゼロ除算"
        result = a / b; break
      default: return "エラー: 不正な演算子"
    }
    return `結果: ${a} ${operation} ${b} = ${result}`
  }

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

interface Env {}

ステップ4: デプロイ

# Cloudflareにログイン
wrangler login

# デプロイ実行
npm run deploy

ステップ5: Claude Desktopとの接続

設定ファイル(claude_desktop_config.json)を編集:

{
  "mcpServers": {
    "my-mcp-server": {
      "command": "npx",
      "args": ["mcp-remote", "https://あなたのURL.workers.dev/sse"]
    }
  }
}

設定ファイルの場所:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

動作確認

Claude Desktopを再起動後、以下をテスト:

  • 「挨拶してください」
  • 「ランダム数値を生成してください」
  • 「10 + 5を計算してください」

トラブルシューティング

  • デプロイ失敗: wrangler whoamiでログイン確認
  • 認識されない: 設定ファイルのパスとJSON形式を確認
  • 関数が動かない: URLの末尾に/sseがあるか確認

まとめ

Cloudflare WorkersでMCPサーバーを簡単にデプロイできました。この基盤を使って、データベース連携や外部API連携など、さらに高度な機能を追加してみてください。

参考リンク:

タイトルとURLをコピーしました