Cloudflare MCP Pro

io.github.helbertparanhosPublished by GitHub account helbertparanhosv1.1.0Updated Oct 25, 2026

Cloudflare MCP: DNS, Zones, Workers, KV, R2, D1, Pages, WAF, SSL, Email, AI via REST API v4

The publisher's own server: Cloudflare

VerifiedSTDIODesktop onlyDatabasesCloud & Infrastructure

Overview

AI-generated overview

A local MCP server that lets an assistant manage Cloudflare DNS, zones, Workers, storage, security and AI through the Cloudflare REST API v4.

What you can do
Verify the API token and list accounts, zones and zone settings, including cache purge and analytics queries, with pagination on list tools. Manage DNS records, DNSSEC and BIND zone-file export. Deploy and delete Workers, routes, secrets and cron triggers. Work with KV namespaces and keys, R2 buckets, D1 databases and SQL queries, and inspect Pages projects. Handle WAF rulesets, access and page rules, SSL certificate packs, custom hostnames, Email Routing, Queues, Tunnels, Turnstile and Logpush. List Workers AI models and run inference such as text generation, embeddings and classification.
When to use it
Useful when you want an assistant to inspect or change Cloudflare configuration from a local session, for example editing DNS, deploying a Worker, querying a D1 database or checking zone analytics, especially in scripted or CI-style workflows.
Requirements
Runs locally over stdio as an npm package (npx cloudflare-mcp-pro or a built dist entry point) and needs Node.js. Requires a Cloudflare API token in CLOUDFLARE_API_TOKEN with scopes matching the operations used; CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_BASE are optional. Network access to the Cloudflare API is required.
Before you install
The token grants real control over your Cloudflare account, so scope it narrowly. Mutating tools such as create, update, delete, deploy, purge_cache, query_d1 and run_ai require confirm: true; without it they return a preview and do nothing. Read-only tools are not gated. Worker secrets are redacted from previews and errors, but review each confirmed action before approving it.

Installation

In SourceWeft

  1. Open Cloudflare MCP Pro in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Cloudflare MCP Pro ☁️

MCP server for the Cloudflare REST API v4 — 69 tools across DNS, Zones, Workers, KV, R2, D1, Pages, Queues, Tunnels, SSL, WAF, Email Routing, Logpush and Workers AI in a single local stdio server authenticated by API token.

[npm version] [License: MIT] [GitHub Stars] [GitHub Forks] [GitHub Issues] [Glama Quality]

[TypeScript] [Node.js] [MCP] [Claude Code] [Cursor] [Claude Desktop]

[Instagram] [YouTube] [LinkedIn] [Buy Me A Coffee] [Strat Academy]

Unlike the official Cloudflare MCP offering (13 separate remote, OAuth-based servers), cloudflare-mcp-pro runs locally over stdio, authenticates with a single API token, and consolidates the most-used Cloudflare operations into one server with consistent verb_object tool names — ideal for Claude Code, CI, and scripted automation.

Features

  • DNS — list/create/update/delete records, DNSSEC, BIND zone-file export
  • Zones — list/get/create/delete, settings (SSL mode, HTTPS, min TLS…), cache purge, GraphQL analytics
  • Workers — deploy (ES module), routes, secrets, cron triggers, list/get/delete
  • KV / R2 / D1 — namespaces + key CRUD, bucket management, databases + SQL queries
  • Pages / Queues / Tunnels — list/get projects, queue management, tunnel inspection
  • Security — WAF rulesets, IP/ASN/country access rules, page rules, SSL certificate packs, custom hostnames (SaaS), Turnstile widgets
  • Email Routing — rules + destination addresses
  • Logpush — list/create jobs (zone or account scoped)
  • Workers AI — model catalog + inference (text generation, embeddings, classification)
  • Human-approval gate — every mutating tool requires confirm: true; without it the tool returns a non-executing preview (with secrets redacted) instead of acting (see below)
  • MCP annotations — every tool carries readOnly/destructive/idempotent hints so clients can gate dangerous actions
  • Auto-pagination — fetch_all: true on list tools follows every page
  • Single API-token auth, automatic retry + rate-limit (429/5xx) handling, and actionable error messages

Installation

bash
npm installnpm run build

Or run directly once published:

bash
npx -y cloudflare-mcp-pro

Configuration

Copy .env.example to .env and fill in:

VariableRequiredDescription
CLOUDFLARE_API_TOKEN✅API token from https://dash.cloudflare.com/profile/api-tokens
CLOUDFLARE_ACCOUNT_IDoptionalDefault account ID used when a tool doesn't receive account_id
CLOUDFLARE_API_BASEoptionalOverride the API base URL

