3行でいうと

  • 公式のCloudflare MCPサーバーは https://mcp.cloudflare.com/mcp(READMEが recommended と付ける)で、つなぐ側の設定は {"mcpServers": {"cloudflare-api": {"url": "..."}}} の形が公式の例です。接続するとCloudflareの画面で、渡す権限を選びます。
  • 自動化では、OAuthの代わりに、必要な権限だけを持たせたAPIトークンを Authorization ヘッダーにBearerで渡せます。ユーザートークンもアカウントトークンも使えると公式は書いています。
  • 自作のリモートMCPサーバーは、npm create cloudflare@latest の雛形から作り、claude mcp add --transport http ... などでつなぐ例が公式にあります。認証は、Cloudflare Accessか第三者のOAuthです。
  • AI Searchの公開口(MCP)は、公式の例では認証なしで呼んでいます。Accessで守るには、独自ドメインを付け、既定のホスト名を無効にする必要がある、と公式は書いています。
  • 公式が書いていない画面経路(Claude側の設定画面、OAuth許可の取り消し画面など)は、この記事でも「記載が見つからない」と書いています。

この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。設定例は「公式の例の写し」と書いたものだけが公式のままで、ほかは「この記事で組んだ例(動作は確かめていません)」です。画面の表記は変わることがあるので、手元の画面と照らして読んでください。OpenAI、Anthropic、Claudeなどは、Cloudflareとは別の会社・製品で、それぞれの設定画面や規約は、この記事では読んでいません。

先に結論

前提:用語をそろえる

連携の地図(その1とその2)

連携 誰が → 誰を使う 設定する場所 載せた記事
A Claudeなどの外のAIクライアント → Cloudflareの公式MCPサーバー 外のAI側のMCP設定+Cloudflareの許可画面 07(この記事)
B OpenAIのResponses API → Cloudflareの公式MCPサーバー OpenAIの呼び出し側+Cloudflareのトークン 07
C Claude Code、Cursor、Windsurf等 → 自作のMCPサーバー(Workersに公開) 外のAI側の設定+自作サーバー 07
D 外のAIや道具 → AI Searchの公開口(MCP) AI SearchのSettings 07
E 自分のアプリ → AI Gateway → OpenAI/Anthropic等 ゲートウェイの設定、アプリの呼び出し 08
F OpenAI互換のコード → Workers AI 呼び出し側のベースURL 08
G CloudflareのAgent → 外のMCPサーバー Agentのコード 08

連携A:外のAIクライアントから、CloudflareのMCPサーバーを使う(公式)

A-1 どのサーバーがあるか

公式の「Cloudflare MCP Servers」のページとGitHubのREADMEによると、接続先はすべて /mcp で終わるStreamable HTTPです。

サーバー 公式の説明(要約) URL
Cloudflare API Cloudflare APIの全体と開発者向けドキュメント。ツールは search()、execute()、docs()(ツール名はドキュメントのページの記述で、READMEには出てきません)。READMEは recommended と付ける。ドキュメントのページは「the only MCP server you need」と書く https://mcp.cloudflare.com/mcp
Documentation Cloudflareの参考情報 https://docs.mcp.cloudflare.com/mcp
Container サンドボックスの開発環境 https://containers.mcp.cloudflare.com/mcp
Browser Run ページの取得、Markdown、スクリーンショット https://browser.mcp.cloudflare.com/mcp
Digital Experience Monitoring 重要なアプリの状況 https://dex.mcp.cloudflare.com/mcp
Cloudflare One CASB SaaSの設定ミスの発見 https://casb.mcp.cloudflare.com/mcp
Agents SDK Documentation Agents SDKのドキュメント(ドキュメントのページの表のみ。READMEの表にはない) https://agents.cloudflare.com/mcp
Cloudflare Blog(READMEのみ) ブログの検索と閲覧 https://blog.mcp.cloudflare.com/mcp
Demo Day(READMEのみ) READMEの表に、最小のCloudflare MCPサーバーの実演(原文:Demonstrate a minimal Cloudflare MCP server)と説明がある https://demo-day.mcp.cloudflare.com/mcp

