Skip to main content
Glama
SquarePiSigma5

cloudflare-dns-mcp-server

cloudflare-dns-mcp-server

Model Context Protocol (MCP) サーバーで、MCP 互換の LLM クライアント(Claude Code、Claude Desktop、claude.ai カスタムコネクタ、Cursor など)が Cloudflare アカウントの DNS レコードを読み取り・編集できるようにします。これはストリーミング可能な HTTP サーバー(ステートレス JSON モード、リモートサーバー向けの現在の MCP 標準)として動作し、ローカルサブプロセスサーバーを起動するクライアント向けの stdio モードも備えています。

Tools

Tool

説明

cloudflare_verify_token

API トークンが有効でアクティブであることを確認します

cloudflare_list_zones

トークンが管理できるドメインを一覧表示します

cloudflare_list_dns_records

ゾーン内のレコードを一覧表示/フィルタリングします(レコード ID の取得元)

cloudflare_get_dns_record

ID で 1 つのレコードを取得します

cloudflare_create_dns_record

A/AAAA/CNAME/MX/TXT/SRV/CAA などのレコードを作成します

cloudflare_update_dns_record

部分更新。編集を元に戻せるように変更前/変更後を返します

cloudflare_delete_dns_record

削除(confirm=true が必要)。再作成用のスナップショットを返します

cloudflare_export_zone

ゾーンを BIND ファイルとしてエクスポート — 一括変更の前にバックアップを取得します

Related MCP server: cloudflare-dns-mcp-server

Setup

Node.js 20+ が必要です。

1. スコープ付き Cloudflare API トークンを作成します。 Cloudflare ダッシュボードで My Profile → API Tokens → Create Token に移動し、Edit zone DNS テンプレートを使用して、Zone Resources でモデルに管理させたい特定のゾーンに制限します。Global API Key は使用しないでください。スコープ付きトークンを使用すると、最悪の場合の影響範囲はそれらのゾーンの DNS のみに限定されます。

2. インストールとビルド:

npm install
npm run build

3. 設定と実行:

cp .env.example .env   # fill in tokens, then either export them or use a loader
export CLOUDFLARE_API_TOKEN="cf_..."
export MCP_AUTH_TOKEN="$(openssl rand -hex 24)"   # protects the MCP endpoint itself
npm start

MCP エンドポイントは http://127.0.0.1:8787/mcp にあります(ヘルスチェックは /healthz)。環境変数: HOST(デフォルト 127.0.0.1)、PORT(デフォルト 8787)、TRANSPORT(デフォルト http、または stdio)、ALLOWED_ORIGINS(追加のブラウザオリジン、カンマ区切り)。

4. スモークテスト:

MCP_AUTH_TOKEN="<same token>" npm run smoke

これは実際の MCP クライアントに接続し、8 つのツールを一覧表示し、cloudflare_verify_token を呼び出します。また、MCP Inspector を URL に向けることもできます: npx @modelcontextprotocol/inspector。

Connecting clients

Claude Code:

claude mcp add --transport http cloudflare-dns http://127.0.0.1:8787/mcp \
  --header "Authorization: Bearer $MCP_AUTH_TOKEN"

Cursor / その他の JSON 設定を持つクライアント — カスタムヘッダーでストリーミング可能な HTTP をサポートするクライアントはすべて同じように動作します:

{
  "mcpServers": {
    "cloudflare-dns": {
      "url": "http://127.0.0.1:8787/mcp",
      "headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
    }
  }
}

ローカル stdio サーバーのみを起動するクライアント:

{
  "mcpServers": {
    "cloudflare-dns": {
      "command": "node",
      "args": ["/path/to/cloudflare-dns-mcp-server/dist/index.js"],
      "env": { "CLOUDFLARE_API_TOKEN": "cf_...", "TRANSPORT": "stdio" }
    }
  }
}

claude.ai / Claude mobile カスタムコネクタ は公開 HTTPS URL が必要です — localhost には到達できません。最も迅速な方法は、サーバーを実行しているマシンから Cloudflare Tunnel を使用することです:

cloudflared tunnel --url http://127.0.0.1:8787

重要な注意点: claude.ai のカスタムコネクタ UI は OAuth または認証なしでのみ認証され、静的ベアラーヘッダーのフィールドはありません。そのため、リモート使用には 2 つの選択肢があります: トンネルを Cloudflare Access(サービス認証)の背後に置き、そこで認証を終了させるか、MCP_AUTH_TOKEN を設定せずに実行し、トンネル URL が秘密に保たれることに依存するかです。これは DNS を編集できるものにとってはかなり弱い保護です。Cloudflare Tunnel を使用する場合、サーバーは依然として 127.0.0.1 にバインドされるため、オプトインは不要です。ただし、トンネルではなくポートを直接公開する場合、認証なしの非 localhost バインドには ALLOW_UNAUTHENTICATED=true が必要です。選択する前に、現在の claude.ai コネクタの認証オプションを確認してください。これは時間とともに変わります。

Security notes

サーバーはデフォルトで 127.0.0.1 にバインドし、CLOUDFLARE_API_TOKEN なしでは起動を拒否します。MCP_AUTH_TOKEN が設定されていない状態で他のアドレスにバインドすると、起動を拒否します。ポートに到達できる人は誰でも DNS を編集できるためです。ただし、ALLOW_UNAUTHENTICATED=true を設定した場合は例外で、これは認証が上流で終了している場合(例: Cloudflare Access)にのみ適切です。ブラウザオリジンからのリクエストは、localhost または ALLOWED_ORIGINS からの場合を除き拒否されます(DNS リバインディング保護)。トークンは環境から読み取られ、ログに記録されることはなく、どのツールからも返されることはありません。

モデルの安全性の面では、削除には明示的な confirm=true 引数が必要で、更新は変更前/変更後の状態を返すため、任意の変更を元に戻すことができます。また、cloudflare_export_zone は 1 回の呼び出しで BIND バックアップを提供します。一括編集の前にモデルに実行させる価値があります。DNS の編集は実際のインターネットに伝播します。誤ったレコードはサイトやメールをオフラインにする可能性があるため、本番ゾーンでモデルを実行する前に、モデルが提案する内容を確認してください。

Development

npm run build    # compile TypeScript → dist/
npm start        # run HTTP server
npm run smoke    # end-to-end client test against the running server

ソースレイアウト: src/index.ts(トランスポート、認証ミドルウェア)、src/cloudflare.ts(API クライアント、ゾーン解決、フォーマット)、src/tools.ts(ツール登録)。

License

MIT

Related MCP Connectors

Related MCP Servers