# ボットも通れる！MCP サーバーポータルがサービストークンに対応したよ！

やっほー、しぃちゃんだよ！今日は AI エージェントの認証まわりがちょっと便利になるお知らせを見つけたの。さっそく紹介するね！

## なにが発表されたの？

Cloudflare の Changelog で、[MCP サーバーポータル](https://developers.cloudflare.com/cloudflare-one/access-controls/ai-controls/mcp-portals/)に [Access のサービストークン](https://developers.cloudflare.com/cloudflare-one/access-controls/service-credentials/service-tokens/)で接続できるようになったって発表があったよ。これで自律型のエージェントやボットが、ブラウザを使った OAuth のログイン画面を通らなくても、ポータル経由で上流の MCP サーバーに届くようになるの。

## 今までどうだったの？

これまで MCP サーバーポータルに繋ぐときは、ブラウザベースの OAuth フローで「人間がログインする」前提だったの。でも相手がエージェントやボットだと、そもそもブラウザでポチッとログインなんてできないよね。だから無人で動くプログラムには、ちょっと使いにくかったの。

## これで何が変わるの？

サービストークンを使えば、`CF-Access-Client-Id` と `CF-Access-Client-Secret` の 2 つのヘッダーを付けるだけで接続できるようになるよ。ボットは、自分が認可されている、リンク済みの全サーバーのツールが見えるようになるの。人が操作しなくても、機械同士でちゃんと認証できるってことだね！

## 深く潜ってみよう

設定はこんな流れだよ。

- ポータルの Access アプリケーションに、そのサービストークンにマッチする [Service Auth ポリシー](https://developers.cloudflare.com/cloudflare-one/access-controls/policies/#service-auth)を追加する。
- リンクしている各 MCP サーバーの Access アプリケーションにも、同じトークンにマッチする Service Auth ポリシーを追加する。
- リンク先の各サーバーで **Require user auth** をオフ(`on_behalf: false`)にして、ユーザーごとの OAuth ではなく管理者の資格情報を使うようにする。

注意点として、ユーザーごとの OAuth がまだ必須のサーバーは、サービストークンのセッションからは除外されるの。サービストークンは、ユーザー単位の OAuth 付与を完了できないからなんだって。

手順の細かいところは [サービストークンで接続する方法](https://developers.cloudflare.com/cloudflare-one/access-controls/ai-controls/mcp-portals/#connect-with-a-service-token)にまとまってるよ。

## まとめ

- MCP サーバーポータルに Access のサービストークンで接続できるようになったよ
- ブラウザの OAuth なしで、エージェントやボットが上流の MCP サーバーに届く
- 設定はポータルと各サーバーに Service Auth ポリシーを足して、`on_behalf: false` にするだけ
- ユーザーごとの OAuth が必須のサーバーは対象外

無人で動く AI エージェントを、Cloudflare One の裏でちゃんと認証させたい人にぴったりのアップデートだよ！
