CloudflareとClaude Codeを連携させてみた

CloudflareとClaude Codeを連携させてみた

Cloudflareのドキュメントを参考にClaude CodeにCloudflare plugin(SkillsとMCPサーバ)をインストールして使ってみました。MCPサーバのCloudflareユーザ認証情報を変更する方法や、APIトークンで認証する方法についても確認しています。
2026.09.29

はじめに

清水です。CloudflareのドキュメントAgent setupの項目にならい、CloudflareとClaude Codeを連携させてみました。

ドキュメントの手順で設定することで、Claude Code上でCloudflare SkillsとMCPサーバが利用可能になります。MCPサーバ利用時の認証方法やユーザの切り換え方法についても確認してみました。

Agent setupドキュメントを確認

まずは本ブログエントリで対象としているAgent setupまでの導線を確認してみます。Cloudflareのダッシュボードにアクセスし操作するアカウントを選択します。アカウント ホームの画面で冒頭に Onboard your agent to Cloudflare の表示がありますね。

cc01

ここはボタンになっていて、押下すると以下のセットアッププロンプトがクリップボードにコピーされます。

Fetch and execute the appropriate instructions to set me up for Cloudflare from https://developers.cloudflare.com/agent-setup/prompt.md

指定のURL https://developers.cloudflare.com/agent-setup/prompt.md からセットアップに必要な指示を取得し実行する、という内容ですね。実際に指定のURLのMarkdownドキュメントを確認すると、Coudflareプラットフォーム上でAI開発環境を構築・展開するための公式の手順としてCloudflare SkillsとMCPサーバーのインストール方法がまとめられています。

cc02
引用元: https://developers.cloudflare.com/agent-setup/prompt.md

内容的にはこのセットアッププロンプトをClaude Codeなどエージェントの入力にすればよさそうです。ただ、今回はどんなことをやっているのか、という点も確認したかったため、このドキュメントを少し深追いしてみました。指定URLの1つ上位の階層、 https://developers.cloudflare.com/agent-setup/ を確認してみると、ブログエントリ冒頭で記載したURLのAgent Setupページに遷移します。本ブログエントリではエージェントとしてClaude Codeを利用しているので、Claude CodeのView guideのリンクから進みます。

cc03
引用元: Agent setup · Agent setup docs

Claude Code + Cloudflare · Agent setup docs のページに遷移します。Claude Codeのインストール方法からCloudflare pluginのインストール方法、プロンプト例までがまとまっています。以下、本ブログエントリではこのページの手順にしたがって、cloudflare plugin(Cloudflare SkillsとMCPサーバ)のインストールを行っていきます。

cc14
引用元: Claude Code + Cloudflare · Agent setup docs

Cloudflare plugin(SkillsとMCP)のインストール

それでは実際にドキュメントの内容に従い、Claude CodeにCloudflare plugin(Cloudflare SkillsとCloudflare MCPサーバ)をインストール、セットアップしていきましょう。環境はmacOSで、Claude Codeはインストール済みとして進めます。

基本的な内容は以下2つのコマンドの実行ですが、それぞれ詳細を確認していきます。

/plugin marketplace add cloudflare/skills
/plugin install cloudflare@cloudflare

Plugin Marketplaceの追加

まずは1つ目のコマンド、/plugin marketplace add cloudflare/skillsについてです。GitHubのcloudflare/skillsリポジトリをClaude Codeの「プラグインマーケットプレイス」として追加する作業になります。

実行すると以下のようにSuccessfully added marketplace: cloudflareと表示されます。

❯ /plugin marketplace add cloudflare/skills
  ⎿  Successfully added marketplace: cloudflare

実行自体はシンプルですね。ここでは上記1つ目のコマンド実行後の、マーケットプレイスの状態について確認してみます。

ターミナルからclaude plugin marketplace listコマンドを実行すると、cloudflare/skillsが表示されますね。

[shimizu.toshiya@classmethod] [~/Works/ClaudeCode/CloudflareAgentSetup]
 % claude plugin marketplace list
Configured marketplaces:

  ❯ claude-plugins-official
    Source: GitHub (anthropics/claude-plugins-official)

  ❯ cloudflare
    Source: GitHub (cloudflare/skills)