READMEは、広いAPIの範囲にはCloudflare APIのサーバー(コードの実行を通して)、1つの製品の中で型の決まったツールを使いたいときは分野別のサーバー、という使い分けを書いています。ドキュメントのページは、分野別のサーバーを「任意」の位置づけにしています(READMEとドキュメントで強調の置き方が違います)。ドキュメントのページには「Most people should just use the main Cloudflare API MCP server.」とも書かれています。

READMEが「非推奨」にしているのは、AI Gateway、Audit Logs、AutoRAG、DNS Analytics、GraphQL、Logpush、Observability、Radar、Workers Bindings、Workers Buildsの各サーバーで、Cloudflare APIのサーバーへ移るよう書かれています。AI GatewayとAutoRAGの名前があるため、古い解説に当たらないよう注意してください(今回読んだドキュメントのページには、非推奨の記述はありませんでした)。

A-2 設定の書き方(公式の例の写し)

MCPクライアントの設定に、サーバーのURLを書きます。公式の「Cloudflare MCP Servers」のページの例です。

{
    "mcpServers": {
        "cloudflare-api": {
            "url": "https://mcp.cloudflare.com/mcp"
        }
    }
}

公式のページは、クライアントとして Claude、Windsurf、AI Playground、MCP対応のSDKを挙げ、ほかのクライアントごとの設定は「GitHubのリポジトリを参照」と書いています。READMEは、「MCPのリモート接続に対応したクライアントを、表のURLに直接つなぐ」趣旨を書き、Claude Desktopの設定の例や mcp-remote の説明は載せていません。Claude CodeやClaude Desktopの設定の画面・ファイルの場所は、Cloudflareの資料には書かれていません。 Anthropic側の資料は、この記事では読んでいません。

A-3 手順:つないで、権限を選ぶ(公式の説明の順)

  1. 使うAIクライアントのMCP設定に、上の url を書きます(設定する場所はクライアントごとに違います。上のとおり、Cloudflareの資料にはありません)。
  2. クライアントがサーバーに接続します。
  3. Cloudflareの認可の画面に移ります(OAuth、公式の既定の方式)。
  4. その画面で、エージェントに渡す権限を選びます(公式の表現:「select the permissions to grant to your agent」)。
  5. 許可すると、クライアントの側でCloudflareのツールが使えるようになります。

期待される結果(公式の記述):search()、execute()、docs() のツールが使えます。画面の文言や、許可の選択肢の名前は、読んだページには載っていません。

A-4 手順:OAuthではなくAPIトークンで渡す(自動化向け)

公式は、CI/CDや自動化では、必要な権限を持つCloudflare APIトークンを作り、Authorization ヘッダーにBearerとして渡せる、と書いています。ユーザートークンもアカウントトークンも使えると書かれています。

  1. 05の段階4の手順でトークンを作ります。権限は、使うサーバーで必要な分だけにします(Cloudflare APIサーバーの場合の必要な権限一覧は、読んだページには載っていません)。
  2. クライアントが、リモートMCPのヘッダーを設定できるなら、Authorization: Bearer <API_TOKEN> を付けます。ヘッダーの設定の書き方は、クライアントごとに違い、Cloudflareの資料には例がありません。

A-5 何が渡るか

渡る先・内容 公式の記述 公式に書かれていないこと
外のAIが見られる範囲 OAuthで選んだ権限、またはAPIトークンの権限の範囲 許可の選択肢の一覧
execute() の位置づけ READMEは「コードの実行を通して、広いAPIの範囲を扱う」と説明 実行のログの残り方
外のAIに送られた内容の扱い ―― そのAIの提供元(各社)の規約の話で、Cloudflareの資料からは分からない

A-6 外し方

外すもの 方法 出どころ
クライアント側の接続 設定からこのサーバーの項目を消す 画面・コマンドはクライアントごとで、Cloudflareの資料に記載が見つからない
OAuthで与えた許可 ―― 取り消す画面は、読んだページに記載が見つからない
APIトークン方式の鍵 ダッシュボードでトークンを削除(05の段階4) トークンの作成・削除の手順
Wranglerのログイン npx wrangler logout(Wranglerの認証。MCPの許可とは別物) 05の手順C

A-7 うまくいかないときの確認点

A-8 そのほか:プラグイン