Token scopes depend on what you use, e.g.: Zone:Read, DNS:Edit, Workers Scripts:Edit, Workers KV Storage:Edit, Workers R2 Storage:Edit, D1:Edit, Pages:Edit, Account Analytics:Read. Run the verify_token tool to confirm your token works.

Testing

Run the automated test suite (no network — fetch is mocked):

bash
npm test

It covers the human-approval gate, secret redaction, the security validations (hex IDs, path-segment encoding, model-id allowlist, purge mutual-exclusion, analytics hour-alignment), the API client (query serialization, 429 retry, error mapping, pagination + clamp, GraphQL non-JSON guard) and the Zod→JSON-Schema converter.

Interactive testing with the MCP inspector:

bash
npx @modelcontextprotocol/inspector dist/index.js

Add to Claude Code

In .claude/settings.json → mcpServers:

json
{  "mcpServers": {    "cloudflare-mcp-pro": {      "command": "node",      "args": ["projects/cloudflare-mcp-pro/dist/index.js"],      "env": {        "CLOUDFLARE_API_TOKEN": "your-token",        "CLOUDFLARE_ACCOUNT_ID": "your-account-id"      }    }  }}

Add to Claude Desktop

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "cloudflare-mcp-pro": {      "command": "node",      "args": ["/absolute/path/projects/cloudflare-mcp-pro/dist/index.js"],      "env": {        "CLOUDFLARE_API_TOKEN": "your-token",        "CLOUDFLARE_ACCOUNT_ID": "your-account-id"      }    }  }}

Human-approval gate

Every mutating tool (any create_*, update_*, delete_*, deploy_*, put_*, edit_*, purge_cache, query_d1, run_ai, …) is gated server-side. Read-only tools (list_*, get_*, verify_token, export_dns_records, analytics) are never gated.

  • Calling a mutating tool without confirm: true returns a confirmation_required preview describing the tool, the risk level, and the (secret-redacted) arguments — and does not execute.
  • Re-call the same tool with "confirm": true to actually perform it, after a human has approved.

This gate is enforced in the server regardless of the MCP client, and works alongside the MCP annotations (destructiveHint) that prompt the human in compatible clients like Claude Code. Secret values (e.g. Worker secret text) are redacted from previews and never appear in error messages.

jsonc
// 1) preview (no confirm) → nothing happensdelete_zone { "zone_id": "..." }// → { "status": "confirmation_required", "risk": "DESTRUCTIVE — ...", ... }
// 2) after human approvaldelete_zone { "zone_id": "...", "confirm": true }   // actually deletes

Tools (69)

List tools accept fetch_all: true to follow pagination. Mutating tools accept confirm: true (see the gate above). Every tool advertises MCP annotations (readOnlyHint / destructiveHint / idempotentHint).

Account — verify_token, list_accounts

Zones & settings — list_zones, get_zone, create_zone, delete_zone, purge_cache, get_zone_analytics, get_zone_setting, update_zone_setting

DNS — list_dns_records, create_dns_record, update_dns_record, delete_dns_record, get_dnssec, edit_dnssec, export_dns_records

Workers — list_workers, get_worker, deploy_worker, delete_worker, list_worker_routes, create_worker_route, delete_worker_route, put_worker_secret, delete_worker_secret, update_worker_cron

KV — list_kv_namespaces, create_kv_namespace, kv_list_keys, kv_get, kv_put, kv_delete

R2 — list_r2_buckets, create_r2_bucket, delete_r2_bucket

D1 — list_d1_databases, create_d1_database, query_d1

Pages — list_pages_projects, get_pages_project

WAF & firewall — list_firewall_rulesets, get_ruleset, list_access_rules, create_access_rule, delete_access_rule

Page rules — list_page_rules, create_page_rule, delete_page_rule

SSL/TLS — list_certificate_packs, get_ssl_verification, order_certificate_pack

Custom hostnames (SaaS) — list_custom_hostnames, create_custom_hostname, delete_custom_hostname

Email Routing — list_email_rules, create_email_rule, list_email_destinations

Queues — list_queues, create_queue, delete_queue

Tunnels — list_tunnels, get_tunnel

Turnstile — list_turnstile_widgets, create_turnstile_widget

Workers AI — list_ai_models, run_ai

Logpush — list_logpush_jobs, create_logpush_job

Author

Helbert Paranhos / Strat Academy — stratacademy.com.br

License

MIT — see LICENSE.

Source: README.md at commit 352c8ed

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Cloudflare integrations