また/pluginコマンドから参照できるプラグイン管理メニューのMarketplacesタブでも、cloudflare/skillsが確認できる状況となります。

   Manage marketplaces

   ❯ + Add Marketplace

     ● ✻ claude-plugins-official ✻
       anthropics/claude-plugins-official
       296 available • Updated 9/14/2026

     ● cloudflare
       cloudflare/skills
       1 available • Updated 9/14/2026

Pluginのインストール

マーケットプレイスへの cloudflare/skills 登録後、続いてプラグインをインストールします。コマンド /plugin install cloudflare@cloudflare を実行するとプラグインの内容とともに、インストール範囲を指定するよう促されます。今回は Install for you, in this repo only (local scope) を選択しました。

   Plugin Details

   cloudflare

   Build, test, and deploy applications on Cloudflare with platform guidance
   Skills and the Cloudflare MCP server.

   By: Cloudflare

   Will install:
   · Components will be discovered at installation

   ⚠ Make sure you trust a plugin before installing, updating, or using it.
     Anthropic does not control what MCP servers, files, or other software
     are included in plugins and cannot verify that they will work as
     intended or that they won't change. See each plugin's homepage for more
     information.

     Install for you (user scope)
     Install for all collaborators on this repository (project scope)
   > Install for you, in this repo only (local scope)
     Back to plugin list

インストール後、以下のように Installed cloudflare. Plugin is now active. と表示されます。

❯ /plugin install cloudflare@cloudflare
  ⎿  ✓ Installed cloudflare. Plugin is now active.

インストール範囲を選択する必要はありますが、こちらも実行自体はシンプルですね。この2つ目のコマンド実行後のプラグインの状態についても確認しておきましょう。

ターミナルからclaude plugin listコマンドを実行すると、以下のように cloudflare@cloudflare が表示されます。

[shimizu.toshiya@classmethod] [~/Works/ClaudeCode/CloudflareAgentSetup]
 % claude plugin list
Installed plugins:

  ❯ cloudflare@cloudflare
    Version: 1.0.0
    Scope: local
    Status: ✔ enabled

またClaude Code上で/plugin listコマンドを実行しても、Installed pluginsの項目でcloudflare@cloudflareが確認できる状況となります。

❯ /plugin list
  ⎿  Installed plugins:
       • cloudflare@cloudflare (v1.0.0, local) ✔ enabled

MCPサーバの認証

Cloudflareプラグインのインストールが完了しました。続いてCloudflare MCPサーバに対して認証を行います。

Claude Codeを実行して/pluginコマンドを入力、プラグイン管理メニューのInstalledタブを確認します。

   Plugins  Discover   Installed   Marketplaces   Errors   Stats

   ╭─────────────────────────────────────────────────────────────────────────
   │ ⌕ Search…
   ╰─────────────────────────────────────────────────────────────────────────

     Needs attention
   ❯ cloudflare MCP · △ Enter to auth

       Local
     cloudflare Plugin · cloudflare · ✔ enabled · 14 skills · 0 uses

       → Show disabled (1)

Cloudflare MCPという項目がありますね。Enter to authと表示されています。このCloudflare MCPを選択すると、以下のように認証するよう促されます。

    Plugin:cloudflare:cloudflare MCP Server

    Status:           △ needs authentication
    Auth:             ✘ not authenticated
    URL:              https://mcp.cloudflare.com
    Config location:  Dynamically configured

    ❯ 1. Authenticate
      2. Disable

1. Authenticateを選択して認証を進めるのですが、Enterキーを押下する前に認証の準備をしておくとスムーズです。認証はWebブラウザ経由で行うことになるので、あらかじめWebブラウザを開きCloudflareのダッシュボードにログインしておきましょう。

準備ができたら1. Authenticateを選択してEnterキーを押下します。Webブラウザで Authorize Application という画面が表示されました。内容を確認し、問題なければ[Continue]で進みます。必要に応じてAccess templateの箇所を変更しましょう。今回は Read only を選択しました。

cc04

