Labsco
MCP SERVER

MCP Cloudflare DNS

by apexradius

Change a DNS record, check a zone's SSL and security settings, or purge cache — without opening the Cloudflare dashboard for every edit.

DNS, Domains & CDNVerified
Summary
DNS edits from the assistant, with deletion behind a switch you have to throw on purpose.

Reads and safe writes work with the token alone; deleting a record and purging an entire zone's cache require CF_ALLOW_DESTRUCTIVE=true as well, so the worst outcomes are not one hallucinated argument away. Updates apply only the fields you pass, which means changing a TTL does not silently rewrite the record's content.

What it is

A Cloudflare operations server covering zones, DNS records, cache and page rules, with the destructive actions held behind a separate flag.

What you get
  • Zones on the account listed and filtered by name, and one zone opened for its details
  • A zone's key security and performance settings — SSL mode, security level, minification, always-https, brotli
  • DNS records listed for a zone, filtered by name or record type, and one fetched by record ID
  • Records created with content, TTL, proxied state, priority and a comment
  • Records updated with only the fields you pass — the rest are left as they are
  • Record deletion, which refuses to run unless CF_ALLOW_DESTRUCTIVE=true
  • Cache purged for a zone, either by specific URLs or everything
  • Page rules listed for a zone, optionally filtered by status
Requirements

A Cloudflare API token in CF_API_TOKEN, scoped for Zone DNS Edit, Zone Read and Cache Purge — CLOUDFLARE_API_TOKEN is accepted as an alternate name. Deleting a record and purging the whole cache additionally need CF_ALLOW_DESTRUCTIVE=true, which is deliberately a separate decision from having the token. Run it with uvx mcp-cloudflare-dns over stdio, from the PyPI package mcp-cloudflare-dns, currently 0.1.1; MCP_TRANSPORT=sse with MCP_HOST and MCP_PORT switches to remote hosting. Cloudflare 429 and 5xx responses are retried with backoff. The project describes its release posture as beta.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary