Skip to main content
Glama

cloudflare-mcp

A zero-dependency Model Context Protocol server for Cloudflare. It exposes typed tools for DNS, zones, and cache, plus a universal passthrough to any Cloudflare API v4 endpoint. Destructive operations are gated behind an explicit confirmation.

Single file, no npm dependencies, Node 18+.

Design

Most infrastructure MCP servers pull in a framework, a build step, and a tree of transitive dependencies. This one is a single index.mjs — small enough to read in full and audit before granting write access to your DNS. Two decisions shape it:

  • Typed convenience tools over a universal escape hatch. Cloudflare's API v4 has hundreds of endpoints; wrapping all of them is pointless churn. The common paths (DNS and cache) get first-class tools with schemas; cf_request covers everything else, so a caller is never blocked by a missing wrapper.

  • Confirmation on destructive actions. cf_dns_delete and cf_purge_cache { everything: true } return a refusal unless confirm: true is passed. The refusal comes back as structured data rather than an exception, so the caller can see why and retry deliberately.

Zone arguments accept either a domain name (example.com) or a 32-character zone id; names are resolved to ids and cached per process.

Related MCP server: cloudflare-api-mcp

Tools

Tool

Purpose

Confirm

cf_request

Call any Cloudflare API v4 endpoint (method, path, query, body)

—

cf_verify

Verify the API token and report its status

—

cf_list_zones

List all zones with ids and status

—

cf_dns_list

List DNS records for a zone

—

cf_dns_create

Create a DNS record

—

cf_dns_update

Update a DNS record by id (PATCH — changed fields only)

—

cf_dns_delete

Delete a DNS record by id

required

cf_purge_cache

Purge specific files, or everything

required (everything)

Configuration

Create an API token at https://dash.cloudflare.com/profile/api-tokens with the scopes you need — typically:

  • Zone → DNS → Edit

  • Zone → Zone → Read

  • Zone → Cache Purge → Purge

Provide it via the environment or a local .env (copy .env.example):

CLOUDFLARE_API_TOKEN=...
CLOUDFLARE_ACCOUNT_ID=      # optional — scopes cf_list_zones to one account

Precedence: process environment, then .env in the working directory, then .env beside index.mjs.

Client setup

Claude Code:

claude mcp add cloudflare -- npx @habib1/cloudflare-mcp

Any client that reads a JSON config:

{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": ["@habib1/cloudflare-mcp"],
      "env": { "CLOUDFLARE_API_TOKEN": "..." }
    }
  }
}

From a local clone, use "command": "node" with an absolute path to index.mjs.

Examples

// Point a subdomain at a host, proxied through Cloudflare
cf_dns_create { "zone": "example.com", "type": "A", "name": "app", "content": "203.0.113.10", "proxied": true }

// List MX records
cf_dns_list { "zone": "example.com", "type": "MX" }

// Delete a record — confirmation required
cf_dns_delete { "zone": "example.com", "id": "...", "confirm": true }

// Anything without a dedicated wrapper — e.g. read a zone's SSL setting
cf_request { "method": "GET", "path": "/zones/{zone_id}/settings/ssl" }

Operational notes

Reads and verification never require confirmation. Writes happen on request; the reliable pattern is to write, then re-read with cf_dns_list to confirm. Deletes and full-cache purges return { "refused": ... } unless confirm: true is passed.

Scope the token to only the zones and permissions required — the server can do exactly what the token allows, and no more.

Development

npm run smoke

Spawns the server, drives the JSON-RPC handshake, and checks the tool surface. Passes without a token; additionally exercises cf_verify when CLOUDFLARE_API_TOKEN is set.

License

MIT

Available Tools

8 tools
cf_dns_createC

Create a DNS record. Then re-read with cf_dns_list to verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo1=auto
nameYes
typeYes
zoneYes
contentYes
proxiedNo
priorityNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not mention idempotency, what happens when a duplicate record exists, auth/permission requirements, or whether the create is safe to retry - only the implied eventual-consistency hint from 're-read to verify'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler - the core action leads and the verification hint follows. It is appropriately sized, though the second sentence is procedural advice rather than definitional content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no annotations, no output schema, and 14% schema coverage, the definition is too thin to call the tool correctly - notably, nothing explains the required content/type/name semantics or what the create returns. The verification tip is useful but not sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 14%: only ttl ('1=auto') is documented, leaving zone, type, name, content, proxied and priority unexplained. The description adds no parameter-level meaning at all, so it fails to compensate for the coverage gap on a 7-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource - 'Create a DNS record' - which is unambiguous and clearly distinct from cf_dns_update and cf_dns_delete. It does not, however, differentiate itself from siblings like cf_dns_list or explain scope, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete workflow instruction - re-read with cf_dns_list to verify after creating - which names a sibling and an action context. But it gives no guidance on when not to use this tool (e.g., use cf_dns_update for existing records) or any prerequisites, so usage is only partially covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_dns_deleteC