続いてアカウントの選択画面が表示されました。ここで使用しているCloudflareのユーザは複数アカウントのメンバーになっているものです。単一のアカウントのみであれば表示はされません。ここではログインしたユーザに対して、アクセス対象となるアカウントを選択します。いくつかを選択するほか、今後追加されるアカウントも含むすべてのアカウントを許可することも可能ですね。(とはいえ、権限はなるべく絞ったほうがよいかと考えます。必要なアカウントのみ選択して、後述する再認証を都度行う方法を採ることとしました。)

cc05

最後に権限をレビューして、問題なければ [Authroize] ボタンを押下しましょう。

cc06

Webブラウザ側はAuthntication successfulの表示になります。

cc07

ターミナルのClaude Code側もAuthentication successfulの表示になっていますね。これでMCPサーバへの接続準備も完了です。

❯ /plugin
  ⎿  Authentication successful. Connected to plugin:cloudflare:cloudflare.

/pluginコマンドからプラグイン管理メニューのInstalledタブをもういちど確認してみると、Statusがconnected、Authがauthenticatedとなっていることが確認できます。

   Plugin:cloudflare:cloudflare MCP Server

   Status:           ✔ connected
   Auth:             ✔ authenticated
   Protocol:         2026-07-28
   URL:              https://mcp.cloudflare.com
   Config location:  Dynamically configured
   Capabilities: tools
   Tools: 3 tools

   ❯ 1. View tools
     2. Re-authenticate
     3. Clear authentication
     4. Reconnect
     5. Disable

ターミナルからclaude mcp listコマンドを実行することでも接続状態が確認できますね。

[shimizu.toshiya@classmethod] [~/Works/ClaudeCode/CloudflareAgentSetup]
 % claude mcp list
plugin:cloudflare:cloudflare: https://mcp.cloudflare.com/mcp (HTTP) - ✔
Connected

なお、MCPサーバへの登録(認証)後、Cloudflareのダッシュボードのマイプロフィール > 認証済アプリケーション を開くと、Cloudflare MCP Serverが登録されていることがわかります。

cc08

CloudflareのスキルならびにMCPサーバ連携を使ってみる

実際にCloudflareのスキルならびにMCPサーバを使ってみました。以下、Claudeとやり取りした例を紹介します。内容については適宜省略などしている点ご了承ください。

まずはCloudflareのスキル利用可否について確認しました。

❯ cloudflareのスキルは使えますか?

⏺ Cloudflareプラグインは有効化済みで、認証も成功しています。以下のスキルが使える
  状態です。

  - cloudflare — Cloudflare製品の選定・アーキテクチャ相談
  - agents-sdk — Agents SDK でのエージェント構築
  - durable-objects — Durable Objects の実装/デバッグ
  - wrangler — Wrangler CLI操作、プロジェクト設定
  - workers-best-practices — Workers本番運用のベストプラクティス
  - nextjs-on-cloudflare — Next.js on Workers (vinext)
  - sandbox-next / sandbox-stable / sandbox-migrate-to-next — Cloudflare Sandbox
  - cloudflare-one / cloudflare-one-migrations — Zero Trust / SASE
  - cloudflare-email-service — Email Routing/Sending
  - turnstile-spin — Turnstile ボット検証
  - web-perf — パフォーマンス最適化

  MCPツール(mcp__plugin_cloudflare_cloudflare__docs / search /
  execute)も利用可能です。

  何か具体的に試したいこと(例: Workerプロジェクトの作成、Durable
  Objectsの実装相談など)はありますか?

認証されているユーザ情報についても確認してみます。所属している他の組織情報についても表示してくれましたね。さらに、ClaudeのアカウントのメールアドレスとCloudflare側のユーザ情報のメールアドレスの不一致についても指摘してくれました。

❯ 現在設定されているcloudflareのユーザ情報を簡潔にまとめてください。

⏺ Cloudflareのユーザー情報を取得します。

  Called plugin:cloudflare:cloudflare