公式のドキュメントのページは、Claude Code、Cursorなどのエージェント向けに「Cloudflare Skills」のプラグインがあると書いています。ページには、Cloudflareの公式MCPサーバーと、場面に合わせた手順(スキル)やスラッシュコマンドをまとめたもの、という趣旨の説明があります。入れ方として、ページは4つを挙げています(Claude Codeでは cloudflare/skills のリポジトリからプラグインのマーケットプレイスを追加する、Cursorのマーケットプレイスまたは設定でGitHubのルールを追加する、npx skills add を使う、リポジトリを複製して各エージェントのスキルのフォルダへ写す)。コマンドの正確な形は、公式ページで確認してください。この記事では組み直しません。

連携B:OpenAIのResponses APIから、CloudflareのMCPサーバーを使う(READMEの記述)

READMEによると、OpenAIのResponses APIから使うときは、そのサーバーが必要とする権限を持つAPIトークンを、ダッシュボードで作って渡します。READMEの例は Browser Run のサーバーで、必要な権限はスクリーンショットでしか示されておらず、テキストでは読めていません。そのため、この記事では権限名を書きません。

連携C:自分で作ったMCPサーバーを、Claude Codeなどにつなぐ(公式のガイド)

C-1 作って、手元で動かす(公式の「Build a Remote MCP server」)

  1. 雛形を作ります(公式の写し)。
npm create cloudflare@latest -- remote-mcp-server-authless --template=cloudflare/ai/demos/remote-mcp-authless

質問には、AGENTS.mdは No、gitは No、まだ公開しないので No を選ぶ、と公式は書いています。

  1. フォルダに入って起動します。
cd remote-mcp-server-authless
npm start

口は http://localhost:8788/mcp です。ブラウザで /mcp を開いても動きません(MCPのやりとりの形式を待つため)、と書かれています。

  1. 公式の確認ツールで試します。
npx @modelcontextprotocol/inspector@latest

http://localhost:5173 を開き、サーバーのURLを入れて Connect、List Tools を選びます。

  1. 公開します。
npx wrangler@latest deploy

公開後の口は https://remote-mcp-server-authless.your-account.workers.dev/mcp の形です。ダッシュボードの「Deploy to Workers」ボタンで、Gitのリポジトリを作って、main への反映のたびに自動で公開する方法も書かれています。

公式のガイドは、この雛形が、非推奨とされる McpAgent の方式を使っていて、新しく作るなら mcp-worker の例から始めるよう書いています(03を参照)。

C-2 つなぐ:Claude Code(公式の例の写し)

claude mcp add --transport http math https://remote-mcp-server-authless.your-account.workers.dev/mcp
claude mcp list

math は公式の例の名前です。公式のガイドは、続けてClaudeに「Could you use the math tool to add 23 and 19?」のように頼む例を書いています。認証が要るサーバーでは、ブラウザで認可の流れを済ませる、と「Test a Remote MCP Server」のページにあります。

C-3 つなぐ:Cursor、Windsurf、AI Playground(公式の「Test a Remote MCP Server」)