Delete a DNS record by id (gated).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
zoneYes
confirmNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for a destructive operation. '(gated)' hints at a safeguard but never defines it, and nothing is said about irreversibility, permissions, or the role of the confirm flag. The one behavioral hint is too vague to act on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no wasted words. The parenthetical is the only element that fails to earn its place by being unexplained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive 3-parameter tool with no annotations, no output schema, and zero schema documentation, the description is far too thin. At minimum it should define 'gated'/confirm semantics and the required zone scoping.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 3 parameters, so the description must compensate and largely does not: it mentions only 'id' and says nothing about 'zone' or the 'confirm' boolean. The '(gated)' aside loosely gestures at confirm but never explains its meaning or default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a DNS record') and the lookup key ('by id'), which cleanly separates it from cf_dns_create and cf_dns_update. The parenthetical '(gated)' is cryptic and adds no clarity, and there is no explicit naming of siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites or alternatives, and no explanation of what 'gated' means in practice. An agent gets no help deciding between this and cf_dns_update or cf_purge_cache.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_dns_listC

List DNS records for a zone (zone = domain name or zone id).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
typeNo
zoneYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It says it lists, implying a read, but doesn't disclose whether it requires authentication, returns paginated results, or has rate limits. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the key scoping detail front-loaded in parentheses. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and 0% schema coverage, the description is too thin. It should explain what the name/type params do and what the tool returns to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so no parameter documentation exists. The description only clarifies the 'zone' parameter (domain name or zone id) but says nothing about 'name' or 'type' filters, leaving 2 of 3 params undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb (List) and resource (DNS records) with scoping to a zone. Clearly distinguishes from siblings cf_dns_create/update/delete, though it doesn't explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this vs alternatives or when not to. The parenthetical clarifies the zone param but provides no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_dns_updateC

Update a DNS record by id (PATCH; only pass fields to change).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
ttlNo
nameNo
typeNo
zoneYes
contentNo
proxiedNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry behavioral burden. It states the HTTP method (PATCH) and partial-update behavior, which is useful, but omits mutability warnings, error conditions (e.g., invalid id), idempotency, or return behavior. For a mutation tool with no annotations, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no waste. Appropriate length for a simple tool, though arguably too sparse given the schema gaps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters with zero schema descriptions and no annotations, the definition is incomplete. An agent lacks guidance on parameter semantics and behavioral traits of a mutation operation, making the definition underpowered for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 7 parameters, so the description must explain meanings. It only mentions 'id' (required) and hints 'fields to change' generically, with no clarification of zone, name, type, ttl, content, or proxied. Nearly no compensation for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Update a DNS record by id'. Distinguishes from siblings like cf_dns_create/delete/list by using 'update' and 'by id'. Slightly generic ('update') but adequate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds 'only pass fields to change' which is a usage hint for partial updates, but does not explicitly state when to use this vs cf_dns_create or how to handle missing fields. Implied partial-update semantics but no exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_list_zonesB

List all zones (domains) with their ids and status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose the return contents (ids and status), but says nothing about authentication requirements, pagination, rate limits, or whether the listing is account-scoped, which is a real gap for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and the returned fields are stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should carry more of the contract. Naming ids and status is helpful, but the shape of the response, account scoping, and auth expectations remain unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the baseline rule a 4 applies; there are no parameter semantics the description could add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (zones/domains) plus what is returned (ids and status), so the agent knows exactly what the call produces. No sibling covers zone listing, so there is no real ambiguity, though the description does not explicitly differentiate itself from the dns/purge tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite note (e.g. requires auth token), and no mention of alternatives. At best the listing use case is implied by the verb; an agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_purge_cacheB