⏺ 現在のCloudflare認証情報は以下の通りです。

  ユーザー情報

  - ログイン中のメール: cmxxxxxxxx@example.com
  - User ID: 066axxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - 2要素認証: 無効
  - 作成日: 2026-07-13

  アクティブなアカウント(APIが使用中)

  - アカウント名: Cmxxxxxxxx@example.com's Account
  - Account ID: ce6fxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - 権限: Super Administrator(全権限)
  - タイプ: standard

  所属している他の組織

  - Mixxxxxxxx@example.com's Account(ID:
    97f0xxxxxxxxxxxxxxxxxxxxxxxxxxxx)にもメンバーとして所属していますが、現在の
    APIトークンではこの組織の権限情報は取得できません(権限詳細がnull)。

  ⚠️ 一点ご確認いただきたいのですが、あなたのメールアドレス(mixxxxxxxx@exmap
  le.com)とは別の cmxxxxxxxx@example.com
  アカウントで認証されています。もしこれが意図したものでなければ、/plugin
  から再認証して mixxxxxxxx@example.com
  側のアカウントに切り替えることをおすすめします。

続いて、このアカウントで設定fしているゾーン(ドメイン)について確認してみます。検証用にいくつか設定をしていたのですが、情報をまとめてくれました。

❯ ドメイン example.net に設定されているセキュリティルールを確認して

  Called plugin:cloudflare:cloudflare 4 times

⏺ example.net のセキュリティ設定

  ゾーンID: dd67xxxxxxxxxxxxxxxxxxxxxxxxxxxx(プラン: Free Website)

  カスタムWAFルール(1件・有効)

  ┌──────────────────────┬─────────────────────────────────┬──────────────┐
  │       ルール名       │              条件               │  アクション  │
  ├──────────────────────┼─────────────────────────────────┼──────────────┤
  │ only-203.0.113.42 │ 送信元IPが 203.0.113.42 以外 │ JSチャレンジ │
  └──────────────────────┴─────────────────────────────────┴──────────────┘

  → 「指定IP以外からのアクセスにはJSチャレンジを課す」というホワイトリスト的なル
  ールです。

  適用中のマネージドルールセット

  - Cloudflare Managed Free Ruleset —
    Freeプラン向けの標準WAF保護(バージョン74、2026-08-17更新)
  - DDoS L7 ruleset — レイヤー7 DDoS自動緩和(常時稼働)
  - Cloudflare Normalization Ruleset — URLパス正規化(リクエストサニタイズ)

  ゾーン全体のセキュリティ設定

  - Security Level: medium
  - Challenge TTL: 1800秒(30分)

  備考

  - Bot Fight Mode
    は本ゾーンでは未設定(Freeプランでは別APIパスの可能性、または未有効化)
  - カスタムルールは1件のみで、特定IPからのみ素通し・それ以外はJSチャレンジとい
    う構成になっています。意図した設定と一致しているかご確認ください。

ルールの変更を指示してみます。試行してくれたようですが、MCPサーバ認証の際 Read onlyを選択していたため、Claude Code側には読み込み権限しかありません。操作はできない旨、応答がありました。(意図した権限である、という確認はできましたね。)

❯ このルール only-203.0.113.42 の条件について、対象の送信元IPアドレスを
  203.0.113.43 に変更してください

  Called plugin:cloudflare:cloudflare

⏺ PATCH /zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}
  でルールを更新します。

  Called plugin:cloudflare:cloudflare

⏺ 書き込み操作を試みましたが、認証エラーになりました。

  結果: 変更できませんでした

  Cloudflare API error: 10000: Authentication error

  原因

  改めて確認すると、example.net ゾーンの権限一覧(先ほど取得済み)には
  #waf:read #zone_settings:read #dns_records:read
  など読み取り系のみが含まれており、:edit 系のスコープが一切ありませんでした。

  以前「Super Administrator権限があるので書き込み可能」とお伝えしましたが、それ
  はアカウント全体のロール(/user のorganizations配列)を見ての判断で、実際にこ
  のMCP連携で発行されているOAuthトークン自体はゾーン単位で見ると読み取り専用に制
  限されているようです。前回の回答は不正確でした、訂正します。

  対応方法

  書き込み権限を有効にするには、以下のいずれかが必要です。
  1. /plugin から再認証し、Cloudflareダッシュボード側の認可画面で書き込み(edit
     )権限を含めて許可する
  2. Cloudflareダッシュボードから直接、このルールのIPアドレスを手動で
     202.165.164.239 に変更する

  ダッシュボードでの手順が必要であれば、操作場所(WAF >
  カスタムルール)をご案内できます。

