obi1.dev

Cloudflare MCPポータルで組織のMCPサーバーを一元管理してみた

cloudflare mcp cloudflarewarp cloudflareaccess

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 チェック と進み、チェックを追加する をクリックします。

Cloudflare One Client チェックの設定画面

チェックの種類として GatewayWARP の2種類があります。

種類説明
WARPWARPアプリが起動して接続されていれば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サーバーを登録しました。

MCPサーバーの追加画面

設定内容は以下のとおりです。

項目
サーバー名Cloudflareドキュメント検索
サーバーIDcloudflare-docs
HTTP URLhttps://docs.mcp.cloudflare.com/mcp
Cloudflare Gateway経由ルーティングON

「Cloudflare Gatewayを通じてトラフィックをルーティング」をONにしておくことで、MCPサーバーへのトラフィックをGatewayでフィルタリング・記録できます。なお、公式ドキュメントには以下の記載があります。

このMCPサーバーへの送信トラフィックをCloudflare Gatewayを通じてルーティングして、検査とポリシーの適用を行います。サーバーがポータル経由でアクセスされるかどうかに関係なく適用されます。

登録が完了すると、ツール数やプロンプト数が表示され、ステータスが「準備完了」になります。

MCPサーバー登録完了

Step 4: MCPサーバーポータルの設定

続いて、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)を入力します。

Claude Desktopへのコネクタ追加

ハマりどころ: 認証エラーとその解決方法

コネクタを追加してアクセスすると、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サーバーの認可画面が表示され、無事に接続できました。

MCPサーバーの認可画面

「Cloudflareドキュメント検索」が Connected になっていることが確認できます。

利用できるツールの確認

Claude Desktopのコネクタ設定を確認すると、登録したMCPサーバーのツールが認識されています。

Claude Desktopでのツール確認

読み取り専用ツール(2)

  • Get Pages migration guide
  • Search Cloudflare docs

その他のツール(3)

  • Portal list servers
  • Portal toggle servers
  • Portal toggle single server

MCPサーバー自体のツールに加えて、ポータルの管理ツールも提供されていることがわかります。

動作確認

実際にCloudflare WorkersのドキュメントをMCPサーバー経由で検索してみました。

MCPサーバーを使った検索

Search Cloudflare docs ツールが呼び出され、正常に応答が返ってきました。

ログの確認

AIコントロールのログ画面では、誰がいつどのMCPサーバーのどの機能を使ったかを確認できます。

MCPサーバーのログ

時刻・ステータス・サーバー・ユーザー・使用した機能・実行時間がすべて記録されています。組織内でのMCP利用状況の把握に役立ちそうです。

まとめ

Cloudflare MCPポータルを使うことで、組織で利用するMCPサーバーをアクセス制御付きで一元管理できることが確認できました。

最大のハマりどころは、デバイスポスチャチェックにGatewayを使う場合はWARPがGatewayモードで動作している必要がある点です。SAMLによるID認証だけでは条件を満たせず、https://1.1.1.1/cdn-cgi/tracegateway=on を確認することが確実な解決策です。

現時点ではベータ版ということもあり、ログの絞り込みや詳細な分析機能はまだ限られている印象ですが、組織内で許可するMCPサーバーをここで管理し、ポータル経由以外からのアクセスを制限するというユースケースは十分に実現できそうです。

参考