Skip to main content
Glama

Edit Cloudflare zone settings

cloudflare_zone_setting_edit
DestructiveIdempotent

Change up to 20 Cloudflare zone settings in order, validating each one first so nothing is sent when a change is refused. Use it to update SSL, cache, TLS and security options safely.

Instructions

Change 1 to 20 settings of a Cloudflare zone, in order. Every setting is read first, and nothing is sent if any change is refused: a value the setting does not accept, a setting that is already at the value, a setting the zone's plan does not let you change, or a change that lowers protection (a lower step of ssl, min_tls_version or security_level, or turning off always_use_https, automatic_https_rewrites, tls_1_3 or email_obfuscation); use cloudflare_zone_setting_weaken for those. If a later change fails, the result lists what was changed, the failure and the settings not sent. Zones are looked up only in the account's own zones.

Input Schema

NameRequiredDescriptionDefault
zoneYesThe zone domain or 32-hex id.
accountNoThe label of the credential pair to use, or "default" for the unlabeled one; left out, the unlabeled pair, else the only label.
changesYes1 to 20 changes, each setting at most once, applied in order. Allowed values: ssl: off|flexible|full|strict; always_use_https: on|off; min_tls_version: 1.0|1.1|1.2|1.3; tls_1_3: on|off|zrt; automatic_https_rewrites: on|off; http3: on|off; ipv6: on|off; websockets: on|off; development_mode: on|off; security_level: off|essentially_off|low|medium|high|under_attack; cache_level: basic|simplified|aggressive; browser_cache_ttl: 0|30|60|120|300|1200|1800|3600|7200|10800|14400|18000|28800|43200|57600|72000|86400|172800|259200|345600|432000|691200|1382400|2073600|2678400|5356800|16070400|31536000; always_online: on|off; email_obfuscation: on|off.

Output Schema

NameRequiredDescriptionDefault
zoneYesThe zone the settings belong to.
labelYesThe account label.
failedNoThe change that failed after earlier ones were applied; the rest were not sent.
changedYesThe changes that were applied, in order.
not_sentNoThe settings after the failed one, which were not sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, but the description adds real operational detail beyond them: a read-before-write validation pass, refusal of no-op changes, plan-based rejections, and partial-application semantics ('If a later change fails, the result lists what was changed, the failure and the settings not sent'). The one small tension is that already-at-the-value changes are refused rather than treated as a silent success, which an agent might find surprising given idempotentHint=true; this is not a contradiction of state, but it is worth noting.

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?

Front-loaded with the core action and limit, then the rejection rules and the alternative tool. The parenthetical list of protection-lowering settings is dense and long, but every clause carries decision-relevant information and nothing is padding.

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

Completeness5/5

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

For a batch mutation with a rich enum schema and an existing output schema, the description covers what is needed: pre-validation behavior, refusal categories, the escape hatch sibling, partial-failure reporting, and zone lookup scope. Return-value shapes are left to the output schema, which is correct.

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 100%, and the schema already documents the 1-20 bounds, per-setting cardinality, ordering and per-value domains for every setting. The description mostly restates ordering and the 20-item cap, adding no new parameter-level syntax or format guidance. Baseline 3 is appropriate when the schema carries this much.

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

Purpose5/5

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

States a specific verb and resource with scope: 'Change 1 to 20 settings of a Cloudflare zone, in order.' It goes further and names the sibling tool that handles the excluded case ('use cloudflare_zone_setting_weaken for those'), so an agent can separate this tool from cloudflare_zone_setting_weaken without inspecting either schema.

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

Usage Guidelines5/5

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

Enumerates the concrete conditions under which nothing is sent (invalid value, already-at-value, plan restriction, protection-lowering change) and routes the last case to a specific alternative tool. It also adds a scope constraint ('Zones are looked up only in the account's own zones'), which tells the agent what lookups will and will not succeed.

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