mcpField
M
MCP Cloudflare

MCP Cloudflare

ローカル
github.com/crunchtoolsクラウド・インフラ03 日前に更新

MCP Cloudflare について

MCP Cloudflareは、Cloudflareのゾーンと関連設定を管理するローカルMCPサーバーです。DNS、アクセス制御、ルール、キャッシュを扱う運用担当者向けで、APIトークンはローカルに保持されます。

主な機能

  1. 01ゾーンとDNSレコードの管理
  2. 02Transform RulesとPage Rulesの設定
  3. 03Accessアプリとポリシーの管理
  4. 04URL、タグ、ホスト、プレフィックス単位のキャッシュ削除
  5. 05stdioでのローカル実行とトークン保護

活用シーン

  1. 01DNSレコードの作成や更新
  2. 02レスポンスヘッダーの設定やURL書き換え
  3. 03ホスト名のアクセス方針の管理
  4. 04指定したCloudflareキャッシュの削除

MCP 対応

MCPクライアントにCloudflareのゾーン、DNS、ルール、Access、キャッシュ管理ツールを提供します。stdioでローカル実行します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"crunchtools-cloudflare": {
"command": "uvx",
"args": [
"mcp-cloudflare-crunchtools"
]
}
}
}
起動コマンドuvx mcp-cloudflare-crunchtools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-cloudflare-crunchtools0.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Cloudflare CrunchTools

Cloudflare DNS、Transform Rules、Page Rules、キャッシュ管理に対応する安全な MCP(Model Context Protocol)サーバーです。

概要

この MCP サーバーは、次のように設計されています。

  • デフォルトで安全 - 脅威モデリング、入力検証、トークン保護に対応
  • サードパーティーサービス不使用 - stdio 経由でローカル実行されるため、API トークンがマシンの外部に送信されることはありません
  • クロスプラットフォーム - Linux、macOS、Windows で動作します
  • 自動更新 - GitHub Actions が CVE を監視し、依存関係を更新します
  • コンテナ化 - Hummingbird Python ベースイメージ上に構築され、quay.io/crunchtools/mcp-cloudflare で利用できます

命名規則

コンポーネント名前
GitHub リポジトリcrunchtools/mcp-cloudflare
コンテナquay.io/crunchtools/mcp-cloudflare
Python パッケージ(PyPI)mcp-cloudflare-crunchtools
CLI コマンドmcp-cloudflare-crunchtools
モジュールのインポートmcp_cloudflare_crunchtools

Hummingbird を選ぶ理由

コンテナイメージは、Project Hummingbird の Hummingbird Python ベースイメージ上に構築されています。このベースイメージには、次の特長があります。

  • CVE への露出を最小限に抑制 - Hummingbird イメージは最小限のパッケージセットで構築されており、汎用イメージと比較して攻撃対象領域を大幅に縮小します
  • 定期的な更新 - セキュリティパッチが速やかに適用され、CVE の数を低く保ちます
  • Python に最適化 - 高速で再現性の高いビルドを実現する uv パッケージマネージャーを備えた、事前設定済みの Python 環境です
  • 本番環境に対応 - 適切なシグナル処理と非 root ユーザーのデフォルト設定を備え、本番環境のワークロード向けに設計されています

これにより、一般的な Python コンテナイメージよりも脆弱性の少ない、強化された環境で MCP サーバーを実行できます。

機能

ゾーン管理(2 ツール)
  • list_zones - API トークンでアクセスできるすべてのゾーンを一覧表示します
  • get_zone - ID またはドメイン名でゾーンの詳細を取得します
DNS レコード(5 ツール)
  • list_dns_records - フィルタリングして DNS レコードを一覧表示します
  • get_dns_record - 単一の DNS レコードを取得します
  • create_dns_record - A、AAAA、CNAME、MX、TXT、NS、SRV、CAA レコードを作成します
  • update_dns_record - 既存のレコードを更新します
  • delete_dns_record - レコードを削除します
Transform Rules(6 ツール)
  • list_request_header_rules / set_request_header_rules - リクエストヘッダーを変更します
  • list_response_header_rules / set_response_header_rules - レスポンスヘッダーを変更します
  • list_url_rewrite_rules / set_url_rewrite_rules - URL のパス/クエリを書き換えます
Page Rules(4 ツール)
  • list_page_rules - すべてのページルールを一覧表示します
  • create_page_rule - リダイレクト、キャッシュ設定、SSL モードを作成します
  • update_page_rule - 既存のルールを変更します
  • delete_page_rule - ルールを削除します
Access(8 ツール)
  • get_access_organization - Zero Trust 組織と、そのチームログインドメインを取得します
  • list_access_apps / get_access_app - ゾーン上のアプリケーションと、その対象者タグを取得します
  • create_access_app / delete_access_app - Access ログインの背後にホスト名を配置する、またはそこから外します
  • list_access_policies - アプリケーションがアクセスを許可する対象者を取得します
  • create_access_policy / delete_access_policy - メールアドレス、メールドメイン、IP、または全員を対象に、許可、拒否、バイパスを設定します
