mcpField
C
cloudflare-cli

cloudflare-cli

github.com/evolv3-aiクラウド・DevOps140 回インストール14 週間前に更新
リポジトリ

cloudflare-cli について

cloudflare-cli は、Cloudflare のゾーンと DNS レコードを管理するコマンドラインツールです。レコードの検索や変更、テーブルまたは JSON 出力、複数の認証方式に対応し、運用やスクリプトで利用できます。

主な機能

  1. 01ゾーンの一覧表示と詳細確認
  2. 02DNS レコードの絞り込みと検索
  3. 03レコードの作成、更新、削除
  4. 04設定ファイルまたは環境変数による認証
  5. 05テーブルまたは JSON 出力の選択

活用シーン

  1. 01ドメインの DNS レコード確認
  2. 02デプロイ時のレコード変更
  3. 03更新や削除前のレコード ID 検索
  4. 04JSON 出力をスクリプトに渡す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/evolv3-ai/vibe-skills --skill cloudflare-cli

インストール後、Claude Code で/cloudflare-cliを入力して読み込まれたか確認します。

同梱ファイルreferences/correction-rules.md

詳細

Cloudflare CLI (cf)

クイックスタート(3 分)

1. インストール
# Linux/macOS (global)
curl -fsSL https://raw.githubusercontent.com/coollabsio/cloudflare-cli/main/scripts/install.sh | bash

# Linux/macOS (user, no sudo)
curl -fsSL https://raw.githubusercontent.com/coollabsio/cloudflare-cli/main/scripts/install.sh | bash -s -- --user

# Via Go
go install github.com/coollabsio/cloudflare-cli@latest

# From source
git clone https://github.com/coollabsio/cloudflare-cli.git
cd cloudflare-cli && go build -o cf .

Windows:バイナリをGitHub Releasesからダウンロードするか、go build -o cf.exe .でソースからビルドします。

2. 認証

Cloudflare Dashboard → My Profile → API Tokens で、次の権限を持つ API トークンを作成します。

  • Zone:Read(ゾーンの一覧表示)
  • DNS:Read(レコードの表示)
  • DNS:Edit(レコードの作成・更新・削除)
# Save token to config (recommended)
cf auth save <YOUR_API_TOKEN>

# Verify connection
cf auth verify
3. 最初のコマンド
cf zones list
cf dns list example.com
cf dns create example.com -t A -n www -c 192.0.2.1 --proxied

認証

優先順位の高い順に、3 つの方法があります(上位の方法が下位の方法より優先されます)。

1. 設定ファイル(推奨)
cf auth save <token>
# Saves to ~/.cloudflare/config.yaml

設定ファイルの内容:

api_token: your-api-token-here
output_format: table
2. 環境変数
export CLOUDFLARE_API_TOKEN=your-api-token
# OR
export CF_API_TOKEN=your-api-token
3. レガシー API キー
export CLOUDFLARE_API_KEY=your-api-key
export CLOUDFLARE_API_EMAIL=your-email

優先順位:環境変数は設定ファイルの値より優先されます。

必要なトークン権限
権限スコープ必要な用途
Zone:Readすべてのゾーン(推奨)cf zones list、ゾーン名の解決
DNS:Read対象ゾーンcf dns list、cf dns get、cf dns find
DNS:Edit対象ゾーンcf dns create、cf dns update、cf dns delete

重要:ゾーンスコープのトークン(特定のゾーンに制限されたトークン)では、ゾーンの一覧表示やゾーン名から ID への解決はできません。既知の問題の防止を参照してください。


ゾーン管理

cf zones list                            # List all zones in account
cf zones get example.com                 # Get zone details by name
cf zones get 023e105f4ecef8ad9ca31a...   # Get zone details by ID

すべてのコマンドで、ゾーン名とゾーン ID のどちらも使用できます。


DNS レコード管理

レコードの一覧表示
cf dns list <zone>                           # All records
cf dns list <zone> --type A                  # Filter by type
cf dns list <zone> --type A -t CNAME         # Multiple types
cf dns list <zone> --name www                # Filter by name
cf dns list <zone> --search "production"     # Search in comments/content
cf dns list <zone> -t A -n www              # Combined filters
レコードの詳細を取得
cf dns get <zone> <record-id>
レコードの作成
# A record
cf dns create <zone> -t A -n www -c 192.0.2.1

# CNAME with proxy
cf dns create <zone> -t CNAME -n blog -c example.com --proxied

# MX with priority
cf dns create <zone> -t MX -n mail -c mail.example.com --priority 10

# TXT record
cf dns create <zone> -t TXT -n _acme -c "verification-string"

# A record with comment
cf dns create <zone> -t A -n api -c 192.0.2.10 --comment "Production API"

作成フラグ:

フラグ短縮形必須用途
--type-tはいレコードの種類(A、AAAA、CNAME、MX、TXT など)
--name-nはいレコード名(サブドメインまたは @)
--content-cはいレコード値(IP、ホスト名、テキスト)
--ttlいいえTTL(秒)(デフォルト:1 = 自動)
--proxiedいいえCloudflare CDN 経由でルーティング(ブール値)
--priorityいいえ優先度(MX、SRV レコード)
--commentいいえレコードのコメント/メモ
レコードの更新
cf dns update <zone> <record-id> --content 192.0.2.2
cf dns update <zone> <record-id> --proxied
cf dns update <zone> <record-id> --proxied=false
cf dns update <zone> <record-id> --comment "Updated comment"
cf dns update <zone> <record-id> --comment ""           # Clear comment
cf dns update <zone> <record-id> -t A -n newname -c 192.0.2.3  # Multiple fields

更新では作成と同じフラグを使用できます。指定したフラグのみが変更されます。

レコードの削除
cf dns delete <zone> <record-id>
レコードの検索
cf dns find <zone> --name www --type A
cf dns find <zone> -n api -t A
cf dns find <zone> --type MX

findは一致するレコードを返します。更新または削除の前にレコード ID を調べる必要がある場合、スクリプトで便利です。


設定

cf config set <key> <value>    # Set configuration value
cf config get <key>            # Get configuration value
cf config list                 # List all settings

使用可能なキー:

キー値デフォルト用途
output_formattable、jsontableデフォルトの出力形式

出力形式とスクリプト

cf dns list example.com                  # Table (default, human-readable)
cf dns list example.com --output json    # JSON for automation
cf dns list example.com -o json          # Short flag

# Set JSON as default
cf config set output_format json

# Pipe to jq for filtering
cf dns list example.com -o json | jq '.[].name'

# Extract record IDs
cf dns list example.com -o json | jq -r '.[].id'

重要なルール

必ず行うこと
  • 初回使用前に認証を確認します:cf auth verify
  • スクリプトや jq へのパイプには--output jsonを使用します
  • ゾーンスコープのトークンではゾーン名ではなくゾーン ID を使用します
  • ドキュメント化のため、レコードに--commentを追加します
  • 本番環境に適用する前に、ステージングゾーンで DNS の変更をテストします
絶対に行わないこと
  • cf zones listでゾーンスコープのトークンを使用します(権限エラーで失敗します)
  • API トークンをシェルの履歴に保存します。代わりにcf auth saveを使用してください
  • レコード ID を最初に確認せずにレコードを削除します(cf dns findまたはcf dns getを使用します)
  • --proxiedがすべてのレコードタイプで安全だと想定します(A、AAAA、CNAME でのみ機能します)
コマンド名の訂正

Claude の cf CLI に関する学習データは限られています(2024 年 12 月リリース)。よくあるハルシネーション:

  • バイナリ名はcfであり、cloudflareやcloudflare-cliではありません
  • cf zones listであり、cf zone listではありません(「zones」は複数形です)
  • cf dns createであり、cf dns addではありません
  • cf dns deleteであり、cf dns removeではありません
  • cf auth save <token>であり、cf auth loginやcf loginではありません
  • --output json/-o jsonであり、--format jsonや--jsonではありません
  • ゾーンは位置引数です:cf dns list example.comであり、cf dns list --zone example.comではありません

訂正パターンの全一覧は、references/correction-rules.mdを参照してください。


既知の問題の防止

このスキルは、文書化された3件の問題を防止します。

Issue #1: ゾーンスコープのトークンによる権限エラー

エラー: cf zones list の実行時、またはゾーン名の解決時に権限エラーが発生します
原因: 特定のゾーンに制限された API トークンでは、すべてのゾーンを一覧表示したり、名前を ID に解決したりできません
対処法: 「すべてのゾーン」の読み取り権限を付与するか、ゾーン ID を直接使用してください:

# Instead of zone name (fails with scoped token):
cf dns list example.com

# Use zone ID (always works):
cf dns list 023e105f4ecef8ad9ca31a8b...
Issue #2: Windows で設定ファイルが見つからない

エラー: 設定ファイルが見つからない、または認証情報が保存されません
原因: Windows に ~/.cloudflare/ ディレクトリが存在しません
対処法: 認証情報を保存する前に、ディレクトリが存在することを確認してください:

mkdir -p ~/.cloudflare
cf auth save <token>

Windows での設定ファイルの場所:%USERPROFILE%\.cloudflare\config.yaml

Issue #3: インストール後に「cf: command not found」と表示される

エラー: インストールスクリプトの実行後に cf: command not found と表示されます
原因: バイナリが PATH にないか、想定外の場所にインストールされています
対処法: インストール先を確認し、PATH に追加してください:

# Check if binary exists
which cf || ls /usr/local/bin/cf || ls ~/bin/cf

# User install adds to ~/bin — ensure it's on PATH
export PATH="$HOME/bin:$PATH"

セルフアップデート

cf update    # Download and install latest version
cf version   # Show current version

グローバルフラグのリファレンス

フラグ短縮形用途
--config設定ファイルのパス(デフォルト:~/.cloudflare/config.yaml)
--output-o出力形式:table(デフォルト)または json

コメント