Purge cache for a zone. {everything:true} gated by confirm; or files:[urls].

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYes
filesNo
confirmNo
everythingNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It partially discloses the safety mechanism by noting {everything:true} is gated by confirm, which is useful context about a required guardrail for a destructive operation. However, it does not state that purge is destructive/irreversible, what requires authentication, or how partial (files) purges behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse fragments with zero waste, front-loading the core purpose and then the mode options. The telegraphic style is efficient but slightly under-structured, reading almost like schema shorthand rather than a description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, 4-param tool with zero annotations and no output schema, the description should disclose more: that purging is irreversible, which parameters require confirmation, and how the two modes interact. The mention of the confirm gate helps but is insufficient for the operation's risk profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It explains the relationship between the everything and confirm parameters (everything:true requires confirm) and shows the files array with [urls] syntax, which adds meaning beyond the bare schema. But zone and confirm lack standalone semantics, leaving the coverage gap only partially filled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (purge) and resource (cache) with a scope constraint (for a zone), immediately distinguishing it from DNS siblings like cf_dns_create or cf_list_zones. The purpose is clear, though the fragmentary phrasing is terse rather than fully self-explanatory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies two modes (everything vs files) but gives no guidance on when to use purge-cache versus other cache operations, no prerequisites, and no warning about the destructiveness of the operation. There is no mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_requestB

Call ANY Cloudflare API v4 endpoint. Universal. path e.g. "/zones", "/zones/{id}/dns_records". Use for anything not covered below.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYes
queryNo
methodNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and largely fails. It never discloses that this passthrough can issue DELETE/PUT/PATCH mutations, that auth/API-token requirements apply, how errors or pagination are surfaced, or that body/query are forwarded verbatim. The path-format examples are the only behavioral hint offered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the universal scope and the routing rule. No filler, though at this brevity it omits content that would be valuable rather than trimming redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter universal API passthrough with no annotations and no output schema, the description is far too thin. An agent gets no information on authentication, request body/query encoding, destructive-method risk, or response shape — all of which matter for a tool that can hit any endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the `path` format with two concrete examples ('/zones', '/zones/{id}/dns_records'), which adds real meaning, but `body`, `query`, and `method` get no explanation at all beyond the schema's bare enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Call ANY Cloudflare API v4 endpoint') and positions itself as the universal escape hatch relative to the specific siblings ('anything not covered below'). Clear what it does, though the sibling differentiation relies on an out-of-band list rather than naming tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for anything not covered below' is an explicit fallback rule that routes the agent away from this tool when a specific sibling (cf_dns_create, cf_purge_cache, etc.) applies. It stops short of guidance on method choice or prerequisites, but the when-to-use condition is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cf_verifyB

Verify the API token (status + which it is).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It hints at output ('status + which it is') but says nothing about whether an invalid token throws, returns an error status, or which token source is checked (env var, config file), nor about rate limits. 'Which it is' is suggestive but vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. The parenthetical is terse to the point of ambiguity but the definition is efficiently sized for what it covers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain return values, and it only partially does ('status + which it is'). For a zero-param verification tool this is minimally adequate, but the shape of 'status' and how failures surface are left to guesswork.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to document. Baseline 4 applies; no parameter confusion is possible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Verify' with the resource 'API token', plus a parenthetical naming what comes back (status and which token). It is clearly distinct from the zone/DNS/cache siblings, though it doesn't explicitly say so.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a credential pre-flight check before issuing cf_request or DNS calls. There is no explicit when-to-use statement and no mention of what to do if verification fails.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.0
    • First observedcf_dns_create
    • First observedcf_dns_delete
    • First observedcf_dns_list
    • First observedcf_dns_update
    • First observedcf_list_zones
    • First observedcf_purge_cache
    • First observedcf_request
    • First observedcf_verify

TDQS

B3.3/5.0

Scored across 8 tools

Disambiguation4/5

The specific tools (cf_verify, cf_list_zones, cf_dns_list/create/update/delete, cf_purge_cache) each target a distinct resource+action and are easy to tell apart. The only overlap is cf_request, a universal catch-all that can technically do anything the specific tools do, but the description explicitly frames it as a fallback, mitigating most ambiguity.

Naming Consistency4/5

All tools share the cf_ prefix and snake_case casing, which is clean and predictable. The pattern is mostly verb_noun (list_zones, purge_cache) but cf_dns_list is noun_verb while cf_dns_create/update/delete are noun_verb variants, a minor deviation rather than a real inconsistency.

Tool Count5/5

Eight tools is a well-scoped set: a small set of DNS CRUD operations, zone listing, cache purge, verification, and a universal escape hatch. Each tool earns its place without redundancy.

Completeness4/5

DNS record lifecycle is fully covered (list, create, update, delete) plus cache purge and token verification, with cf_request backfilling zone management and other endpoints. Only minor gaps exist (e.g. no explicit zone create/delete tool), but the universal tool makes these reachable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers