Cloudflare MCPポータルで組織のMCPサーバーを一元管理してみた
Cloudflare AccessにMCPポータルという機能があることを知り、実際に試してみました。組織で使うMCPサーバーを一元管理し、Cloudflare One Clientが有効になっているデバイスからのみアクセスを許可する設定です。認証まわりではハマりどころがあったので、同じ問題に当たった方の参考になれば幸いです。
Cloudflare MCPポータルとは
Cloudflare MCPポータルは、Cloudflare Zero Trustの「AIコントロール」機能の一部です。組織で利用するMCPサーバーを登録・管理し、単一のエンドポイントを通じてアクセスを提供します。
公式ドキュメントによると、MCPポータルはCloudflare Zero Trustのアクセス制御と組み合わせることで、組織のAIツールへのアクセスを安全に管理できる機能です。
今回やりたかったことは以下の2点です。
- Cloudflare One Clientが有効になっているデバイスからのみアクセスを許可する
- 組織内のMCPサーバーをポータル経由で管理し、利用ログを記録する
前提条件
- Cloudflare Zero Trustのアカウントがあること
- Cloudflare One Client(WARPクライアント)がインストールされていること
- デバイスが組織のZero Trustに登録されていること
Step 1: デバイスポスチャチェックの設定
まず、Cloudflare One Clientが有効になっているデバイスのみアクセスを許可するための設定をします。
Zero Trustのコンソールで 再利用可能なコンポーネント → ポスチャ チェック → Cloudflare One Client チェック と進み、チェックを追加する をクリックします。

チェックの種類として Gateway と WARP の2種類があります。
| 種類 | 説明 |
|---|---|
| WARP | WARPアプリが起動して接続されていればOK |
| Gateway | 組織に登録されたデバイスであることも検証する(より厳格) |
今回は組織デバイスの確認まで行う Gateway を選択しました。
Step 2: アクセスポリシーの作成
次に、Step 1で作成したデバイスポスチャチェックを使ったアクセスポリシーを作成します。
Zero Trustコンソールの 再利用可能なポリシー → ポリシーを追加する から新しいポリシーを追加します。ルールとして「Cloudflare One Client」のチェックタイプに「Gateway」を設定します。これにより、Gatewayを通過したデバイスのみがアクセスを許可されます。
なお、ポリシーはMCPサーバー登録フォーム内からも作成できます。

Step 3: MCPサーバーの登録
Zero Trustダッシュボードの AIコントロール → MCPサーバー → MCPサーバーを追加する からサーバーを登録します。
今回はCloudflareの公式ドキュメント検索MCPサーバーを登録しました。

設定内容は以下のとおりです。
| 項目 | 値 |
|---|---|
| サーバー名 | Cloudflareドキュメント検索 |
| サーバーID | cloudflare-docs |
| HTTP URL | https://docs.mcp.cloudflare.com/mcp |
| Cloudflare Gateway経由ルーティング | ON |
「Cloudflare Gatewayを通じてトラフィックをルーティング」をONにしておくことで、MCPサーバーへのトラフィックをGatewayでフィルタリング・記録できます。なお、公式ドキュメントには以下の記載があります。
このMCPサーバーへの送信トラフィックをCloudflare Gatewayを通じてルーティングして、検査とポリシーの適用を行います。サーバーがポータル経由でアクセスされるかどうかに関係なく適用されます。
登録が完了すると、ツール数やプロンプト数が表示され、ステータスが「準備完了」になります。

Step 4: MCPサーバーポータルの設定
続いて、MCPポータル自体の設定をします。MCPサーバーの登録完了バナーに表示されている「MCPサーバーポータルを追加します」のリンクから設定できます。

ポータルにはStep 3で登録したMCPサーバーと、Step 2で作成したアクセスポリシーを紐づけます。カスタムドメインも設定できるので、今回は mcp.obi1.dev を設定しました。
Step 5: Claude Desktopから接続する
Claude Desktopのコネクタ設定に、ポータルのURLを追加します。「カスタムコネクタを追加」を選び、名前とURL(https://mcp.obi1.dev/mcp)を入力します。

ハマりどころ: 認証エラーとその解決方法
コネクタを追加してアクセスすると、Cloudflare Accessの認証画面が表示されました。しかし、Google WorkspaceのSAML認証でログインしようとすると、「That account does not have access.」 というエラーになってしまいました。

原因
アクセスポリシーの条件が Gateway(デバイスポスチャチェック) であるため、Google WorkspaceのSAML認証でIDを証明しても条件を満たすことができません。GatewayチェックはIDプロバイダーによる認証とは別に、デバイスがCloudflare Gatewayを通じてトラフィックをルーティングしているかどうかを確認するものです。
解決方法
WARPクライアントが Gatewayモード で動作していることを確認する必要があります。
Zero TrustコンソールのSettingsから 設定 → WARP クライアント → トラフィックの設定 を開き、「Secure Web Gatewayによるトラフィックのプロキシを許可する」をONにします。

この設定をONにした後、WARPクライアントをいったん切断して再接続します。
Gateway状態の確認方法
https://1.1.1.1/cdn-cgi/trace にアクセスすると、現在のWARPとGatewayの接続状態をテキストで確認できます。
warp=on
gateway=on
gateway=off になっている場合は、上記の設定が有効になっていないか、WARPの再接続が必要です。gateway=on になっていることを確認してから再度認証を試みてください。
接続成功
Gatewayが有効な状態で再度アクセスすると、MCPサーバーの認可画面が表示され、無事に接続できました。

「Cloudflareドキュメント検索」が Connected になっていることが確認できます。
利用できるツールの確認
Claude Desktopのコネクタ設定を確認すると、登録したMCPサーバーのツールが認識されています。

読み取り専用ツール(2)
Get Pages migration guideSearch Cloudflare docs
その他のツール(3)
Portal list serversPortal toggle serversPortal toggle single server
MCPサーバー自体のツールに加えて、ポータルの管理ツールも提供されていることがわかります。
動作確認
実際にCloudflare WorkersのドキュメントをMCPサーバー経由で検索してみました。

Search Cloudflare docs ツールが呼び出され、正常に応答が返ってきました。
ログの確認
AIコントロールのログ画面では、誰がいつどのMCPサーバーのどの機能を使ったかを確認できます。

時刻・ステータス・サーバー・ユーザー・使用した機能・実行時間がすべて記録されています。組織内でのMCP利用状況の把握に役立ちそうです。
まとめ
Cloudflare MCPポータルを使うことで、組織で利用するMCPサーバーをアクセス制御付きで一元管理できることが確認できました。
最大のハマりどころは、デバイスポスチャチェックにGatewayを使う場合はWARPがGatewayモードで動作している必要がある点です。SAMLによるID認証だけでは条件を満たせず、https://1.1.1.1/cdn-cgi/trace で gateway=on を確認することが確実な解決策です。
現時点ではベータ版ということもあり、ログの絞り込みや詳細な分析機能はまだ限られている印象ですが、組織内で許可するMCPサーバーをここで管理し、ポータル経由以外からのアクセスを制限するというユースケースは十分に実現できそうです。