MCPサーバの認証情報の切り換え

Claude CodeにCloudflareのスキルをインストール、MCPサーバを登録してClaude Code経由でユーザ情報の確認やゾーン設定情報の確認ができました。MCPサーバ登録の認証時に指定した権限が適切に働き、ゾーン設定の変更については試行はしたもののできないという権限どおりの挙動も確認できました。

さて、Cloudflareで複数アカウントやユーザがある場合などで、MCPサーバに対する認証情報を変更したい、ということがあるかと思います。MCPサーバに対する認証情報の切り換えを確認してみました。

作業ディレクトリを切り換えてもOAuth認証情報は切り替わらない

ここまで確認してきたMCPサーバ登録時の認証ですが、以下ドキュメントに記載があるように内部的には、OAuthで認証を行っています。

別の作業フォルダでClaude Codeを実行し、別ユーザで別のアカウントの操作を行いたいとします。手順は先ほどと同様で、まずはマーケットプレイスを追加します。

❯ /plugin marketplace add cloudflare/skills
  ⎿  Successfully added marketplace: cloudflare

続いてプラグインをインストールします。インストール範囲は今回もlocal scopeとしました。

   Plugin Details

   cloudflare

   Build, test, and deploy applications on Cloudflare with platform guidance
   Skills and the Cloudflare MCP server.

   By: Cloudflare

   Will install:
   · Components will be discovered at installation

   ⚠ Make sure you trust a plugin before installing, updating, or using it.
     Anthropic does not control what MCP servers, files, or other software
     are included in plugins and cannot verify that they will work as
     intended or that they won't change. See each plugin's homepage for more
     information.

     Install for you (user scope)
     Install for all collaborators on this repository (project scope)
   > Install for you, in this repo only (local scope)
     Back to plugin list
❯ /plugin install cloudflare@cloudflare
  ⎿  ✓ Installed cloudflare. Plugin is now active.

MCPサーバに対してユーザ認証を行おうとします。しかし/pluginコマンドからプラグイン管理メニューのInstalledのタブを確認してみると、既に認証が完了している状態です。

   Plugins  Discover   Installed   Marketplaces   Errors   Stats

    Plugin:cloudflare:cloudflare MCP Server

    Status:           ✔ connected
    Auth:             ✔ authenticated
    Protocol:         2026-07-28
    URL:              https://mcp.cloudflare.com
    Config location:  Dynamically configured
    Capabilities: tools
    Tools: 3 tools

    ❯ 1. View tools
      2. Re-authenticate
      3. Clear authentication
      4. Reconnect
      5. Disable

Claudeに確認してみると、既にスキルは使える状態とのことです。

❯ Cloudflareのスキルは使えますか?

⏺ はい、使えます。プラグインのインストールが完了し、Cloudflare関連のスキルが12個
  利用可能になっています。

設定されているCloudflareユーザ情報を確認してみると、先ほど別フォルダで設定したユーザ情報がこちらにも反映されている、という状況でした。

❯ 現在設定されているCloudflareのユーザ情報を簡潔にまとめてください。

⏺ Cloudflareの認証情報を確認するため、MCPツールを呼び出します。

  Called plugin:cloudflare:cloudflare

⏺ 現在Cloudflare APIに認証されているユーザー情報は以下の通りです。

  認証中のユーザー

  ┌──────────────────┬──────────────────────────────────┐
  │       項目       │                値                │
  ├──────────────────┼──────────────────────────────────┤
  │ メールアドレス   │ cmxxxxxxxx@example.com               │
  ├──────────────────┼──────────────────────────────────┤
  │ ユーザーID       │ 066axxxxxxxxxxxxxxxxxxxxxxxxxxxx │
  ├──────────────────┼──────────────────────────────────┤
  │ 2要素認証        │ 無効                             │
  ├──────────────────┼──────────────────────────────────┤
  │ アカウント作成日 │ 2026-07-13                       │
  ├──────────────────┼──────────────────────────────────┤
  │ ロール           │ Super Administrator(全権限)    │
  └──────────────────┴──────────────────────────────────┘

認証し直すことでCloudflareユーザ情報を切り替える

OAuth認証では作業ディレクトリを切り換えても、ユーザ認証情報は切り替わらないという挙動が確認できました。(OAuthの場合、macOSではKeychainに認証情報が保存されており、マシン上のユーザアカウントに対して共通のトークンが利用されるようです。)

Cloudflareのユーザ認証情報を切り換えたい場合、いちど認証情報を削除したうえで再度別ユーザで認証を行う、という手段をとることができます。ただし、作業ディレクトリを切り換えてもユーザ認証情報は変わらない、という点には注意しましょう。手順を以下にまとめます。

/mcpコマンドを実行し、 plugin:cloudflare:cloudflareを選択します。(/pluginコマンドからInstalledのタブ、cloudflareのMCPを選択することでも同様のメニューに遷移します。)

   Manage MCP servers
   2 servers

     Built-in MCPs (always available)
     computer-use · ◯ disabled
   ❯ plugin:cloudflare:cloudflare · ✔ connected · 3 tools

Plugin:cloudflare:cloudflare MCP Serverで、いちど認証情報の削除を行います。3. Clear authenticationを選択しましょう。

   Plugin:cloudflare:cloudflare MCP Server

   Status:           ✔ connected
   Auth:             ✔ authenticated
   Protocol:         2026-07-28
   URL:              https://mcp.cloudflare.com
   Config location:  Dynamically configured
   Capabilities: tools
   Tools: 3 tools

     1. View tools
     2. Re-authenticate
   ❯ 3. Clear authentication
     4. Reconnect
     5. Disable

Clear authenticationを実行した後、もういちど/mcpコマンドを実行して、plugin:cloudflare:cloudflareを選択します。Statusがfailed、Authがnot authenticatedとなっていますね。認証されていない状況ですので、1. Authenticateを選択して認証を行います。ここから先は初回のMCPサーバの認証と同じ手順となります。あらかじめWebブラウザを開いて該当ユーザでCloudflareのダッシュボードにログインしておくとスムーズです。

   Manage MCP servers
   2 servers

     Built-in MCPs (always available)
     computer-use · ◯ disabled
   ❯ plugin:cloudflare:cloudflare · ✘ failed
   Plugin:cloudflare:cloudflare MCP Server

   Status:           ✘ failed
   Auth:             ✘ not authenticated
   URL:              https://mcp.cloudflare.com
   Config location:  Dynamically configured

   ❯ 1. Authenticate
     2. Reconnect
     3. Disable

Access templateはRead onlyを選択、先ほどとは別ユーザ、別アカウントであることを確認して[Authorize]します。

cc15
cc16

認証完了後、/mcpコマンドで確認すると以下のようにStatus connected、Authがauthenticatedとなり、認証できていることが確認できます。

   Plugin:cloudflare:cloudflare MCP Server

   Status:           ✔ connected
   Auth:             ✔ authenticated
   Protocol:         2026-07-28
   URL:              https://mcp.cloudflare.com
   Config location:  Dynamically configured
   Capabilities: tools
   Tools: 3 tools

   ❯ 1. View tools
     2. Re-authenticate
     3. Clear authentication
     4. Reconnect
     5. Disable

ユーザ情報を確認してみます。先ほどと別のユーザに切り替わっていることが確認できました。

❯ 現在設定されているCloudflareのユーザ情報を箇条書きで完結にまとめてください。

  Called plugin:cloudflare:cloudflare

⏺ 現在Cloudflareに設定されているユーザー情報は以下の通りです。

  - メールアドレス: mixxxxxxxx@example.com
  - ユーザーID: 064axxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - 2段階認証(2FA): 無効
  - アカウント作成日: 2022-03-22
  - 所属アカウント: 「Mixxxxxxxx@example.com's Account」(アカウントID:
    97f03xxxxxxxxxxxxxxxxxxxxxxxxxxxx)
  - 役割(ロール): Super Administrator - All
    Privileges(全権限を持つスーパー管理者)
  - メンバーシップステータス: accepted(参加済み)
  - 契約プラン: Pro/Business/Enterprise ゾーンなし(無料プランのみ)
  - アカウントの2FA強制: 無効(enforce_twofactor: false)
  - ベータ機能: zone_level_access_beta が有効

  一言でまとめると、単一アカウント構成で、あなた自身がSuper
  Administratorとして全権限を保持している状態です。

なお切り替える前のCloudflareユーザ側で、ダッシュボードの マイプロフィール > 認証済アプリケーションを開いて接続済みアプリケーションからCloudflare MCP Servern取り消しをしておくと、ユーザ切り換えがより明確になりますね。

cc17

MCPサーバへの認証情報にBearer Tokenを使う方法も確認してみる

CloudflareのMCPサーバへの認証にOAuthを使う方法、また認証情報を切り替える方法を確認してきました。Cloudflare MCP Serverには認証方法とてOAuthのほか、てAPIトークン(Bearer Token)を使用することも可能です。以下ページのGet Started > Option2: API Tokenに記載がありますね。

このAPIトークン(Bearer Token)を使用してMCPサーバの認証を行う方法も確認してみましょう。

CloudflareダッシュボードでAPIトークンを作成

まずはダッシュボード上でBearer Tokenを作成します。マイプロフィールのAPIトークンのページから、[+トークンを作成する]ボタンを押下します。

cc09

APIトークンテンプレートの一番下にある「すべてのリソースを読み取る」のテンプレートを使用します。

cc10

権限の内容を確認します。またアカウントリソースの箇所ではこのAPIトークン権限に含めるアカウントを選択します。APIトークンではアカウントのほか、ゾーンに対しても制限が可能です。今回は1つのゾーン(ドメイン)のみを選択しました。IPアドレスフィルタリングが利用できるのもAPIトークンの利点なのですが、現時点ではMCPサーバ認証ではサポートされていないようなので注意しましょう。[1])

cc11

cc18

最後に概要ページで作成するAPIトークンの権限内容をレビューし、トークンを作成します。以下は作成後のトークン表示の画面です。cfut_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxの形式のAPIトークンをメモしておきます。画面に示されているとおり、このページ以外でトークンは再表示されない点に注意しましょう。

cc13

APIトークンをMCPサーバ認証情報として設定

APIトークンが作成できたら、Claude Code側での作業を進めます。先ほど認証情報の切り換え手順で/mcpコマンドから認証情報に対してClear authenticationを行い、MCPサーバを使うために認証が必要な状況にしました。この状況から進めるとします。ただし、Claude Code側でAuthenticateの操作は行いません。

❯ /mcp list
  ⎿  Authentication cleared for plugin:cloudflare:cloudflare.

   Manage MCP servers
   2 servers

     Built-in MCPs (always available)
     computer-use · ◯ disabled
   ❯ plugin:cloudflare:cloudflare · ✘ failed
   Plugin:cloudflare:cloudflare MCP Server

   Status:           ✘ failed
   Auth:             ✘ not authenticated
   URL:              https://mcp.cloudflare.com
   Config location:  Dynamically configured

   ❯ 1. Authenticate
     2. Reconnect
     3. Disable

Claude Codeをいったん終了し、対象の作業ディレクトリで.mcp.jsonファイルを編集します。以下のように記載しました。headersでAuthorizationヘッダに、Bearerに続いて先ほど作成したAPIトークンを記載するかたちです。

[shimizu.toshiya@classmethod] [~/Works/ClaudeCode/CloudflareAPITokens]
 % cat .mcp.json
{
  "mcpServers": {
    "cloudflare-api": {
      "type": "http",
        "url": "https://mcp.cloudflare.com/mcp",
      "headers": {
        "Authorization": "Bearer cfut_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Claude Codeを起動し直します。MCPサーバの利用について確認があるので、User this MCP serverを選択します。

  New MCP server found in this project: cloudflare-api

  MCP servers may execute code or access system resources. All tool calls
  require approval. Learn more in the MCP documentation.

  ❯ Use this MCP server
    Use this and all future MCP servers in this project
    Continue without using this MCP server

MCPサーバがAPIトークンで利用可能になりました。

   Cloudflare-api MCP Server

   Status:           ✔ connected
   Auth:             ✔ authenticated
   Protocol:         2026-07-28
   URL:              https://mcp.cloudflare.com/mcp
   Config location:  /Users/shimizu.toshiya/Works/ClaudeCode/CloudflareAPITokens
   Capabilities: tools.mcp.json
   Tools: 3 tools

   ❯ 1. View tools
     2. Clear authentication
     3. Reconnect
     4. Disable

実際に利用できるか確認してみます。

❯ 現在設定されているCloudflareのユーザ情報を箇条書きで完結にまとめてください。

⏺ Cloudflareユーザー情報を取得します。

⏺ Cloudflareの /user エンドポイントからユーザー情報を取得します。

  Called cloudflare-api

⏺ 現在設定されているCloudflareのユーザー情報は以下の通りです。

  ユーザー情報

  - メールアドレス: cmxxxxxxxx@example.com(APIトークンの認証ユーザー)
  - ユーザーID: 066axxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - 二要素認証: 無効
  - アカウント作成日: 2026-07-13
  - アカウント停止: なし(suspended: false)
  - プラン: Pro/Business/Enterpriseゾーンなし(無料プラン相当)

  所属アカウント(Organizations)

  1. Cmxxxxxxxx@example.com's Account(ID: ce6fxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
     - ロール: Super Administrator - All Privileges(全権限)
     - タイプ: standard
     - APIトークンはこのアカウントに紐付いて実行中
  2. Mixxxxxxxx@example.com's Account(ID: 97f0xxxxxxxxxxxxxxxxxxxxxxxxxxxx)
     - 権限・ロール情報なし(このトークンではアクセス権なし、一覧に見えているの
       み)

  APIトークン状態

  - トークンID: be44xxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - ステータス: active

APIトークン(Bearer Token)を使ったMCPサーバについても利用できることが確認できましたね。作業ディレクトリの.mcp.jsonに記載する方法であれば、作業ディレクトリごとに異なる認証情報をを使う、ということはできそうです。ただし、平文でAPIトークンが保存されてしまう点は留意しましょう。

以下のように作業ディレクトリでclaude mcp addコマンドからMCPサーバを登録することもできるかと思いますが、こちらの方法でも~/.claude.jsonに平文でAPIキーが保存されてしまう認識です。

% claude mcp add \
  --transport http cloudflare-api https://mcp.cloudflare.com/mcp \
  --header "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
  -s local

まとめ

CloudflareのドキュメントAgent setupのページを参考にしながら、CloudflareとClaude Codeを連携させてみました。2つのコマンドを実行することでCloudflare pluginがインストールされ、Cloudflare SkillsとCloudflare MCPサーバが利用可能になります。

MCPサーバの認証方法としてはOAuthがデフォルトです。認証ユーザを切り替える際には明示的に認証情報をクリアして再度認証を行います。OAuthでは作業ディレクトリごとに認証情報をわけるといったことはできないことに注意しましょう。APIトークンを使ったMCPサーバの認証も可能です。APIトークンを使うことで作業ディレクトリごとに認証情報をわけることが可能です。ただしAPIトークンが平文で保存される点には注意しましょう。

なお現時点で筆者はAPIトークンが平文で保存されることに留意し、推奨されている方法でもあったことからOAuthでの認証を使うことにしました。認証ユーザを切り替えるため、本ブログエントリで示したような認証情報のクリアと別ユーザでの認証を行うという方法をとっています。Claude Codeを単一マシン内で、別ユーザ認証情報で並列実行できないことが課題でしょうか。

なお、ここまでで導入したCloudflareのMCPサーバは以下ページのもので、Code Modeと呼ばれているものです。(トークン効率が良いそうです。)サーバURLはhttps://mcp.cloudflare.com/mcpですね。

そのほかCloudflareでは、特定のCloudflare製品領域向けのドメイン固有サーバもあるそうです。以下ページなどにまとめられています。

CloudflareのMCP server portalsを使ったMCP利用方法もあるようなので、こちらも試してみたいなと思いました。

脚注
  1. GitHub - cloudflare/mcp: MCP server for the Cloudflare API · GitHub の Get Started > Option 2: API Token に「Note: API tokens with Client IP Address Filtering enabled are not currently supported.という記載がありました。 ↩︎


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AI白書

関連記事