Cursor:プロジェクトの .cursor/mcp.json、または全体の ~/.cursor/mcp.json に書きます(公式の例の写し。例のURLは http:// で書かれています。公開したサーバーでは、自分のURLを確認してください)。

{
    "mcpServers": {
        "my-server": {
            "url": "http://my-mcp-server.my-account.workers.dev/mcp"
        }
    }
}

Windsurf:mcp_config.json に書きます。キー名が serverUrl で、Cursorと違います(公式の例の写し)。

{
    "mcpServers": {
        "my-server": {
            "serverUrl": "http://my-mcp-server.my-account.workers.dev/mcp"
        }
    }
}

AI Playground(Cloudflareの画面):Workers AI Playgroundで、MCPサーバーのURLを入れて Connect を選び、認証があれば済ませると、ツールが出て、モデルがチャットで使えます。MCP Inspector:認証が要るときは、Open Auth settings から Quick OAuth Flow を選び、済ませてから Connect、List tools です。

Claude Desktopの設定は、公式のこの2つのページに書かれていません。

C-4 認証を付ける(公式の2つの選択肢)

方法 公式の説明
Cloudflare Access 利用者は、自分のIDプロバイダー経由でサインインし、Accessのポリシーを通る必要がある。手順は、公式の「Secure MCP servers with Access for SaaS」を参照(この記事では読めていない)
第三者のOAuth 2.0 GitHub、Google、Auth0など(公式の例。ほかの提供元の名前は、今回の確認では読み取れていません)

GitHubのOAuthの例(公式の順):

  1. npm create cloudflare@latest -- my-mcp-server-github-auth --template=cloudflare/ai/demos/remote-mcp-github-oauth で雛形を作る。
  2. GitHubのOAuth Appを2つ作る(手元用はコールバックが http://localhost:8788/callback、本番用)。
  3. 手元用には、.env に GITHUB_CLIENT_ID と GITHUB_CLIENT_SECRET を入れる。
  4. 本番用には、npx wrangler secret put で GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET、COOKIE_ENCRYPTION_KEY を設定し、KVの名前空間 npx wrangler kv namespace create "OAUTH_KV" を作って、IDを wrangler.jsonc の OAUTH_KV の欄に入れる。
  5. npm run deploy で公開する。

C-5 何が渡るか/外し方/確認点

連携D:AI Searchの公開口(MCP)を、外のAIにつなぐ(公式の「AI Search: MCP」)

D-1 公開口をつくる(公式の順)

  1. ダッシュボードで AI Search を開き、インスタンスを選びます。
  2. Settings > Public Endpoint へ進みます(同じページの独自ドメインの節には「Public Endpoints」という表記もあり、実際のメニュー名は手元で確かめてください)。
  3. Enable Public Endpoint をオンにします。
  4. 公開口のURLをコピーします。

URLの形(公式):

https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/mcp

複数のインスタンスをまとめた「名前空間」の口は ns- で始まる https://ns-<NAMESPACE_ENDPOINT_ID>.search.ai.cloudflare.com/mcp です。ツールとリクエストの形は個別の口と同じ、と公式は書いています。どのインスタンスを対象にできるか(許可の仕組み)は、今回の確認では読み取れていません。公式ページで確認してください。

D-2 使う(公式の例の写し)

ツールは search の1つで、引数は query(文字列)です(ほかの引数は、ページには載っていません)。Accept ヘッダーには application/json, text/event-stream が要ります。

curl https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search",
      "arguments": {
        "query": "How do I configure AI Search?"
      }
    }
  }'

公式のページは、MCPクライアントの設定ファイルの例は載せていません。また、完全なクライアントが必要とする初期化のやりとり(ハンドシェイク)の例も載せておらず、MCPの仕様かクライアントの資料を見るよう、という趣旨でした。

D-3 認証をつける(公式の記述)

  1. 同じアカウントのゾーンに、独自ドメインを付けます(有効な公開口が要ります)。
  2. その独自ドメインの前に、Cloudflare Accessを置きます。
  3. クライアントは、Accessのサービストークンを、CF-Access-Client-Id と CF-Access-Client-Secret のヘッダーで送ります。
  4. あわせて default_domain_enabled を false にします。Accessが守るのは独自ドメインだけなので、そうしないと、最初に作られたホスト名(<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com)は認証なしのリクエストに答え続ける、と公式は書いています。この設定をどの画面・どのAPIで行うかは、公式のこのページには書かれていません(公式で確認できていない)。

D-4 渡るデータ/外し方/確認点

渡るデータのまとめ(この記事の連携)

連携 渡る先 渡る内容 公式の記述の有無
A・B 外のAIの提供元 許可した範囲のCloudflareの情報 提供元での扱いは、Cloudflareの資料に記載なし
C つないだAI 自作サーバーのツールの入出力 作る人が決める
D 問い合わせた側 検索結果 認証なしの例/Accessで守る手順あり

AI Gateway経由で他社に渡るデータ、OpenAI互換、Agentから外のMCPへ渡るデータは、08にあります。

つまずきと直し方

症状 公式に書かれている原因・直し方
MCPの途中で「interrupted」 ツールの連鎖で長くなった可能性。質問を短くする・分ける(README)
/sse で 410 Gone 古い経路。READMEは、既存のURLをStreamable HTTPで使う設定にするか、/mcp に切り替えるかの2つを示す(README)
AI Searchの口にcurlが通らない Accept に application/json, text/event-stream が要る(D-2)
自作MCPをブラウザで開いても動かない MCPのやりとり用で、ブラウザでは動かない(C-1)
古い解説のサーバーに接続している READMEの非推奨の一覧と照らし、mcp.cloudflare.com に移す(A-1)

気をつけること

出典