コンテンツにスキップ

Claude Code 完全ガイド

Claude CodeにCloudflare MCPを連携する手順【WSL対応】

この記事の対象者

  • Claude Codeを使っていて、Cloudflareの情報をAIアシスタントから直接参照したい開発者

この記事のポイント

  • 3ファイルで完了 設定ファイル編集とOAuth認証だけで連携できる
  • WSLでも動く wslviewでOAuth認証をWindows側ブラウザに転送
  • 再認証不要 refresh_tokenで自動更新、手動ログインは初回のみ

Cloudflare MCPでできること

Claude Codeのターミナルから「このドメインのDNSレコード一覧を見せて」と聞くだけで、Cloudflareのデータを直接取得できるようになる。

Cloudflareは公式MCPサーバーをホスティングしている。OAuth認証を通せばAPIキーの管理なしで利用可能だ。

執筆時点で提供されているDNS Analyticsエンドポイント(dns-analytics.mcp.cloudflare.com)では以下の操作ができる。

  • ゾーン一覧の取得(アカウント配下のドメイン一覧)
  • DNSレポートの取得(クエリ数、パフォーマンス分析)
  • DNS設定の参照(アカウント単位・ゾーン単位)

APIキーをローカルに保存する必要がなく、OAuthトークンの自動更新で運用できるのが特徴だ。

前提条件

項目要件
Claude Codeインストール済み
Node.jsv20以上(npxが使える状態)
Cloudflareアカウント管理対象のドメインがあること
WSL環境の場合wsluパッケージ(wslviewコマンド)

WSLでwslviewがない場合は先にインストールする。

sudo apt install wslu

セットアップ手順

ステップ1: ラッパースクリプトを作成

Cloudflare MCPはmcp-remote経由で接続する。起動コマンドをラッパースクリプトにまとめておくと管理しやすい。

~/.claude/mcp-cloudflare.sh
#!/bin/bash
# PATH: Node.jsのインストールパスに合わせて変更すること
export PATH="$HOME/.nvm/versions/node/v22.19.0/bin:/usr/local/bin:/usr/bin:/bin"
export BROWSER=wslview
exec npx mcp-remote "$@"

PATHはNode.jsの実際のインストールパスに合わせて変更する。nvmを使っていない場合はwhich nodeの結果からbinディレクトリを指定すればよい。パスを動的に取得したい場合は以下のように書くこともできる。

export PATH="$(dirname "$(which node)"):/usr/local/bin:/usr/bin:/bin"

BROWSER=wslviewはWSL環境のみ必要。 Linux/macOSネイティブ環境ではこの行を削除する。

実行権限を付与する。

chmod +x ~/.claude/mcp-cloudflare.sh

ステップ2: Claude Codeの設定に追加

~/.claude/settings.jsonの既存のmcpServersオブジェクトに、以下のcloudflareエントリを追記する。ファイル全体を上書きしないよう注意。

~/.claude/settings.json(mcpServersに追記)
{
  "mcpServers": {
    "cloudflare": {
      "command": "/home/your-user/.claude/mcp-cloudflare.sh",
      "args": [
        "https://dns-analytics.mcp.cloudflare.com/mcp"
      ]
    }
  }
}

commandのパスは絶対パスで指定する。~は展開されないため、フルパスを書くこと。

argsのURLを変えれば、他のCloudflare MCPエンドポイントにも接続できる。なお、/sse(SSEトランスポート)でも動作するが、Cloudflare公式は/mcp(Streamable HTTP)を推奨している。

ステップ3: OAuth認証を完了する

Claude Codeを再起動する。初回接続時にOAuth認証フローが始まる。

Please authorize this client by visiting:
https://dns-analytics.mcp.cloudflare.com/oauth/authorize?...

Browser opened automatically.

Windows側ブラウザでCloudflareのログイン画面が開く。ログインして権限を許可すると、以下のログが表示されて接続が完了する。

Auth code received, resolving promise
Connected to remote server using SSEClientTransport
Proxy established successfully

WSL環境でブラウザが開かない場合

WSLではデフォルトのブラウザ起動コマンドがLinux向けのため、Windows側ブラウザが開かない。ステップ1でBROWSER=wslviewを設定していれば解決する。

それでも開かない場合は、ターミナルに表示された認証URLを手動でコピーしてブラウザに貼り付ける。

リダイレクト先がlocalhostのため、WSL2でもポートフォワーディング経由でコールバックを受信できる。

もし認証が途中で失敗した場合は、ロックファイルを削除してからリトライする。ディレクトリ名のハッシュ値はエンドポイントURLから生成されるため、実際の値は環境によって異なる。

# ハッシュ値部分(f96b4928*)は環境によって異なる
rm ~/.mcp-auth/mcp-remote-*/f96b4928*_lock.json
rm ~/.mcp-auth/mcp-remote-*/f96b4928*_code_verifier.txt

トークンの有効期限

認証完了後、トークンは~/.mcp-auth/に保存される。

トークン種別有効期限備考
access_token1時間API呼び出しに使用
refresh_token長期間(Cloudflare側の設定依存)access_token失効時に自動更新

mcp-remoteがrefresh_tokenで自動更新するため、通常は初回認証のみで運用できる。再認証が必要になるケースは主に2つある。

  • Cloudflare側でrefresh_tokenが失効した場合
  • ~/.mcp-auth/ディレクトリを削除した場合

まとめ

  • Cloudflare MCPはmcp-remote + OAuth認証でAPIキー不要で接続できる。APIキーをローカルに保存しない分、漏洩リスクが低い(OAuthトークンは~/.mcp-auth/に保存されるが、自動更新・自動失効するため管理コストは小さい)
  • WSL環境ではBROWSER=wslviewの1行でOAuth認証のブラウザ転送問題を解決できる。この手法は他のOAuth認証付きMCPサーバーにも流用可能
  • refresh_tokenによる自動更新があるため、一度認証すれば基本的にメンテナンスフリーで運用できる

関連記事