Skip to main content
Glama

mcp-cloudflare-dns

Cloudflare DNS MCP server for operators who need zone, record, cache, and page-rule control from an MCP client without opening the Cloudflare dashboard for every change.

Release posture: beta package, version 0.1.1 from pyproject.toml.

Choose your path

You are...

Start here

Then

Installing the server in Claude/Codex/Cursor

docs/start-here.md

Quick start below

Verifying what the server can touch

Available tools

docs/architecture.md

Auditing packaging or release metadata

pyproject.toml

server.json

Related MCP server: cloudflare-dns-mcp-server

Architecture

flowchart TD
  U[AI operator] --> C[MCP client]
  C --> S[FastMCP server]
  E[CF_API_TOKEN] --> S
  S --> T[Tool handlers]
  T --> R[Retry wrapper]
  R --> A[Cloudflare API]
  A --> R --> T --> C

Request flow

flowchart TD
  Q[Operator asks for a DNS change] --> H[Selected MCP tool]
  H --> I[Load token and build client]
  I --> J{Cloudflare call succeeds?}
  J -- yes --> K[Return normalized JSON result]
  J -- retryable --> L[Backoff and retry]
  L --> J
  J -- no --> M[Return error payload]

Quick start

  1. Install the package.

python -m pip install mcp-cloudflare-dns
  1. Export a token with DNS permissions.

export CF_API_TOKEN="your-cloudflare-api-token"
  1. Register it in your MCP client.

{
  "mcpServers": {
    "cloudflare-dns": {
      "command": "uvx",
      "args": ["mcp-cloudflare-dns"],
      "env": {
        "CF_API_TOKEN": "your-cloudflare-api-token"
      }
    }
  }
}

Available tools

Tool group

Tools

Purpose

Zone inventory

list_zones, get_zone, get_zone_settings

Inspect available zones and key settings

DNS records

list_dns_records, get_dns_record, create_dns_record, update_dns_record, delete_dns_record

Read and mutate records

Edge actions

purge_cache, list_page_rules

Invalidate cached content and inspect page rules

delete_dns_record and full-cache actions stay gated behind the destructive env flags described in docs/start-here.md.

Runtime proof

Claim

Proof

Package entry point is stable

mcp-cloudflare-dns = "cf.server:main" in pyproject.toml

Server is MCP-specific, not a generic CLI

FastMCP("mcp-cloudflare-dns") in cf/server.py

Cloudflare failures are retried

_call() in cf/server.py

Release artifacts are built

dist/ wheel and tarball are checked into the repo

Repo map

Path

Purpose

cf/server.py

FastMCP tool surface, env loading, retry wrapper

pyproject.toml

Package metadata, version, script entry point

server.json

Registry-facing metadata for MCP discovery

docs/start-here.md

Setup, env, validation, common failures

docs/architecture.md

Component map and request lifecycle

Validation

Check

Command

Import compiles

python -m compileall cf

Package builds

python -m build

README links stay local

rg '\\]\\(([^)]+\\.md)\\)' README.md docs/

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/apexradius/mcp-cloudflare-dns'

If you have feedback or need assistance with the MCP directory API, please join our Discord server