Cloudflare MCP Pro
NPM · CLOUDFLARE-MCP-PRO · SCANNED SEP 20
Cloudflare MCP: DNS, Zones, Workers, KV, R2, D1, Pages, WAF, SSL, Email, AI via REST API v4
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 89 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 7774 tokens (~112/item across 69 items; 69 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 92% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 14 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Cloudflare MCP Pro server?
Cloudflare MCP Pro runs locally as an npm package, launched with npx -y cloudflare-mcp-pro. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · cloudflare-mcp-pro
claude mcp add helbertparanhos-cloudflare-mcp-pro -- npx -y cloudflare-mcp-pro
{
"mcpServers": {
"helbertparanhos-cloudflare-mcp-pro": {
"command": "npx",
"args": [
"-y",
"cloudflare-mcp-pro"
]
}
}
} {
"servers": {
"helbertparanhos-cloudflare-mcp-pro": {
"command": "npx",
"args": [
"-y",
"cloudflare-mcp-pro"
]
}
}
} codex mcp add helbertparanhos-cloudflare-mcp-pro -- npx -y cloudflare-mcp-pro
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"helbertparanhos-cloudflare-mcp-pro": {
"type": "local",
"command": [
"npx",
"-y",
"cloudflare-mcp-pro"
],
"enabled": true
}
}
} openclaw mcp add helbertparanhos-cloudflare-mcp-pro --command npx --arg -y --arg cloudflare-mcp-pro
mcp_servers:
helbertparanhos-cloudflare-mcp-pro:
command: "npx"
args: ["-y", "cloudflare-mcp-pro"] {
"McpServers": {
"helbertparanhos-cloudflare-mcp-pro": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"cloudflare-mcp-pro"
]
}
}
} assistant mcp add helbertparanhos-cloudflare-mcp-pro -t stdio -c npx -a -y cloudflare-mcp-pro
{
"mcpServers": {
"helbertparanhos-cloudflare-mcp-pro": {
"command": "npx",
"args": [
"-y",
"cloudflare-mcp-pro"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 0
- Security disclosure: fail → unverified ▼ functional
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −2
- Stability: pass → 0.83 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −2
- Stability: pass → 0.80 functional
- 9 Sept 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/cloudflare-mcp-pro@1.1.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_access_rule ~200
Create an IP/ASN/country access rule (block, challenge, or whitelist). Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| mode | string | yes | Action to take for matching requests. |
| notes | string | – | Optional note describing the rule. |
| target | string | yes | What the rule matches on. |
| value | string | yes | Match value, e.g. '1.2.3.4', '1.2.3.0/24', 'AS13335', or 'US'. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_custom_hostname ~167
Add a custom hostname (SSL for SaaS) to a zone. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| hostname | string | yes | The custom hostname to add, e.g. app.customer.com. |
| ssl_method | string | – | SSL validation method. Default 'http'. |
| ssl_type | string | – | Certificate type. Default 'dv'. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_d1_database ~147
Create a new D1 database. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| name | string | yes | Database name. |
| primary_location_hint | string | – | Optional primary location hint, e.g. wnam, weur. |
No output schema declared.
No examples provided.
create_dns_record ~239
Create a DNS record (A, AAAA, CNAME, TXT, MX, etc). Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | – | Optional comment for the record. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| content | string | yes | Record value (IP, target host, text, etc). |
| name | string | yes | Record name (e.g. www.example.com or @ for root). |
| priority | number | – | Priority for MX/SRV records. |
| proxied | boolean | – | Whether traffic is proxied through Cloudflare (A/AAAA/CNAME only). |
| ttl | number | – | TTL in seconds. 1 = automatic. Default 1. |
| type | string | yes | DNS record type. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_email_rule ~178
Create an Email Routing rule (forward an address to a destination). Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| enabled | boolean | – | Whether the rule is active. Default true. |
| forward_to | string | yes | Verified destination address to forward matched mail to. |
| match_to | string | yes | Source address to match, e.g. hello@example.com. |
| name | string | – | Optional rule name. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_kv_namespace ~127
Create a new Workers KV namespace. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| title | string | yes | Human-readable namespace title. |
No output schema declared.
No examples provided.
create_logpush_job ~246
Create a Logpush job streaming a dataset to a destination. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Create an account-scoped job (used when zone_id is omitted). |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| dataset | string | yes | Dataset, e.g. http_requests, firewall_events, dns_logs. |
| destination_conf | string | yes | Destination URI, e.g. s3://bucket/path?region=us-east-1 or r2://... or an HTTPS endpoint. |
| enabled | boolean | – | Whether the job starts enabled. Default true. |
| logpull_options | string | – | Optional fields/timestamp options, e.g. 'fields=...×tamps=rfc3339'. |
| name | string | yes | Job name. |
| zone_id | string | – | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_page_rule ~183
Create a page rule (URL pattern + actions like cache_level, forwarding_url). Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | yes | List of actions to apply when the pattern matches. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| priority | number | – | Rule priority (higher runs first). |
| status | string | – | Rule status. Default 'active'. |
| url_pattern | string | yes | URL match pattern, e.g. *example.com/images/*. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_queue ~127
Create a new Cloudflare Queue. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| queue_name | string | yes | Name for the new queue. |
No output schema declared.
No examples provided.
create_r2_bucket ~148
Create a new R2 bucket. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| location_hint | string | – | Optional region hint for the bucket location. |
| name | string | yes | Bucket name (lowercase, hyphens allowed). |
No output schema declared.
No examples provided.
create_turnstile_widget ~169
Create a Turnstile widget (CAPTCHA alternative) for given domains. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| domains | array | yes | Allowed domains for the widget, e.g. ['example.com']. |
| mode | string | – | Widget mode. Default 'managed'. |
| name | string | yes | Human-readable widget name. |
No output schema declared.
No examples provided.
create_worker_route ~158
Create a Worker route mapping a URL pattern to a Worker script. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| pattern | string | yes | Route pattern, e.g. example.com/api/*. |
| script | string | – | Worker script name to run on this route. Omit to disable on the pattern. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
create_zone ~150
Add a new domain (zone) to an account. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| name | string | yes | The domain name to add (e.g. example.com). |
| type | string | – | Zone setup type. Default 'full'. |
No output schema declared.
No examples provided.
delete_access_rule ~128
Delete an access rule by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| rule_id | string | yes | Access rule ID (from list_access_rules). |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
delete_custom_hostname ~130
Delete a custom hostname by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| custom_hostname_id | string | yes | Custom hostname ID (from list_custom_hostnames). |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
delete_dns_record ~125
Delete a DNS record by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| record_id | string | yes | DNS record ID to delete. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
delete_page_rule ~128
Delete a page rule by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| rule_id | string | yes | Page rule ID (from list_page_rules). |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
delete_queue ~128
Delete a Queue by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| queue_id | string | yes | Queue ID (from list_queues). |
No output schema declared.
No examples provided.
delete_r2_bucket ~133
Delete an (empty) R2 bucket. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| name | string | yes | Bucket name to delete (must be empty). |
No output schema declared.
No examples provided.
delete_worker ~128
Delete a Worker script by name. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| script_name | string | yes | The Worker script name to delete. |
No output schema declared.
No examples provided.
delete_worker_route ~127
Delete a Worker route by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| route_id | string | yes | Route ID (from list_worker_routes). |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
delete_worker_secret ~141
Delete a secret binding from a Worker script. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| name | string | yes | Secret binding name to delete. |
| script_name | string | yes | The Worker script name. |
No output schema declared.
No examples provided.
delete_zone ~110
Delete a zone by ID. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
deploy_worker ~188
Create or update (deploy) a Worker script from ES module source. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| compatibility_date | string | – | Compatibility date, e.g. 2024-01-01. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| main_module | string | – | Entry module filename. Default 'worker.js'. |
| script | string | yes | The Worker source code (ES module format). |
| script_name | string | yes | The Worker script name to create/update. |
No output schema declared.
No examples provided.
edit_dnssec ~137
Enable or disable DNSSEC for a zone. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| status | string | yes | Set 'active' to enable DNSSEC, 'disabled' to turn it off. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
export_dns_records ~47
Export all DNS records of a zone as a BIND zone file.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_dnssec ~46
Get the DNSSEC status and DS record details for a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_pages_project ~57
Get details of a Cloudflare Pages project.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| project_name | string | yes | The Pages project name. |
No output schema declared.
No examples provided.
get_ruleset ~65
Get a single ruleset (with its rules) by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| ruleset_id | string | yes | Ruleset ID (from list_firewall_rulesets). |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_ssl_verification ~45
Get SSL/TLS certificate verification status for a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_tunnel ~61
Get details of a Cloudflare Tunnel by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| tunnel_id | string | yes | Tunnel ID (from list_tunnels). |
No output schema declared.
No examples provided.
get_worker ~56
Get a Worker script's settings/metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| script_name | string | yes | The Worker script name. |
No output schema declared.
No examples provided.
get_zone ~41
Get details of a single zone by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_zone_analytics ~127
Get HTTP traffic analytics for a zone over a time range (via GraphQL).
| Name | Type | Req | Description |
|---|---|---|---|
| since | string | yes | Hour-aligned ISO 8601 UTC start, e.g. 2024-01-01T00:00:00Z. httpRequests1hGroups buckets are hourly. |
| until | string | yes | Hour-aligned ISO 8601 UTC end, e.g. 2024-01-02T00:00:00Z. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
get_zone_setting ~84
Get a single zone setting (e.g. ssl, always_use_https, min_tls_version).
| Name | Type | Req | Description |
|---|---|---|---|
| setting | string | yes | Setting id, e.g. ssl, always_use_https, min_tls_version, brotli, http3, security_level. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
kv_delete ~137
Delete a key from a KV namespace. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| key | string | yes | The key to delete. |
| namespace_id | string | yes | KV namespace ID. |
No output schema declared.
No examples provided.
kv_get ~68
Read the value of a key in a KV namespace.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| key | string | yes | The key to read. |
| namespace_id | string | yes | KV namespace ID. |
No output schema declared.
No examples provided.
kv_list_keys ~84
List keys in a KV namespace, optionally filtered by prefix.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| limit | number | – | Max keys (default 1000). |
| namespace_id | string | yes | KV namespace ID. |
| prefix | string | – | Filter keys by prefix. |
No output schema declared.
No examples provided.
kv_put ~169
Write a value to a key in a KV namespace, with optional TTL. Requires confirm:true (human-approval gate); without it returns a preview only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| confirm | boolean | – | Human-approval gate: must be true to actually perform this mutating operation. Omit or set false to get a non-executing preview of what would happen (with secrets redacted). A human should approve be… |
| expiration_ttl | number | – | Seconds until the key expires. |
| key | string | yes | The key to write. |
| namespace_id | string | yes | KV namespace ID. |
| value | string | yes | The value to store. |
No output schema declared.
No examples provided.
list_access_rules ~104
List IP/ASN/country access rules (block/challenge/allow) on a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| mode | string | – | Action to take for matching requests. |
| page | number | – | – |
| per_page | number | – | – |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_accounts ~69
List Cloudflare accounts accessible by the token.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| page | number | – | Page number (default 1). |
| per_page | number | – | Results per page (max 50). |
No output schema declared.
No examples provided.
list_ai_models ~78
Search the catalog of Workers AI models available to the account.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| search | string | – | Filter models by name/task substring. |
| task | string | – | Filter by task, e.g. 'Text Generation'. |
No output schema declared.
No examples provided.
list_certificate_packs ~60
List SSL/TLS certificate packs on a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by certificate pack status. Default 'all'. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_custom_hostnames ~97
List custom hostnames (SSL for SaaS) on a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| hostname | string | – | Filter by hostname. |
| page | number | – | – |
| per_page | number | – | – |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_d1_databases ~96
List D1 databases in an account.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| name | string | – | Filter by database name. |
| page | number | – | – |
| per_page | number | – | – |
No output schema declared.
No examples provided.
list_dns_records ~110
List DNS records of a zone, optionally filtered by type/name.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| name | string | – | Filter by record name (FQDN). |
| page | number | – | – |
| per_page | number | – | – |
| type | string | – | DNS record type. |
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_email_destinations ~47
List verified Email Routing destination addresses in an account.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
No output schema declared.
No examples provided.
list_email_rules ~41
List Email Routing rules on a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_firewall_rulesets ~45
List WAF rulesets configured on a zone.
| Name | Type | Req | Description |
|---|---|---|---|
| zone_id | string | yes | The Cloudflare zone ID (32-char hex). Get it from list_zones. |
No output schema declared.
No examples provided.
list_kv_namespaces ~85
List Workers KV namespaces in an account.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Cloudflare account ID. Falls back to CLOUDFLARE_ACCOUNT_ID env var when omitted. |
| fetch_all | boolean | – | When true, follow pagination and return all pages combined (ignores page/per_page). |
| page | number | – | – |
| per_page | number | – | – |
No output schema declared.
No examples provided.
What is the Cloudflare MCP Pro server?
Cloudflare MCP Pro is listed in the public MCP registry as io.github.helbertparanhos/cloudflare-mcp-pro. Cloudflare MCP: DNS, Zones, Workers, KV, R2, D1, Pages, WAF, SSL, Email, AI via REST API v4. This page covers its npm package (cloudflare-mcp-pro).
Is the Cloudflare MCP Pro server safe to use?
Cloudflare MCP Pro scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Cloudflare MCP Pro server expose?
Cloudflare MCP Pro exposes 69 tools: verify_token, list_accounts, list_zones, get_zone, create_zone, and 64 more. Their descriptions and schemas cost roughly 7,774 tokens of context every time the server is loaded.
Is the Cloudflare MCP Pro server still maintained?
Cloudflare MCP Pro is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Cloudflare MCP Pro server under?
Cloudflare MCP Pro declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.