キャッシュ管理(1 ツール)
  • purge_cache - URL、タグ、ホスト、プレフィックス、またはすべてを指定してキャッシュを消去します

インストール

uvx を使用(推奨)
uvx mcp-cloudflare-crunchtools
pip を使用
pip install mcp-cloudflare-crunchtools
コンテナを使用
podman run -e CLOUDFLARE_API_TOKEN=your_token \
    quay.io/crunchtools/mcp-cloudflare

設定

Cloudflare API トークンの作成
  1. API トークンに移動

  2. トークン名を設定

    • 次の名前を入力します:mcp-cloudflare-crunchtools
  3. 権限を設定

    「Permissions」セクションには、行ごとに3つのドロップダウンがあります。

    • 1つ目のドロップダウン:リソースの種類(Account または Zone)
    • 2つ目のドロップダウン:具体的な権限カテゴリ
    • 3つ目のドロップダウン:アクセスレベル(Read または Edit)

    「+ Add more」をクリックして、権限の行を追加します。すべてを管理するには、次を追加します。

    リソース権限アクセス
    ZoneZoneRead
    ZoneDNSEdit
    ZonePage RulesEdit
    ZoneTransform RulesEdit
    ZoneCache PurgePurge
    AccountAccess: Apps and PoliciesEdit
    AccountAccess: Organizations, Identity Providers, and GroupsRead
  4. ゾーンのリソースを設定

    • 1つ目のドロップダウン:「Include」を選択します
    • 2つ目のドロップダウン:「All zones」または「Specific zone」を選択します
  5. クライアント IP アドレスのフィルタリングを設定(任意)

    • 「Use my IP」ボタンをクリックして、トークンを現在の IP に制限します
  6. トークンを作成してコピー

    • 「Continue to summary」→「Create Token」をクリックします
    • 重要:トークンをすぐにコピーしてください。表示されるのは一度だけです!
Claude Code に追加
claude mcp add mcp-cloudflare-crunchtools \
    --env CLOUDFLARE_API_TOKEN=your_token_here \
    -- uvx mcp-cloudflare-crunchtools

コンテナ版の場合:

claude mcp add mcp-cloudflare-crunchtools \
    --env CLOUDFLARE_API_TOKEN=your_token_here \
    -- podman run -i --rm -e CLOUDFLARE_API_TOKEN quay.io/crunchtools/mcp-cloudflare
用途別の権限セット
読み取り専用(表示のみ)
リソース権限アクセス
ZoneZoneRead
ZoneDNSRead
DNS のみを管理
リソース権限アクセス
ZoneZoneRead
ZoneDNSEdit
すべてを管理(全機能)
リソース権限アクセス
ZoneZoneRead
ZoneDNSEdit
ZonePage RulesEdit
ZoneTransform RulesEdit
ZoneCache PurgePurge

使用例

ゾーンの一覧表示
User: List my Cloudflare zones
Assistant: [calls list_zones]
DNS レコードの作成
User: Create an A record for www.example.com pointing to 192.168.1.1
Assistant: [calls create_dns_record with type=A, name=www, content=192.168.1.1]
セキュリティヘッダーの追加
User: Add X-Content-Type-Options: nosniff to all responses for zone abc123...
Assistant: [calls set_response_header_rules with appropriate rule]
キャッシュのパージ
User: Purge the cache for https://example.com/styles.css
Assistant: [calls purge_cache with files=["https://example.com/styles.css"]]

セキュリティ

このサーバーは、セキュリティを最優先事項として設計されています。次の内容については、SECURITY.md を参照してください。

  • 脅威モデルと攻撃ベクトル
  • 多層防御アーキテクチャ
  • トークンの取り扱いに関するベストプラクティス
  • 入力検証ルール
  • 監査ログ
主なセキュリティ機能
  1. トークンの保護

    • SecretStr として保存されます(誤ってログに記録されることはありません)
    • 環境変数のみを使用します(ファイルや引数には含まれません)
    • すべてのエラーメッセージからサニタイズされます
  2. 入力検証

    • すべての入力に Pydantic モデルを使用します
    • レコードの種類とアクションに許可リストを適用します
    • ID の形式を厳密に検証します
  3. API の強化

    • API のベース URL をハードコードします(SSRF を防止)
    • TLS 証明書を検証します
    • リクエストのタイムアウトを設定します
    • レスポンスのサイズを制限します
  4. CVE の自動スキャン

    • GitHub Actions が依存関係を毎週スキャンします
    • セキュリティ更新用の PR を自動作成します
    • Dependabot アラートを有効にしています

開発

セットアップ
git clone https://github.com/crunchtools/mcp-cloudflare.git
cd mcp-cloudflare
uv sync
テストの実行
uv run pytest
リントと型チェック
uv run ruff check src tests
uv run mypy src
コンテナのビルド
podman build -t mcp-cloudflare .

ライセンス

AGPL-3.0-or-later

コントリビューション

コントリビューションを歓迎します!セキュリティ関連の変更を提出する前に、SECURITY.md をお読みください。

リンク

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。