
Cloudflareの製品別MCPサーバーで/sseが410 Goneになった:/mcpへの切り替えとClaude Codeでの見え方を確かめる
どうも!オペ部の西村祐二です!
2026年10月22日に、Cloudflareの製品別MCPサーバーが /sse の提供をやめ、/mcp だけになりました(Cloudflare Changelog)。https://docs.mcp.cloudflare.com/sse のような /sse のURLを設定したままのMCPクライアントは、接続できなくなります。
この記事では、実際に /sse と /mcp が何を返すかをcurlで確かめ、Claude Code での表示も見ます。そのうえで、設定を /mcp に切り替える手順を整理します。
製品別MCPサーバーが/sseをやめて/mcpだけになった
- 日付: 2026年10月22日
- 対象:
docs.mcp.cloudflare.comやbindings.mcp.cloudflare.comなど、*.mcp.cloudflare.comの製品別MCPサーバー - 変更:
/sseは410 Goneを返し、レスポンスに移行先の/mcpのURLが入る - 必要な対応: クライアント設定のURLを
/sseから/mcpに変える。Changelogによると、/sseでサインインしていた場合はもう一度サインインを求められる - 影響しないもの: Changelogでは、すでに
/mcpで接続している設定は影響を受けないとされている
Cloudflareのドキュメントでは、各サーバーにStreamable HTTPのエンドポイント /mcp で接続するよう案内されています。全APIを扱う Cloudflare API MCPサーバー(https://mcp.cloudflare.com/mcp)は今回の変更の対象外です。
変更を入れた cloudflare/mcp-server-cloudflare#505 によると、OAuthライブラリ(@cloudflare/workers-oauth-provider)を1.x系に上げたことが理由です。1.xではトークンを結び付けるリソースを1つしか持てません。リソースをオリジン全体にすれば /mcp と /sse の両方を保護できますが、既存の /mcp 向けの認可がすべて無効になります。そのためリソースを <origin>/mcp にし、/sse は廃止したと説明されています。リダイレクトではなく410にした理由は、リダイレクトで救えるのはAPIトークンの利用者だけで、OAuthの利用者には /mcp への移行が必要だと伝わらないためです。
試してみる
環境
- macOS 26.6.1(arm64)
- curl(macOS同梱)
- Claude Code 2.1.300
- 検証日: 2026年10月25日(日本時間)
認証情報は使っていません。Cloudflareアカウントへのログインや、OAuthの認可フローも行っていません。
1. /sseは410 Goneと移行先のURLを返す
ドキュメント検索用のサーバーで、/sse にリクエストを送りました。
curl -s -i https://docs.mcp.cloudflare.com/sse
HTTP/2 410
content-type: application/problem+json
link: <https://docs.mcp.cloudflare.com/mcp>; rel="alternate"
{"type":"https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/","title":"This MCP URL has moved to /mcp","status":410,"detail":"The /sse URL is no longer served. Update your MCP client configuration to https://docs.mcp.cloudflare.com/mcp.","url":"https://docs.mcp.cloudflare.com/mcp"}
(一部のヘッダーは省略しています)
ステータスは410で、本文はエラー内容をJSONで返すproblem+json形式(RFC 9457)です。detail と url に移行先の /mcp のURLが入り、link ヘッダーにも同じURLが rel="alternate" で付いています。ブラウザで開いても同じJSONが表示されます。

2. 17個のサーバーすべてで/sseが410になっている
cloudflare/mcp-server-cloudflare のREADMEに載っている17個のサーバーについて、/sse へのGETと、/mcp へのリクエストのステータスを並べました。/mcp には、MCPの接続開始時に送る initialize リクエストを認証なしで送っています。
curl -s -o /dev/null -w '%{http_code}\n' -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl-check","version":"0.0.1"}}}' \
https://docs.mcp.cloudflare.com/mcp
| サーバー | /sse |
/mcp(認証なし) |
|---|---|---|
| docs、blog、demo-day | 410 | 200 |
| ai-gateway、auditlogs、autorag、bindings、browser、builds、casb、containers、dex、dns-analytics、graphql、logs、observability、radar | 410 | 401 |
/sse はすべて410でした。/mcp が401を返したのはOAuthが必要なサーバーで、14個とも応答の www-authenticate ヘッダーに resource_metadata="https://<ホスト>/.well-known/oauth-protected-resource/mcp" が入っていました。
なお、17個のうち bindings、builds、observability、radar など10個は、READMEで非推奨(Deprecated servers)とされ、Cloudflare API MCPサーバーへの移行が勧められています。非推奨のサーバーを /sse で使っていた場合は、/mcp に変えるか、API MCPサーバーに移るかを選ぶことになります。
ドキュメントの製品別一覧にはAgents SDKのドキュメント用サーバー(agents.cloudflare.com/mcp)も載っていますが、こちらとAPI MCPサーバーの /sse は、試した時点で410ではなく404でした。410を返すのは *.mcp.cloudflare.com の製品別サーバーです。
3. Claude Codeでは/sseの設定が「Failed to connect」になる
MCPクライアント側でどう見えるかを、Claude Codeの claude mcp list で確かめました。テスト用のディレクトリで /sse と /mcp のサーバーを追加し、接続状態を表示しました。
claude mcp add --scope local --transport sse cf-bindings-sse https://bindings.mcp.cloudflare.com/sse
claude mcp add --scope local --transport http cf-bindings-http https://bindings.mcp.cloudflare.com/mcp
claude mcp add --scope local --transport sse cf-docs-sse https://docs.mcp.cloudflare.com/sse
claude mcp add --scope local --transport http cf-docs-http https://docs.mcp.cloudflare.com/mcp
claude mcp list
cf-bindings-sse: https://bindings.mcp.cloudflare.com/sse (SSE) - ✘ Failed to connect — HTTP 410: SSE error: Non-200 status code (410)
cf-bindings-http: https://bindings.mcp.cloudflare.com/mcp (HTTP) - ! Needs authentication
cf-docs-sse: https://docs.mcp.cloudflare.com/sse (SSE) - ✘ Failed to connect — HTTP 410: SSE error: Non-200 status code (410)
cf-docs-http: https://docs.mcp.cloudflare.com/mcp (HTTP) - ✔ Connected
/sse の2つは Failed to connect で、表示されるのは Non-200 status code (410) までです。transportを sse にしている場合、レスポンス本文の移行先URLはこの一覧には出てきませんでした。PR #505の検証表でも、SSE transportのクライアントでは Non-200 status code (410) になると記録されています。/mcp のほうは、認証が不要なdocsサーバーが Connected、OAuthが必要なbindingsサーバーが Needs authentication になりました。
URLが /sse のままでも、transportを http にして追加すると表示が変わりました。
claude mcp add --scope local --transport http cf-docs-sse-as-http https://docs.mcp.cloudflare.com/sse
claude mcp list
cf-docs-sse-as-http: https://docs.mcp.cloudflare.com/sse (HTTP) - ✘ Failed to connect — HTTP 410: Error POSTing to endpoint: {"type":"https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/","title":"This MCP URL has moved to /mcp","status":410,"detail":"The [redacted] URL is no longer served. Update your MCP client configuration to https://docs.mcp.cloudflare.com/mcp.","url":"https://docs.mcp.cloudflare.com/mcp"}
こちらは410の本文がそのまま表示され、移行先のURLを確認できます(本文中の /sse は、Claude Codeの表示では [redacted] に置き換わっていました)。Changelogには、多くのMCPクライアントが接続エラーに /mcp のURLを表示すると書かれていますが、Claude Codeでtransportが sse の設定ではステータスコードだけでした(Claude Code以外のクライアントは今回試していません)。
4. 設定を/mcpに切り替える
まず、/sse のURLが残っている設定を探します。claude mcp list はスコープ(local、project、user)を問わず設定を表示するので、ここから探すのが確実です。
claude mcp list | grep 'mcp.cloudflare.com/sse'
cf-docs: https://docs.mcp.cloudflare.com/sse (SSE) - ✘ Failed to connect — HTTP 410: SSE error: Non-200 status code (410)
見つかったサーバーがどのスコープに登録されているかは、claude mcp get の Scope で分かります。
claude mcp get cf-docs
cf-docs:
Scope: Local config (private to you in this project)
Status: ✘ Failed to connect
Issue: HTTP 410: SSE error: Non-200 status code (410)
Type: sse
URL: https://docs.mcp.cloudflare.com/sse
同じスコープを指定して削除し、transportを http(Streamable HTTP)、URLを /mcp にして追加し直します。サーバー名は、claude mcp list に表示された自分の環境の名前に置き換えます。
claude mcp remove cf-docs -s local
claude mcp add --scope local --transport http cf-docs https://docs.mcp.cloudflare.com/mcp
claude mcp list | grep cf-docs
cf-docs: https://docs.mcp.cloudflare.com/mcp (HTTP) - ✔ Connected
チームで共有している .mcp.json(projectスコープ)に書かれている場合は、ファイルの type と url を次のように書き換えて共有し直すことになります。この書き換え後の接続は、今回は確かめていません。
{
"mcpServers": {
"cf-docs": {
"type": "http",
"url": "https://docs.mcp.cloudflare.com/mcp"
}
}
}
Claude Code以外のクライアントは試していませんが、設定ファイルの場所はクライアントごとに異なるので、それぞれの設定ファイルから mcp.cloudflare.com/sse を探すことになりそうです。
検証結果の考察
- 確認できたこと: READMEに載っている17個のサーバーは、すべて同じ挙動でした。書き換え先の
/mcpのURLはレスポンスから機械的に分かります - Claude Codeでの見え方: transportが
sseの設定では、claude mcp listにNon-200 status code (410)とだけ表示され、移行先のURLは出ません。410が出たら、設定に*.mcp.cloudflare.com/sseが残っていないかを確かめるのが確実です - 公式情報と照合したこと: Changelogの「
/sseは410を返す」という説明は、curlの結果と一致しました。/mcpは認証なしのinitializeに200または401を返しており、引き続き応答しています。既存の/mcp接続が影響を受けないことまでは、今回の方法では確かめられていません。401応答のresource_metadataが/mcpを指していることは、OAuthのリソースを/mcpにしたというPRの説明と整合しています - 運用上の注意点: チームで
.mcp.jsonを共有している場合は、URLとtransportの両方を書き換えて共有し直すことになります
まとめ
Cloudflareの製品別MCPサーバーは2026年10月22日から /mcp だけになり、/sse は410 Goneと移行先のURLを返します。手元で確かめた17個のサーバーはすべてこの挙動でした。
Claude Codeでtransportを sse にしている設定では、Failed to connect と 410 だけが表示されます。claude mcp list で *.mcp.cloudflare.com/sse を見つけたら、transportを http、URLを /mcp にして追加し直し、OAuthが必要なサーバーは認可をやり直す、という流れで移行できます。
誰かの参考になれば幸いです。
参考リンク:







