cloudflare-mcp-go
This MCP server lets MCP clients inspect and investigate a Cloudflare account through natural language, with read-only tools plus optional write operations.
List and inspect zones, DNS records, DNSSEC, DNS analytics, and export/import DNS records.
View firewall rules, WAF managed rulesets, rulesets, IP access rules, and rate limiting rules.
Query security events, HTTP request logs by Ray ID or time range, and Logpush/Instant Logs/Logs Explorer datasets.
Review Security Center insights, audits, scans, and attack-surface issues.
Look up threat intelligence for IPs, domains, URLs, ASNs, WHOIS, passive DNS, and indicator feeds/sinkholes.
Manage accounts, members, roles, subscriptions, API tokens, audit logs, and Workers KV namespaces/pairs.
Optional write tools for DNS, firewall/WAF, rate limits, Logpush, Security Center, intel feeds, accounts, tokens, and KV when CLOUDFLARE_MCP_ENABLE_WRITE=true.
Provides tools for interacting with the Cloudflare API v4, enabling security triage and investigation across zones, DNS records, WAF and firewall rules, rate limits, security events, HTTP request logs, Security Center insights, threat intelligence, and account audit logs.
cloudflare-mcp-go
An MCP (Model Context Protocol) server for the Cloudflare API v4, written in Go.
It lets any MCP client (Claude, and other MCP-compatible tools) inspect and investigate your Cloudflare account through natural language: zones, DNS, WAF and firewall rules, rate limits, HTTP request logs, Security Center insights, and threat intelligence. The server is read-focused and geared toward security triage and investigation workflows.
Quick start
Requires a Cloudflare API token and Go 1.25+.
Add it to Claude Code with a single command:
claude mcp add cloudflare \
-e CLOUDFLARE_API_TOKEN=your-api-token \
-- go run github.com/M-Yamashita01/cloudflare-mcp-go@latestThat is all — no manual clone or build required. CLOUDFLARE_ACCOUNT_ID is optional and only needed by a few tools (accounts, audit logs, KV, intel).
Related MCP server: Cloudflare API MCP
Tools
117 read-only tools grouped by domain, plus optional write tools (marked below) that are registered only when CLOUDFLARE_MCP_ENABLE_WRITE=true.
Zones & DNS
Tool | Description |
| List zones in your account (ID, name, status, plan). |
| Get details of a specific zone. |
| Get a zone's configuration settings (SSL mode, min TLS, cache level, security level). |
| Purge a zone's cache: everything, or by file/tag/host/prefix (write; requires |
| List DNS records for a zone (type, name, content, TTL, proxy status). |
| Get a single DNS record by ID (type, name, content, TTL, proxy status, comment). |
| DNS query analytics: query counts, response codes, query type distribution. |
| DNS query analytics grouped by time interval (time-series). |
| Export all DNS records for a zone as a BIND zone file. |
| DNS record usage counts for a zone (toward plan limits). |
| Get a zone's DNS settings (Foundation DNS, multi-provider, nameservers, zone mode). |
| Get DNSSEC details for a zone (status, DS record, digest, key tag, algorithm). |
| List DNSSEC Zone Signing Keys (ZSKs) for a zone (multi-signer DNSSEC). |
| List DNS records discovered by a scan, pending review. |
| Create a DNS record (write; requires |
| Update a DNS record, partial fields (write; requires |
| Delete a DNS record by ID (write; requires |
| Overwrite (fully replace) a DNS record by ID (write; requires |
| Apply a batch of DNS record changes atomically (write; requires |
| Import DNS records from a BIND zone file (write; requires |
| Scan a zone for DNS records at common names (write; requires |
| Trigger an async DNS record scan (write; requires |
| Accept/reject DNS records found by a scan (write; requires |
| Update a zone's DNS settings (write; requires |
| Edit a zone's DNSSEC status (write; requires |
| Delete a zone's DNSSEC records (write; requires |
Firewall, WAF & rate limiting
Tool | Description |
| IP access rules that block, challenge, or allow IPs, CIDRs, ASNs, or countries. |
| Create an IP access rule (write; requires |
| Update an IP access rule's mode/notes (write; requires |
| Delete an IP access rule by ID (write; requires |
| WAF managed rulesets entrypoint and which managed rulesets are enabled. |
| Custom firewall rules with expressions, actions, and priorities. |
| Full configuration of a specific firewall rule by ID. |
| All rulesets for a zone (metadata only). |
| A specific ruleset with all its rules. |
| Create a ruleset (write; requires |
| Update a ruleset's name/description/rules (write; requires |
| Delete a ruleset by ID (write; requires |
| Rate limiting rules: thresholds, match criteria, actions. |
| Full configuration of a specific rate limiting rule by ID. |
| Create a rate limit rule (write; requires |
| Update a rate limit rule (write; requires |
| Delete a rate limit rule by ID (write; requires |
Security events & logs
Tool | Description |
| Query security events via the GraphQL Analytics API for triage. |
| Look up an HTTP request log entry by Cloudflare Ray ID. |
| Retrieve HTTP request logs for a time range (max 1h, data ≥5min old). |
| List available HTTP request log fields. |
| List Logpush jobs for a zone (dataset, destination, enabled). |
| Get a specific Logpush job in a zone by ID. |
| List Logpush jobs for a specific dataset in a zone. |
| List available Logpush fields for a dataset in a zone. |
| List Instant Logs (edge) jobs for a zone. |
| Get a zone's log retention flag. |
| List Logs Explorer datasets for a zone. |
| List available Logs Explorer datasets for a zone. |
| Get a Logs Explorer dataset for a zone by ID. |
| Run a Logs Explorer SQL query for a zone (GET). |
| List Logpush jobs for an account. |
| Get a specific Logpush job in an account by ID. |
| List Logpush jobs for a dataset in an account. |
| List available Logpush fields for a dataset in an account. |
| List Logpush transformers for an account. |
| Get a Logpush transformer in an account by ID. |
| Get a Logpush transformer's content in an account. |
| List versions of a Logpush transformer in an account. |
| Get account audit logs (v2) with since/before/limit. |
| List product categories for account audit logs (v2). |
| Get change history for an account audit log entry (v2). |
| Get the Customer Metadata Boundary (CMB) config for an account. |
| List Logs Explorer datasets for an account. |
| List available Logs Explorer datasets for an account. |
| Get a Logs Explorer dataset for an account by ID. |
| Run a Logs Explorer SQL query for an account (GET). |
| List stored log files for an account (start/end/bucket). |
| Retrieve stored log entries (NDJSON) for an account. |
| Create an account Logpush job (write; requires |
| Update an account Logpush job (write; requires |
| Delete an account Logpush job (write; requires |
| Request an account Logpush ownership challenge (write; requires |
| Validate an account Logpush ownership challenge (write; requires |
| Create an account Logpush transformer (write; requires |
| Preview an account Logpush transformer (write; requires |
| Update an account Logpush transformer (write; requires |
| Delete an account Logpush transformer (write; requires |
| Validate an account Logpush destination (write; requires |
| Check an account Logpush destination exists (write; requires |
| Validate account Logpush origin options (write; requires |
| Update the Customer Metadata Boundary config (write; requires |
| Delete the Customer Metadata Boundary config (write; requires |
| Create an account Logs Explorer dataset (write; requires |
| Update an account Logs Explorer dataset (write; requires |
| Delete an account Logs Explorer dataset (write; requires |
| Run an account Logs Explorer SQL query (POST) (write; requires |
| Create a zone Logpush job (write; requires |
| Update a zone Logpush job (write; requires |
| Delete a zone Logpush job (write; requires |
| Create a zone Instant Logs job (write; requires |
| Request a zone Logpush ownership challenge (write; requires |
| Validate a zone Logpush ownership challenge (write; requires |
| Validate a zone Logpush destination (write; requires |
| Check a zone Logpush destination exists (write; requires |
| Validate zone Logpush origin options (write; requires |
| Enable/disable zone log retention (write; requires |
| Create a zone Logs Explorer dataset (write; requires |
| Update a zone Logs Explorer dataset (write; requires |
| Delete a zone Logs Explorer dataset (write; requires |
| Run a zone Logs Explorer SQL query (POST) (write; requires |
Security Center
Tool | Description |
| Security Center insights with severity, type, and classification. |
| Security Center insights for an account (account scope). |
| Account insight counts by dimension (class/severity/type). |
| Account Security Center insights audit log. |
| Account partner-provided insight count. |
| Recent Security Center scans for an account. |
| Audit log for an account Security Center insight. |
| Context (affected resources) for an account insight. |
| Partner integration settings for an account. |
| Partner-discovered shadow zones for an account. |
| Hosts in a partner-discovered shadow zone. |
| Security Center state for an account. |
| Zone Security Center insights audit log. |
| Zone partner-provided insight count. |
| Recent Security Center scans for a zone. |
| Audit log for a zone Security Center insight. |
| Partner-discovered shadow hosts for a zone. |
| Get a zone's security.txt configuration. |
| Update an account insight classification (write; requires |
| Dismiss/archive an account insight (write; requires |
| Start an on-demand account Security Center scan (write; requires |
| Update Security Center partner integration settings for an account (write; requires |
| Update the Security Center state for an account (write; requires |
| Start an on-demand zone Security Center scan (write; requires |
| Update the classification of a Security Center insight in a zone (write; requires |
| Dismiss or un-dismiss a Security Center insight in a zone (write; requires |
| Create or update the security.txt for a zone (write; requires |
| Delete the security.txt for a zone (write; requires |
| Aggregated insight counts by severity, class, or type. |
Threat intelligence
Tool | Description |
| Threat intelligence for an IP: geolocation, ASN, infrastructure, threat categories. |
| Security intelligence for a domain: risk scores, categories, DNS info. |
| Threat intelligence for multiple domains at once. |
| Historical threat data and classifications for a domain. |
| Domains that have resolved to a given IP (passive DNS). |
| WHOIS registration data for a domain. |
| ASN overview and subnet allocations. |
| Security Center attack-surface issue types. |
| Security Center attack-surface issues (misconfigurations, exposures). |
| Attack-surface issue counts by class. |
| Attack-surface issue counts by severity. |
| Attack-surface issue counts by type. |
| Available threat-intelligence IP lists for an account. |
| Threat intel details for multiple domains (GET bulk). |
| Threat intelligence for a URL (risk, categories). |
| List indicator feeds owned by an account. |
| List indicator feed view permissions for an account. |
| Get indicator feed metadata by ID. |
| Get raw indicator feed data by ID (STIX/CSV). |
| Download latest indicator feed snapshot by ID. |
| Get status of an indicator feed upload. |
| List DNS sinkholes owned by an account. |
| Get a DNS sinkhole by ID. |
| List ingress rules for a sinkhole. |
| Dismiss/archive a Security Center insight (write; requires |
| Create an indicator feed (write; requires |
| Grant indicator feed view permission (write; requires |
| Create an indicator feed provider (write; requires |
| Revoke indicator feed view permission (write; requires |
| Update indicator feed metadata (write; requires |
| Upload a new indicator feed snapshot (write; requires |
| Report a domain/IP/URL miscategorization (write; requires |
| Create a DNS sinkhole (write; requires |
| Update a DNS sinkhole (write; requires |
| Delete a DNS sinkhole by ID (write; requires |
Account & audit
Tool | Description |
| Cloudflare accounts accessible with the current token. |
| Get details of a specific account by ID. |
| List members of an account (user, roles, status). |
| Get an account member by ID (user, roles, policies). |
| List roles available in an account. |
| Get an account role by ID (name, permissions). |
| List subscriptions for an account. |
| Get an account subscription by ID. |
| Get a subscription's cancellation reason. |
| List account-owned API tokens. |
| List permission groups for account API tokens. |
| Verify the account API token is valid and active. |
| Get an account API token by ID (name, policies, status). |
| Create a new account (write; requires |
| Update an account (write; requires |
| Delete an account by ID (write; requires |
| Add a member to an account (write; requires |
| Update an account member (write; requires |
| Remove a member from an account (write; requires |
| Create an account subscription (write; requires |
| Cancel a pending subscription downgrade (write; requires |
| Update an account subscription (write; requires |
| Delete an account subscription (write; requires |
| Append an action to a subscription (write; requires |
| Record a subscription cancellation reason (write; requires |
| Create an account API token (write; requires |
| Update an account API token (write; requires |
| Delete an account API token by ID (write; requires |
| Roll (regenerate) an account API token value (write; requires |
| Account audit log entries (who changed what and when). |
| User-scoped audit log entries. |
| Workers KV namespaces in an account. |
| Get a KV namespace by ID. |
| Get multiple KV pairs at once (read-only; POST bulk/get). |
| List keys in a KV namespace (prefix filter, cursor pagination). |
| Read the raw stored value for a key in a KV namespace. |
| Read the metadata associated with a key in a KV namespace. |
| Write a key-value pair, optional TTL (write; requires |
| Delete a key-value pair by key (write; requires |
| Create a KV namespace (write; requires |
| Delete a KV namespace by ID (write; requires |
| Rename a KV namespace (write; requires |
| Write multiple KV pairs at once (write; requires |
| Delete multiple KV pairs at once, DELETE bulk (write; requires |
| Delete multiple KV pairs at once, POST bulk/delete (write; requires |
Usage examples
Once connected, ask your MCP client things like:
"List the DNS records for example.com."
"A request was blocked with Ray ID 8f1c2d3e4f5a6b7c — why?"
"Show me the high-severity Security Center insights for this zone."
"Is IP 203.0.113.10 known to be malicious? What domains resolve to it?"
"Which firewall rules are currently challenging traffic?"
Configuration
The server communicates over stdio and can be connected from any MCP client.
Variable | Required | Purpose |
| Yes | Authenticates all Cloudflare API calls. |
| No | Needed by account, audit log, KV, and intel tools. |
| No | Enables write (mutation) tools when set to exactly |
Claude Code
claude mcp add cloudflare \
-e CLOUDFLARE_API_TOKEN=your-api-token \
-- go run github.com/M-Yamashita01/cloudflare-mcp-go@latestOr, if you have the repository cloned locally:
claude mcp add cloudflare -e CLOUDFLARE_API_TOKEN=your-api-token -- go run .Claude Desktop / other MCP clients
Build the binary and point your client's MCP config at it. On macOS the Claude Desktop config lives at ~/Library/Application Support/Claude/claude_desktop_config.json:
go build -o cloudflare-mcp-go .{
"mcpServers": {
"cloudflare": {
"command": "/path/to/cloudflare-mcp-go",
"env": {
"CLOUDFLARE_API_TOKEN": "your-api-token"
}
}
}
}Any MCP-compatible client can connect via stdio transport using the same pattern.
Build & run manually
go build -o cloudflare-mcp-go .
export CLOUDFLARE_API_TOKEN="your-api-token"
./cloudflare-mcp-goProject structure
main.go # Entry point
internal/
cfapi/ # Shared Cloudflare API client
tool/
zone/ # Zone management tools
dns/ # DNS record & analytics tools
account/ # Account management tools
audit/ # Audit log tools
kv/ # Workers KV tools
security/ # Firewall, WAF & rate limiting tools
securitycenter/ # Security Center insight tools
intel/ # Threat intelligence tools
logs/ # HTTP request log tools
doc/
architecture.md # Architecture documentationSee doc/architecture.md for detailed design documentation.
Available Tools
117 toolsdownload_indicator_feed_dataB
Download the latest snapshot data of a threat-intelligence indicator feed by feed ID. Returns the raw feed body.
| Name | Required | Description | Default |
|---|---|---|---|
| feed_id | Yes | required,The ID of the indicator feed | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 that a raw feed body is returned, but says nothing about read-only nature, permission requirements, snapshot staleness, size/format, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action and scope front-loaded and the return value immediately after; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does state what comes back (raw feed body), which is the key missing piece. However, for a data-download tool it omits format, size/pagination expectations, and permission context that an agent would need to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are already documented as required with their IDs. The description only restates that the feed is selected 'by feed ID', adding no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Download) and resource (latest snapshot data of a threat-intelligence indicator feed), and clarifies it returns the raw feed body. It is clear it is not the feed metadata tool, but it never explicitly names or contrasts itself with the sibling get_indicator_feed or get_indicator_feed_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no prerequisites (e.g. how to obtain feed_id, whether the feed must exist or be uploaded first), and no alternatives named. The only implied usage is that a feed ID is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dns_recordsA
Export all DNS records for a Cloudflare zone as a BIND zone file. Returns the raw BIND-format text.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone whose DNS records to export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format ('raw BIND-format text'), and 'Export' implies a read-only operation, but it does not explicitly state read-only status, required permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste, front-loading the action and scope before the return format. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter export tool, the schema fully covers the required input and the description explains the return format in the absence of an output schema. Minor gaps remain around read-only confirmation and permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single zone_id parameter. The description adds no parameter-level detail, which matches the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Export), resource (DNS records), scope (all records for a Cloudflare zone), and output format (BIND zone file). This clearly distinguishes it from sibling tools like list_dns_records and get_dns_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the output format (BIND zone file), suggesting use when a zone-file export is needed rather than a simple list. However, no explicit when-to-use guidance or named alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_audit_log_historyB
Get the resource change history for a specific account audit log entry (v2) by entry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | required,The ID of the audit log entry | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a read operation via 'Get' but does not state read-only safety, authentication requirements, pagination behavior, or return characteristics beyond the generic phrase 'resource change history.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant clauses. It quickly conveys the key scope and required identifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool, the description is minimally adequate: it states the operation and return subject. However, it omits usage guidance, sibling differentiation, and behavioral context, and there is no output schema or annotations to fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the input schema. The description loosely maps 'id' to entry ID and 'account_id' to a specific account, but adds no format, syntax, or constraint details beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the resource change history for a specific account audit log entry (v2) by entry ID.' This clearly distinguishes it from list-oriented audit log tools, though it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this when you have a specific audit log entry ID and need its resource change history. There is no explicit guidance on when to prefer this over siblings such as get_account_audit_logs_v2 or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_audit_logs_v2B
Get account audit logs (Version 2) for a Cloudflare account. Supports since/before time filters and a limit. Records who changed what and when.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of entries to return | |
| since | No | Start time in RFC3339 format | |
| before | No | End time in RFC3339 format | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the semantic content of the return (who changed what and when) and implies a safe read via 'Get', but says nothing about permissions required, retention window, pagination/cursor behavior, or ordering, which matters for an audit-log endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, leading with the resource and scope before the filter support. The closing clause about who/what/when earns its place by conveying what the records actually contain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with four fully documented parameters and no output schema, the description covers resource, scope, and record semantics. It is slightly short on return shape and pagination expectations, but nothing critical to a correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, since, before and account_id are already documented with types and RFC3339 format. The description only restates that time filters and a limit exist, adding no format, boundary, default, or max-value detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (get account audit logs) scoped to a Cloudflare account, notes the V2 version, and adds the useful gloss that records capture who changed what and when. It does not distinguish itself from close siblings such as get_account_audit_log_history or get_account_insights_audit_log, and never explains what V2 changes versus a V1, so an agent must guess among several audit-log readers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives named. The only context is that time filters and a limit are supported, which is a capability statement rather than routing advice, leaving the agent unable to tell why it would pick this over the other audit-log tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_detailsA
Get details of a specific Cloudflare account by ID (name, settings, created date).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 does not disclose that this is a read-only, non-destructive lookup, nor any auth/permission requirements, and there is no output schema to fall back on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 16-word sentence with zero filler, leading with the verb and resource and listing the returned fields inline. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param lookup the description is close to adequate, but with no annotations and no output schema it should state that this is a safe read operation and could clarify return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single account_id parameter is fully documented by the schema. The description adds no format or syntax detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (details of a specific Cloudflare account by ID) and enumerates the returned fields (name, settings, created date). This distinguishes it from the many sibling list_account_* and get_account_* tools that target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the tool is for retrieving one known account, which implicitly contrasts with list_accounts. However, no alternative is explicitly named and no when-not condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_insight_contextA
Get the context (affected resources and details) for a specific Security Center insight in a Cloudflare account by issue ID.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | required,The ID of the Security Center issue/insight | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses that the result contains affected resources and details, which is meaningful for a read tool, but it says nothing about permissions, rate limits, or error behavior when an unknown issue ID is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence with the operation and the unique key front-loaded; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read with no annotations and no output schema, the description gives an adequate account of what is returned (affected resources and details). It could go slightly further, but nothing critical for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (account_id, issue_id) are already documented in the schema. The description adds only the linkage that issue_id identifies the insight within the account; the baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (context for a Security Center insight) and clarifies what 'context' means (affected resources and details). It distinguishes itself from list-style siblings by specifying retrieval by issue ID, though it never names an alternative tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific Security Center insight ... by issue ID' implies the precondition (you already have the issue ID) but gives no explicit when-to-use/when-not guidance or named alternatives among the many sibling insight tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_insight_countsB
Get aggregated Security Center insight counts for a Cloudflare account by dimension (class, severity, or type).
| Name | Required | Description | Default |
|---|---|---|---|
| dimension | Yes | required,The dimension to group by: class, severity, or type | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden. It does disclose meaningful behavior — the result is aggregated counts (not raw insights), grouped by a chosen dimension — which separates it from list_account_security_insights. It says nothing about time windowing, pagination, or permissions for what is presumably a read-only aggregation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; verb, resource, scope, and parameter caveat are all delivered immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter aggregation tool with no output schema and no annotations, the definition is adequate but thin: it never explains what a count result looks like, whether the aggregation is time-bounded, or how it relates to the dedicated by-class/severity/type siblings. Nothing needed to call it is strictly missing, but the response shape and scope are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and dimension are already documented in the schema. The description only repeats the three allowed dimension values, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: aggregated Security Center insight counts for a Cloudflare account, scoped by dimension. It does not, however, differentiate itself from close siblings such as get_attack_surface_issue_counts_by_class/severity/type or get_insight_counts, leaving the agent to infer why the dimension-parameterized variant exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternative. The parenthetical listing of class/severity/type implicitly signals that this tool can replace the three per-dimension siblings, but that is left for the agent to infer rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_insights_audit_logB
Get the Security Center insights audit log for a Cloudflare account (changes to insights over time).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full behavioral burden. 'Get' and 'audit log' imply a read, but the description says nothing about pagination, time-range filtering, retention limits, or required permissions — all meaningful for an account-scoped audit endpoint. The only added context is that the entries represent changes over time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, verb front-loaded, with the scope qualifier and the content clarification packed in without waste. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers what is being fetched but not how results are returned or bounded. With zero annotations, some pagination/time-window guidance would be needed to reach 4-5; as written it is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single account_id parameter, and the description adds no syntax or format guidance beyond it. Per the calibration rule, a high-coverage single-parameter schema establishes a baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus a precisely-scoped resource ('Security Center insights audit log for a Cloudflare account'), and the parenthetical '(changes to insights over time)' clarifies what the log actually contains, distinguishing it from sibling counters like get_account_insight_counts and get_account_insight_context. It does not explicitly name the zone-level sibling get_zone_insights_audit_log, so differentiation is inferential.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when this tool should be chosen over the numerous adjacent audit/insight tools (get_account_audit_logs_v2, get_account_issue_audit_log, list_account_security_insights). The scope is implied only by the name and the phrase 'insights audit log'. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_issue_audit_logB
Get the audit log for a specific Security Center insight (issue) in a Cloudflare account by issue ID.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | required,The ID of the Security Center issue/insight | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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. 'Get' implies a read, but it says nothing about required permissions, pagination, retention window, or what an audit log entry contains for an issue.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single economical sentence with the resource and scoping front-loaded and no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool this is minimally adequate, but with no annotations and no output schema the description should say more about the returned audit log shape or pagination behavior to be genuinely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description restates the 'by issue ID' lookup key but adds no format, validity, or sourcing detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (audit log for a specific Security Center insight/issue) with account scoping and lookup key ('by issue ID'). It is clear on its own, but does not distinguish itself from near-identical siblings like get_account_insights_audit_log or get_zone_issue_audit_log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. The crowded sibling set (get_account_insights_audit_log, get_zone_issue_audit_log, get_account_audit_log_history) makes the absence of routing guidance a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_log_datasetC
Get a specific Logs Explorer dataset for a Cloudflare account by dataset ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| dataset_id | Yes | required,The ID of the Logs Explorer dataset |
TDQS
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. The word 'Get' implies a read, but nothing is said about permissions, error behavior when the dataset ID is invalid, or whether the dataset is account-scoped vs. zone-scoped. For a no-annotation tool this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and lookup key front-loaded. No wasted words, though it is arguably too terse to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Two fully documented params and no output schema mean the schema does most of the work. However, with zero annotations and no sibling differentiation from get_log_dataset, the description leaves the agent short of the context needed to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and dataset_id are already documented in the schema. The description adds only the phrase 'by dataset ID,' which restates the schema rather than adding format or semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (Logs Explorer dataset), and scope (for a Cloudflare account by dataset ID). This clearly separates it from the list_* siblings, but it does not distinguish itself from the similar sibling get_log_dataset, leaving ambiguity about which getter to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and names no alternative. An agent reading it cannot tell when to choose this over get_log_dataset, list_account_log_datasets, or the other dataset getters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_logpush_jobA
Get details of a specific Logpush job in a Cloudflare account by job ID.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | required,The ID of the Logpush job | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and 'Get details of...' does convey a non-mutating retrieval. Beyond that it says nothing about permissions required, error behavior for an invalid job ID, or response shape, which for a 2-param account-scoped read tool is a modest but real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the scope and identifier constraint come before anything else an agent would need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 must stand alone, and for a simple two-parameter account-scoped getter it covers what is retrieved, in which scope, and keyed on what. The only omission is any hint about the returned job object's fields, which is minor for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and job_id are already documented structurally; the description adds only the 'by job ID' framing, which the schema already supplies. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get details) and resource (Logpush job) and adds scope qualifiers that matter here: 'in a Cloudflare account' and 'by job ID', which separate it from the zone-scoped sibling get_logpush_job. It does not, however, explicitly name the sibling list_account_logpush_jobs it depends on, so differentiation is good but not maximal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'by job ID' suggests the caller must already have a job ID, presumably from list_account_logpush_jobs, but no when-to-use or when-not-to-use guidance, prerequisites, or alternative tools are named. Adequate for a simple getter, but the agent is left to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_logpush_transformerB
Get a specific Logpush transformer in a Cloudflare account by transformer ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| transformer_id | Yes | required,The ID of the Logpush transformer |
TDQS
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, yet it adds nothing beyond the verb: no indication of read-only nature, error behavior for unknown IDs, auth/permission requirements, or rate limits. It largely restates the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, front-loading the verb and resource immediately. Nothing is wasted and the lookup key is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, fully documented get tool with no output schema and no annotations, the definition is minimally adequate. It does not explain what a Logpush transformer is or what the response contains, but the schema and simplicity limit the risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and transformer_id are already documented in the schema. The description's phrase 'in a Cloudflare account by transformer ID' merely echoes the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Get) plus a specific resource (a Logpush transformer in a Cloudflare account) with the lookup key (transformer ID). This distinguishes it from siblings like list_account_logpush_transformers and get_account_logpush_transformer_content, though it doesn't name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch a single transformer when its ID is known. There is no explicit when-to-use vs alternatives guidance nor any conditions or exclusions that would route an agent between this and the list/content variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_logpush_transformer_contentB
Get the content (transform definition) of a specific Logpush transformer in a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| transformer_id | Yes | required,The ID of the Logpush transformer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get' implies read-only, but nothing is said about permissions, error behavior for missing IDs, or what the transform definition looks like; only the trivial fact that it retrieves is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming verb, resource, and scope with no filler. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description never indicates what a 'transform definition' contains (fields, format, or empty/missing behavior). Adequate for a two-parameter read on the input side but thin on the return side.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so account_id and transformer_id are fully documented in the schema. The description adds no format, scoping, or validity details beyond that, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') and resource ('content/transform definition of a Logpush transformer') with the scope 'in a Cloudflare account'. It implicitly distinguishes itself from the sibling get_account_logpush_transformer (metadata) by stressing 'content', but that distinction is left for the agent to infer rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives such as get_account_logpush_transformer or list_account_logpush_transformer_versions. The agent must guess which of the several transformer-related siblings returns the transform definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_memberA
Get details of a specific Cloudflare account member by member ID (user, roles, policies, status).
| Name | Required | Description | Default |
|---|---|---|---|
| member_id | Yes | required,The ID of the account member | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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. 'Get details' strongly implies a read-only, non-destructive lookup, but this is never stated and no side effects, auth requirements, or rate-limit behavior are disclosed. The parenthetical clarifies the shape of what comes back, which is modest added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One well-formed sentence that puts the action and the retrieval key up front with no filler. It is appropriately sized for a simple getter, though the trailing field list mixes return-value detail into the purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, fully-schema-documented getter with no output schema, the description covers purpose and gives a hint at the returned shape (user, roles, policies, status). The main gap is routing versus the list_account_members sibling that exists in the toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both account_id and member_id are documented as required IDs), so the baseline is 3. The description's parenthetical lists return fields rather than adding meaning to the parameters, so it does not compensate or exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (account member), and adds scope via 'by member ID' plus the returned fields (user, roles, policies, status). It implicitly contrasts with the sibling list_account_members through the word 'specific', but never names that sibling, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: retrieving one member by ID contrasts with listing all members, but there is no explicit 'use this when you have a member_id, otherwise use list_account_members' guidance and no prerequisites (e.g., permissions) stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_partner_insight_countB
Get the count of partner-provided Security Center insights for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. The verb 'Get the count' strongly implies a non-destructive read, but it says nothing about required permissions, whether insights are filtered/aggregated, or how the count is produced. For a simple count endpoint the risk surface is small, so this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; every word contributes to identifying the resource and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter count endpoint with no output schema, the description supplies enough to call it correctly; the return value (an integer count) is self-evident. It could be more complete by clarifying what 'partner-provided' encompasses relative to non-partner insights, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single documented account_id parameter, so the schema already carries the full parameter burden. The description adds no format or constraint detail beyond that, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (get count), a precise resource (partner-provided Security Center insights), and a scope (a Cloudflare account), which separates it from the sibling get_zone_partner_insight_count. It does not, however, explicitly contrast itself with get_account_insight_counts or list_account_security_insights, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-naming guidance at all. An agent must infer from the name alone whether this or get_account_insight_counts is the right call for a count of insights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_recent_scansB
Get the recent Security Center scans for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a read-only operation via 'Get' but does not disclose authentication requirements, rate limits, time-window semantics for 'recent', pagination, or what scan data is returned. This is a notable gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the operation, resource, and scope immediately, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter and no output schema or annotations. The description is minimally sufficient for an agent to understand the basic operation, but it does not clarify 'recent', return format, or how it differs from closely related security scan tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single account_id parameter is already fully documented in the schema. The description does not add syntax, format, or constraint details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb and resource: 'Get the recent Security Center scans for a Cloudflare account.' It identifies the scope as account-level, which helps distinguish it from get_zone_recent_scans. However, it does not explicitly name or contrast with sibling tools, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no guidance on when to use it versus alternatives such as get_zone_recent_scans or list_account_security_insights. There are no prerequisites, exclusions, or context cues beyond the tool name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_roleC
Get details of a specific Cloudflare account role by role ID (name, description, permissions).
| Name | Required | Description | Default |
|---|---|---|---|
| role_id | Yes | required,The ID of the role | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 does not state the auth/permission requirements for reading account roles, rate limits, or that it is strictly read-only (only 'Get' implies it). The parenthetical lists return content rather than behavior, so disclosure is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with no filler, and the identity of the resource is front-loaded. It is appropriately sized for a simple lookup, if slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two required, fully-documented params and no output schema, the description covers the essentials and usefully previews returned fields (name, description, permissions). It nonetheless omits permission requirements and any routing versus list_account_roles, leaving gaps for a Cloudflare account-role lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and role_id are already documented in the schema. The description only restates role ID usage ('by role ID') and adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource+scope: retrieves a single Cloudflare account role identified by role ID, and even enumerates the returned fields (name, description, permissions). The singular 'a specific... role by role ID' implicitly separates it from the sibling list_account_roles, but no sibling is named explicitly, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use/when-not guidance, no prerequisites (e.g., required API token permission to read roles), and no pointer to list_account_roles for enumeration. Retrieval-by-ID context must be inferred entirely from the phrase 'by role ID'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_security_center_stateB
Get the Security Center state (onboarding/configuration status) for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, but this is a simple single-resource read whose intent is clear. It adds the useful clarification that the returned state is an onboarding/configuration status, yet says nothing about required permissions or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the resource and its disambiguating parenthetical front-loaded; no filler and nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and full parameter documentation, the description is nearly sufficient. The only real gap is the absence of any differentiation from sibling account-level read tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (account_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no syntax or format detail beyond the schema, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Security Center state) and clarifies the ambiguous term 'state' as onboarding/configuration status. It does not, however, differentiate itself from similarly named siblings such as list_account_security_insights or get_account_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the many other account-level getters and listers in the sibling set. The read-only nature is implied by 'Get', but no conditions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_subscriptionA
Get a specific Cloudflare account subscription by its identifier (product, state, price, frequency).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| subscription_id | Yes | required,The identifier of the subscription |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get' clearly signals a read-only operation and the parenthetical enumerates returned attributes (product, state, price, frequency), which is useful, but nothing is said about authorization requirements, error behavior for unknown IDs, or whether the subscription must belong to the given account.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and lookup key come first and the parenthetical return-field hint is compact. Slightly terse rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only getter with full schema coverage, the definition is largely sufficient, and the parenthetical field list partially compensates for the absent output schema. It stops short of covering auth or error semantics, which keeps it out of the top band.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and subscription_id are already documented in the schema. The description's 'by its identifier' merely restates the lookup key without adding format, scoping, or relationship details beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific Cloudflare account subscription') and its lookup key ('by its identifier'), so the agent knows this is a single-resource fetch. It does not explicitly name the sibling list_account_subscriptions, so the singular-vs-list distinction is only implied by 'a specific'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you already have the subscription identifier. However, no alternative is named (e.g., list_account_subscriptions to discover IDs) and there is no explicit when-not guidance, leaving the agent to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_tokenA
Get details of a specific account-owned API token by token ID (name, status, policies, condition).
| Name | Required | Description | Default |
|---|---|---|---|
| token_id | Yes | required,The ID of the API token | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral disclosure. 'Get details' implies a read operation and it states the resource is account-owned and scoped by token ID, but it says nothing about permissions required, rate limits, or that this is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb, resource, key, and returned fields all appear immediately with zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating the returned fields (name, status, policies, condition), plus the account-scoping is clear. Only minor gaps remain, such as call semantics like error/not-found behavior or auth needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and token_id are already documented in the schema. The description reinforces that the lookup key is the token ID but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Get details of a specific account-owned API token by token ID'), which distinguishes a single-resource fetch from the list-oriented siblings like list_account_tokens. However, it never names that sibling or any other alternative to explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 for fetching one token when its ID is known, versus listing tokens. There is no explicit when-to-use/when-not guidance or reference to list_account_tokens or verify_account_token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asn_intelA
Get an overview of an Autonomous System Number (ASN) and its subnet allocations. Useful for understanding the network behind a suspicious IP and assessing whether an entire ASN is involved in attacks.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | required,The Autonomous System Number to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It implies a read-only operation ('Get') but does not disclose potential side effects, error conditions, required permissions, or rate limits. It adds that it returns 'overview' and 'subnet allocations,' which gives some insight into output, but not detail on edge cases or authentication requirements beyond the account_id parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. The primary action and resource are front-loaded ('Get an overview of an ASN and its subnet allocations'), followed by a concise use-case sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two required parameters and no output schema, the description adequately covers what it does (returns an overview and subnet allocations) and when to use it (analyzing suspicious IPs, ASN-level attack involvement). It lacks explicit return format or error handling details, but for a 'get' operation, this is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (asn and account_id) are already documented in the input schema. The description does not add any additional meaning or syntax details beyond what the schema provides. The mention of 'overview' and 'subnet allocations' gives context about the return value, not about the parameters themselves. Baseline of 3 is appropriate since schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and a specific resource ('overview of an Autonomous System Number (ASN) and its subnet allocations'). It also provides context on the purpose, such as 'understanding the network behind a suspicious IP' and 'assessing whether an entire ASN is involved in attacks,' which distinguishes it from sibling tools like get_ip_intel or get_whois.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance on when to use this tool: 'Useful for understanding the network behind a suspicious IP and assessing whether an entire ASN is involved in attacks.' This implies the context (IP investigation, ASN-level threat assessment) but does not explicitly name alternatives or exclusions. However, the sibling list includes get_ip_intel and get_whois, so the ASN-specific focus is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attack_surface_issue_counts_by_classA
Get Security Center attack-surface issue counts grouped by class for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get ... counts' implies a read-only, non-mutating aggregation, which is adequate for a low-risk counting tool, but no permissions, rate limits, or result shape are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the resource, grouping, and scope with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only aggregation with no output schema, the description covers what is needed to call it correctly. It could be marginally better by hinting at what 'class' values exist (cf. list_attack_surface_issue_types), but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single account_id parameter, so the schema already documents it. The phrase 'for a Cloudflare account' lightly reinforces the account scope but adds no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Get), resource (Security Center attack-surface issue counts), and scope (grouped by class, for a Cloudflare account). The 'by class' grouping cleanly distinguishes it from the sibling tools get_attack_surface_issue_counts_by_severity and get_attack_surface_issue_counts_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the grouping dimension rather than stated. The description never says when to prefer this over the by_severity or by_type siblings, nor does it note any prerequisite beyond the account ID, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attack_surface_issue_counts_by_severityC
Get Security Center attack-surface issue counts grouped by severity for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get ... counts' weakly implies a read, but there is no statement of required permissions, rate limits, or whether the account scope is enforced. For a no-annotation tool 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no filler; the resource and the grouping dimension appear immediately. It is appropriately sized for a simple single-parameter count tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only count tool with complete param coverage and no output schema this is roughly adequate, but terms like 'attack-surface issue' and the severity buckets are never defined, and no return shape is hinted at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema description coverage is 100%, so the schema already documents account_id fully. The phrase 'for a Cloudflare account' restates the scope but adds no syntax or format detail beyond the schema, matching the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Security Center attack-surface issue counts) and adds the key grouping dimension (by severity). It is distinguishable from the by_class and by_type siblings via that grouping phrase, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over get_attack_surface_issue_counts_by_class or get_attack_surface_issue_counts_by_type, nor any preconditions. The grouping phrase implies the distinction but leaves it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attack_surface_issue_counts_by_typeB
Get Security Center attack-surface issue counts grouped by type for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get ... counts' strongly implies a read-only aggregation, which is the key behavioral fact, but the description says nothing about authentication requirements, rate limits, whether a time window applies, or what the returned count grouping looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The result kind, the grouping axis, and the scope all appear before any padding, and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, the description covers the essentials but omits anything about the absence of time-range or filter parameters and gives no hint of the return shape (presumably type-to-count pairs). Adequate but with clear gaps given zero structured support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single account_id parameter, so the baseline is 3. The phrasing 'for a Cloudflare account' reinforces that account_id scopes the query, but adds no format or constraint detail beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence gives a specific verb ('Get'), a specific resource ('Security Center attack-surface issue counts'), the grouping dimension ('by type'), and the scope ('for a Cloudflare account'). This implicitly separates it from its by_class and by_severity siblings, but it never names them, so an agent must infer the distinction from the phrase 'by type' alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of the three obvious alternatives (by_class, by_severity, list_attack_surface_issues). The agent gets no criteria for choosing between the three 'counts by X' tools, which is precisely where routing errors would occur.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bulk_domain_detailsB
Get threat intelligence details for multiple domains at once (GET bulk). Returns per-domain risk and category data.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | required,List of domain names to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 does at least signal read-only behavior via 'GET bulk' and describes the return content (risk and category per domain). It omits practical behavior such as any maximum number of domains per call, how invalid or missing domains are handled, and rate/pagination characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the tool's scope, and the return shape is stated up front. Minor redundancy in '(GET bulk)'. Nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does cover the read nature and rough return content, which is enough to attempt a call. But for a bulk tool it leaves key operational questions unanswered (batch size limits, partial-failure behavior) and offers no routing versus the sibling bulk tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (domains, account_id) are already documented in the schema. The description adds no extra meaning — e.g. any cap on list size or accepted domain format — so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource+scope: it fetches threat intel for a batch of domains and names the returned data (per-domain risk and category). However, it fails to differentiate itself from the near-identical sibling get_domain_intel_bulk, and the '(GET bulk)' parenthetical doesn't resolve that ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named, despite obvious candidates in the sibling list (get_domain_intel for single lookups, get_domain_intel_bulk for what appears to be the same batch operation). The agent is left to guess which bulk tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cmb_configA
Get the Customer Metadata Boundary (CMB) config for a Cloudflare account (data localization region for logs).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' implies a read-only retrieval, which is consistent, and the parenthetical adds what CMB actually represents. It does not mention permission requirements or whether an unset config yields an empty or default response, so disclosure is only partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with the explanatory parenthetical trailing. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read getter with no output schema and no annotations, the description sufficiently explains what is retrieved and why it matters (log data localization). Only minor gaps remain, such as what happens when no boundary is configured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter (account_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no further parameter meaning beyond the schema, which is the correct baseline for a fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (CMB config) and expands the acronym to 'Customer Metadata Boundary', clarifying it is the data localization region for logs. No sibling tool touches CMB config, so it is implicitly differentiated, but it does not name a contrasting alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the specific resource: an agent needing an account's log-data localization region would select this. There is no explicit when-to-use, when-not-to-use, or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_analyticsA
Get DNS query analytics report for a Cloudflare zone. Returns query counts, response codes, and query type distributions. Useful for detecting DNS anomalies and attack patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Start date for the report in ISO 8601 format (e.g. 2026-05-01T00:00:00Z) | |
| until | No | End date for the report in ISO 8601 format | |
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states what the report returns and that it is read-oriented, but it does not disclose operational traits such as read-only status, default time range behavior, or data availability limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences lead with the action and resource, then the return contents, then a use case. Every sentence provides information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition gives enough to call the tool correctly: zone_id is the only required parameter and the return categories are stated. It would be more complete with default-date behavior and output format, but those are minor for this simple report tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents zone_id, since, and until. The description adds no additional parameter-level meaning beyond naming the zone and output categories, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('DNS query analytics report... for a Cloudflare zone'), and names concrete return contents (query counts, response codes, query type distributions). This distinguishes it from sibling tools like list_dns_records or get_domain_intel without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for detecting DNS anomalies and attack patterns' gives a clear use context for the report. It does not spell out exclusions or alternatives, but the use case is explicit enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_analytics_bytimeB
Get DNS query analytics for a Cloudflare zone grouped by time interval. Returns time-series data points (grouped by time_delta) for spotting trends and spikes.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Start date for the report in ISO 8601 format (e.g. 2026-05-01T00:00:00Z) | |
| until | No | End date for the report in ISO 8601 format | |
| zone_id | Yes | required,The ID of the zone | |
| time_delta | No | Unit of time to group data by: all, auto, year, quarter, month, week, day, hour, dekaminute, minute |
TDQS
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 only restates the output shape ('time-series data points grouped by time_delta') and omits read-only status, behavior when since/until are omitted (defaults, max range), and any rate or retention limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the operation stated first. The second sentence mildly repeats the time grouping already stated in the first, but overall there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-style analytics tool with a fully documented schema and no output schema, the description covers what the tool returns and why. The main gap is that it never clarifies the default/valid time window or how it relates to get_dns_analytics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so since, until, zone_id, and time_delta are all documented in the schema, including the time_delta value list. The description adds nothing beyond that baseline, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') plus resource ('DNS query analytics for a Cloudflare zone') and scopes it to time-bucketed output. The 'grouped by time interval' phrasing hints at how it differs from the sibling get_dns_analytics, but the distinction is never made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for spotting trends and spikes' implies an intent, but there is no when-to-use, when-not-to-use, or comparison against the closely named sibling get_dns_analytics. An agent must guess which of the two analytics tools to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_recordA
Get a single DNS record in a Cloudflare zone by record ID. Returns the record's full detail (type, name, content, TTL, proxy status, comment).
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| record_id | Yes | required,The ID of the DNS record to retrieve |
TDQS
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 usefully disclose the return shape ("type, name, content, TTL, proxy status, comment"), which matters because there is no output schema. It does not mention that this is a non-mutating read, permission requirements, or how a missing/invalid record_id is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first gives purpose and lookup key, the second enumerates return fields. No padding, and the most important information (what it fetches and how) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description covers both purpose and returned fields, which is most of what an agent needs. Minor gaps remain around error/not-found behavior and required permissions, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters documented as required, so the schema does the heavy lifting. The description reinforces the record_id-by-ID semantics ("by record ID") but adds no format, scope, or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get a single DNS record in a Cloudflare zone by record ID") and implicitly separates itself from list_dns_records by emphasizing "single." However, it never names or contrasts with the closest siblings (list_dns_records, get_dns_record_usage, export_dns_records), so the differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it is the right tool when it already has a record_id and wants one record's details. There is no explicit when-to-use, when-not-to-use, or routing to list_dns_records when only a zone_id is known, and no stated prerequisites for the zone_id/record_id pair.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_record_usageA
Get DNS record usage for a Cloudflare zone (counts toward plan limits). Returns current and allowed record counts.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden; it establishes this is a read-style quota report but says nothing about permissions, whether the zone must exist, or freshness/latency of the counts. The 'counts toward plan limits' note is a genuinely useful piece of domain context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, scoping condition front-loaded and return content stated second. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover return values, and it does ('current and allowed record counts'). For a one-parameter read tool that is nearly sufficient; only the exact response shape remains unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (zone_id) and schema description coverage is 100%, so the schema already explains it. The description adds no format, sourcing, or constraint detail about the zone identifier, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (DNS record usage) scoped to a Cloudflare zone, and clarifies it reports quota consumption. It is distinguishable from get_dns_record and list_dns_records by the 'usage/counts' framing, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'counts toward plan limits' implies the tool is for checking quota headroom, but the description never states when to reach for this versus get_dns_settings, list_dns_records, or export_dns_records. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dnssecA
Get DNSSEC details for a Cloudflare zone (status, DS record, digest, key tag, algorithm). Useful for verifying DNSSEC configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It signals a read operation and names the fields returned, but says nothing about behavior when DNSSEC is disabled, authentication requirements, or error responses. For a simple read tool this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact clauses with the purpose front-loaded and the use case trailing. Every phrase carries information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, the description supplies the essential missing context by listing what the response contains. It is nearly complete, falling short only on failure-mode behavior and sibling disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'zone_id' parameter is fully documented in the schema, so the description does not need to repeat it. It adds no format, ID-prefix, or sourcing details beyond what the schema already provides, matching the baseline when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get DNSSEC details for a Cloudflare zone') and even enumerates the returned fields (status, DS record, digest, key tag, algorithm). It is clear on its own, but it does not differentiate itself from the sibling 'list_dnssec_zsk', which an agent could plausibly confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for verifying DNSSEC configuration' implies a context but stops short of when-to-use guidance. It never states prerequisites (e.g. DNSSEC must be enabled) or when to prefer this over list_dnssec_zsk or get_dns_record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_settingsA
Get DNS settings for a Cloudflare zone (e.g. Foundation DNS, multi-provider, nameservers, zone mode). Returns the zone's DNS configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The verbs 'Get' and 'Returns' imply a read-only, non-destructive operation, but the description does not mention authentication requirements, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. The purpose is front-loaded, and the examples of DNS settings add useful specificity without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required parameter, no annotations, and no output schema, the description is adequate for identifying the tool's purpose and rough return content. However, it does not describe the response structure or authorization context, leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single zone_id parameter, so the schema already explains its meaning. The description adds no additional parameter semantics beyond identifying the scope as a Cloudflare zone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource (Get DNS settings), names the target system (Cloudflare zone), and lists concrete settings categories such as Foundation DNS, multi-provider, nameservers, and zone mode. This clearly distinguishes it from sibling tools like get_dns_record, list_dns_records, get_dns_analytics, and get_dnssec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus alternatives, nor does it provide prerequisites or exclusions. Usage is only implied by the name and the phrase 'Get DNS settings'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_historyA
Get historical threat data for a domain. Returns past and current security threat categories and content classifications. Useful for checking if a domain has a pattern of malicious behavior over time.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | required,The domain name to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool returns but does not mention any limitations, permissions, rate limits, or side effects. Since this is a read operation, the lack of explicit read-only status is a gap, and there is no discussion of potential errors or data scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose and output, followed by a practical use case. There is no extraneous content, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description adequately explains the return data and provides a usage scenario. It lacks details about pagination or authentication, but these are not critical for a basic lookup and the use case is clearly stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (domain and account_id) having descriptive text. The tool description adds no extra meaning beyond what the schema already provides, so it stays at the baseline 3. It does not explain why account_id is needed or how it influences the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves historical threat data for a domain and specifies the returned data types (past and current security threat categories and content classifications). It uses a specific verb and resource, and the use case for checking malicious behavior patterns makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use the tool ('checking if a domain has a pattern of malicious behavior over time'), which guides selection. It does not explicitly name alternatives or state when not to use it, but the context is sufficient for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_intelA
Get security intelligence for a domain. Returns risk scores, content categories, and DNS information. Useful for investigating suspicious domains found in referrer headers or access logs.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | required,The domain name to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns risk scores, content categories, and DNS information, which gives some insight into output. However, it does not explicitly state read-only behavior, rate limits, or error conditions. This adds value but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The primary action is front-loaded, followed by return contents, then a practical use case. Every sentence earns its place, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two simple parameters and no output schema, the description covers the essential aspects: what it does, what it returns, and when to use it. A minor gap is that it doesn't mention any permission or account prerequisites, but the parameter suggestions cover the account ID. Overall, it is nearly complete for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'domain' and 'account_id' already described in the input schema. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get security intelligence for a domain') and enumerates concrete return contents (risk scores, content categories, DNS information). It is clearly differentiated from siblings like get_ip_intel by domain focus and further reinforced by the use case of investigating suspicious domains. This is unambiguous and immediately actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Useful for investigating suspicious domains found in referrer headers or access logs.' This gives an agent a concrete scenario for when to use it. However, it does not explicitly mention alternatives or when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_intel_bulkA
Get threat intelligence for multiple domains at once. Returns risk scores and content categories for each domain. Useful for batch assessment of suspicious domains found in logs.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | required,Comma-separated list of domain names to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 mentions the tool returns risk scores and categories but does not disclose behavioral traits such as authentication requirements, rate limits, maximum batch size, error handling for invalid domains, or whether the operation is read-only. The description is silent on these critical aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the core purpose and output, then adds a practical use case. Every word earns its place, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and the schema covers parameters, the lack of an output schema and annotations means the description should clarify response structure, limits, and edge cases. It mentions the key outputs (risk scores and categories) but omits details like per-domain ordering, error behavior, or any batch size restrictions. This is adequate for a minimal tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (domains and account_id) are already documented in the schema. The description adds minimal extra meaning, only reinforcing that multiple domains are handled. It does not provide examples, formatting details, or constraints beyond what the schema states, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get threat intelligence), the resource (multiple domains), and the output (risk scores and content categories). It also distinguishes itself from the singular sibling get_domain_intel by emphasizing 'multiple domains at once', making it unambiguous for an agent to select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('batch assessment of suspicious domains found in logs') but does not explicitly state when not to use it or name alternatives like get_domain_intel for single domains. The guidance is implied rather than explicit, leaving the agent to infer the distinction from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_firewall_ruleA
Get details of a specific custom firewall rule by ID. Returns the full rule configuration including filter expression, action, and priority. Useful for investigating why a specific rule triggered a block.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | required,The ID of the firewall rule | |
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that this is a read operation ('Get'), scopes behavior to custom rules only (so agents know managed rulesets are out of scope), and lists what the response contains. It does not mention error/404 behavior, but that is a minor gap for a simple get-by-ID tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first front-loads the action, scope, and return contents; the second supplies the use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool with no output schema, the description covers what it does, what it returns, and when to use it. The only missing nicety is noting that rule_id typically comes from list_firewall_rules, which would aid call chaining — a minor omission given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both rule_id and zone_id are already documented in the schema. The description adds only the 'custom firewall rule' qualifier to clarify what rule_id refers to, without adding format or sourcing details. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get details of a specific custom firewall rule by ID') and enumerates the returned contents (filter expression, action, priority). The 'custom... by ID' scope clearly differentiates this from list_firewall_rules and get_ruleset, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for investigating why a specific rule triggered a block' gives a concrete scenario with clear context, and the 'specific... by ID' wording implies the contrast with list_firewall_rules. However, no alternative is explicitly named and no when-not condition is stated, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_feedC
Get the metadata of a specific threat-intelligence indicator feed by feed ID.
| Name | Required | Description | Default |
|---|---|---|---|
| feed_id | Yes | required,The ID of the indicator feed | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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. 'Get' implies a read-only lookup, but there is no disclosure of authentication requirements, error behavior for unknown feed IDs, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. It is efficient, though it is arguably under-specified rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and no output schema, the description covers the essentials. It is minimally adequate but leaves behavioral gaps unaddressed given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and feed_id are already documented in the schema. The description restates the feed ID lookup but adds no format, scoping, or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (metadata of a threat-intelligence indicator feed), and lookup key (feed ID). The word 'metadata' usefully distinguishes it from get_indicator_feed_data, though the description never names siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_indicator_feeds, get_indicator_feed_data, or get_indicator_feed_upload_status. Usage is only implied by 'by feed ID'; there are no exclusions or alternative-routing hints across a very crowded sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_feed_dataB
Get the raw data of a specific threat-intelligence indicator feed by feed ID. Returns the feed body (e.g. STIX/CSV).
| Name | Required | Description | Default |
|---|---|---|---|
| feed_id | Yes | required,The ID of the indicator feed | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 does disclose the return format ('feed body, e.g. STIX/CSV'), which is genuinely useful behavioral context, but it says nothing about permissions/auth scope, payload size, or whether retrieval is streaming/paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the action and its scope front-loaded before the return-format note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description covers the essential return-value semantics (raw feed body, STIX/CSV) and the keying-by-feed-ID. It falls short only in not clarifying how it differs from the similar 'download' sibling, which is the one thing an agent most needs here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both required parameters ('feed_id', 'account_id') are documented in the schema. The description only restates 'by feed ID' and adds no format, sourcing, or constraint detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get the raw data of a specific threat-intelligence indicator feed') and scopes it by feed ID, so the action is unambiguous. However, it does not differentiate itself from the near-identical sibling 'download_indicator_feed_data', nor from 'get_indicator_feed' (metadata), leaving the agent to guess which one fetches the raw body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the many sibling feed tools, no prerequisites, and no exclusions. With 'download_indicator_feed_data' sitting right next to it, the absence of any routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indicator_feed_upload_statusA
Get the status of a specific upload to a threat-intelligence indicator feed by feed ID and upload ID.
| Name | Required | Description | Default |
|---|---|---|---|
| feed_id | Yes | required,The ID of the indicator feed | |
| upload_id | Yes | required,The ID of the feed upload | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 does not disclose behavioral traits such as whether the status includes error details, how long statuses are retained, authentication requirements, or rate limits. Limited to a simple functional statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 required parameters) and lack of annotations or output schema, the description is minimal. It states what the tool does but does not provide sufficient contextual details about return values, error handling, or usage scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented in the schema. The description does not add meaning beyond what the schema provides; baseline 3 is appropriate when schema covers all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Get) and resource (status of a specific upload to a threat-intelligence indicator feed), specifying the identifiers (feed ID and upload ID). It distinguishes itself from sibling tools like get_indicator_feed or list_indicator_feeds by focusing on upload status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking upload status but does not explicitly state when to use this tool versus alternatives like get_indicator_feed_data or list_indicator_feeds. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insight_countsA
Get aggregated Security Center insight counts by dimension (severity, class, or type). Useful for quick security posture overview and prioritization.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| dimension | Yes | required,Aggregation dimension: severity or class or type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description communicates the core behavior: aggregated counts by a requested dimension. However, there are no annotations, so the description carries the burden of disclosure; it does not mention response shape, whether counts include all insights, or any read-only guarantee, leaving some behavioral detail implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the operation and key dimensions, and the second sentence adds a useful use case without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description provides enough information for an agent to select and invoke it correctly. The only notable omission is explicit detail about the returned format, but 'counts' makes the expected output reasonably inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters already have documentation. The tool description adds the purpose of the dimension field ('severity, class, or type') but does not add new parameter-level meaning beyond what the schema already states, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get aggregated Security Center insight counts' by dimension. It also names the aggregation dimensions ('severity, class, or type'), which clearly distinguishes it from the sibling list_security_insights tool that returns raw insights rather than counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use context: 'quick security posture overview and prioritization.' It does not explicitly name alternatives or when-not-to-use conditions, but the intended applicable scenario is evident enough for an agent to route to it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_intelA
Get threat intelligence for an IP address. Returns geolocation, ASN, infrastructure type, and security threat categories. Useful for investigating suspicious IPs found in security events or access logs.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | required,The IPv4 or IPv6 address to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly signals a read operation with 'Get' and discloses the output data categories, which is the key behavioral context for a lookup tool. It does not explicitly mention auth or rate limits, but none are provided in annotations and the required account_id parameter implies authentication; no additional side effects need disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry all needed information with no redundant clauses. The purpose is front-loaded, the return fields are listed, and the usage scenario is appended efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter lookup with no output schema, the description sufficiently names the output categories and the intended use case. It could mention edge cases or error handling, but those are not essential for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already explains 'ip' and 'account_id'. The description adds no parameter-level detail beyond what the schema provides, so the standard baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource: 'Get threat intelligence for an IP address.' The second sentence enumerates distinct return fields (geolocation, ASN, infrastructure type, security threat categories) that differentiate it from sibling domain/ASN intelligence tools like get_domain_intel and get_asn_intel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence explicitly states when to use it: 'useful for investigating suspicious IPs found in security events or access logs.' It gives clear context but does not name specific alternatives or exclusion conditions, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_listsC
Get the available Cloudflare threat-intelligence IP lists for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden, yet it only implies a read operation. It says nothing about permissions required, whether the lists are account-scoped defaults or user-configured, or what the results contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that front-loads the verb and resource. No wasted words, though it is arguably too terse for the transparency gaps it leaves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema and no annotations, the description is minimally adequate. It identifies the resource and account scope but omits any hint of return content or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (account_id) with 100% schema description coverage, so the schema fully documents it. The description correctly frames the account scope but adds no syntax or format detail beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('Cloudflare threat-intelligence IP lists') scoped to a Cloudflare account, which distinguishes it from sibling intel tools like get_ip_intel or list_indicator_feeds. It's clear, but it could more explicitly differentiate what an 'IP list' is versus feed/intel siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_ip_intel, get_indicator_feed, or list_indicator_feeds. The agent must infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kv_metadataB
Read the metadata associated with a key in a Workers KV namespace.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | required,The key whose metadata to read | |
| account_id | Yes | required,The ID of the Cloudflare account | |
| namespace_id | Yes | required,The ID of the KV namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Read' does convey a non-mutating operation, which is useful, but nothing is said about required permissions, behavior when the key or metadata does not exist, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The verb and resource lead immediately, and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read with fully documented parameters and no output schema. However, it omits when to prefer this over get_kv_value and gives no sense of what the returned metadata contains, leaving minor gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (account_id, namespace_id, key) are self-explanatory and individually documented. The description adds no format, ID, or lookup semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: read metadata for a key in a Workers KV namespace. The word 'metadata' implicitly separates it from get_kv_value and get_kv_pairs_bulk, but no sibling is named explicitly, so differentiation relies on the agent's inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. With siblings like get_kv_value, get_kv_namespace, and list_kv_keys present, an explicit statement such as 'use this instead of get_kv_value when you only need metadata' would have been valuable and is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kv_namespaceA
Get a Workers KV namespace by ID. Returns the namespace details (ID, title, supports URL encoding).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| namespace_id | Yes | required,The ID of the KV namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It signals a read operation and discloses the return fields (ID, title, supports URL encoding), which is useful. However it says nothing about auth requirements, error behavior, or whether the ID is account-scoped, leaving gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the return shape. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully enumerates the returned fields, and both required parameters are documented in the schema. It is nearly complete for a simple lookup, missing only auth/permission context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and namespace_id are already documented in the schema. The description adds no format or constraint detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a Workers KV namespace by ID') and even previews the returned fields, which lets an agent distinguish it from list_kv_namespaces. It does not explicitly name the sibling or contrast scope, but the singular 'by ID' framing makes the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies this is for retrieving a single known namespace rather than enumerating them, but there is no explicit statement of when to use it versus list_kv_namespaces or get_kv_metadata. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kv_pairs_bulkB
Get multiple key-value pairs from a Workers KV namespace at once. The keys argument is a JSON object with a keys array. Read-only (no mutation) despite using POST.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | required,JSON object with a keys array, e.g. {"keys":["k1","k2"]} | |
| account_id | Yes | required,The ID of the Cloudflare account | |
| namespace_id | Yes | required,The ID of the KV namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the operation is read-only despite using POST, which pre-empts a likely agent misread. However, it says nothing about auth/permission requirements, rate limits, or what happens to missing keys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler, and the purpose is front-loaded ahead of the parameter and behavior notes. Efficient, though each sentence is doing light work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param, no-output-schema read tool the description covers purpose, argument shape, and read-only semantics. It omits batched-operation details an agent would need — key-count limits/behavior on missing keys and return shape — which matters most for a bulk getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description restates the keys format ('JSON object with a keys array'), which duplicates rather than extends the schema description, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get multiple key-value pairs from a Workers KV namespace') with a bulk scope marker ('at once') that distinguishes it from the single-key sibling get_kv_value. It doesn't name a sibling directly, but the plural/bulk framing makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'multiple ... at once' — an agent can infer this is the batched alternative to get_kv_value — but there is no explicit when-to-use, when-not-to-use, or named alternative, and no note on limits (e.g. max keys).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kv_valueB
Read the value stored for a key in a Workers KV namespace. Returns the raw stored value.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | required,The key whose value to read | |
| account_id | Yes | required,The ID of the Cloudflare account | |
| namespace_id | Yes | required,The ID of the KV namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only states that the raw stored value is returned; it says nothing about permission requirements, behavior when the key is missing, value size/type constraints, or read consistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the action and resource, with zero wasted words. The second sentence usefully clarifies the return shape in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read tool with no output schema, the description covers the core purpose and roughly what is returned. It is missing enough behavioral context (auth needs, missing-key behavior) that an agent would still need to infer or discover important operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three required parameters (key, account_id, namespace_id) are already fully documented in the schema. The description adds no parameter-specific meaning beyond what the schema provides, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Read) and resource (the value stored for a key in a Workers KV namespace), which separates it from metadata-oriented siblings like get_kv_metadata. However, it does not explicitly name an alternative tool, so sibling differentiation is left implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_kv_metadata, get_kv_pairs_bulk, or list_kv_keys. The purpose implies a read of a single key's value, but no conditions, prerequisites, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_log_by_rayidA
Look up an HTTP request log entry by its Cloudflare Ray ID. Returns request details including client IP, path, user agent, status code, and security actions. Useful for investigating why a specific request was blocked or challenged.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated list of log fields to return | |
| ray_id | Yes | required,The Ray ID of the request to look up | |
| zone_id | Yes | required,The ID of the zone | |
| timestamps | No | Timestamp format: unixnano (default), unix, or rfc3339 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is a read-only lookup and lists the types of information returned. Yet it omits behaviors like error handling when a ray_id is not found, authentication requirements, or rate limits. For a simple lookup this is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and resource, followed by a useful use-case sentence. It is efficient and free of fluff, though the second sentence could be considered slightly redundant with the first. Overall it is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description must compensate. It states the purpose and key return fields, and the schema covers parameter descriptions, so an agent can call it correctly. However, it lacks guidance on alternative tools and does not mention error cases or prerequisites, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about the returned fields, which helps an agent understand the purpose of the resource, but it does not explain parameter-specific semantics beyond what the schema already states. It adds little value over the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Look up an HTTP request log entry by its Cloudflare Ray ID.' It clearly differentiates the tool from siblings like get_ratelimit or get_firewall_rule because it targets log entries by Ray ID. The mention of returned details (client IP, path, user agent, etc.) further clarifies the resource scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when investigating blocked/challenged requests, giving a clear context. However, it does not explicitly mention when not to use the tool or name alternatives such as query_security_events, which could also investigate security actions. The guidance is implied rather than explicit, so it falls short of a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_log_datasetC
Get a specific Logs Explorer dataset for a Cloudflare zone by dataset ID.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| dataset_id | Yes | required,The ID of the Logs Explorer dataset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. The verb 'Get' implies a safe read, but the description says nothing about required permissions, error behavior for invalid IDs, or what the response contains. For a tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though arguably too terse for a tool with no annotations and no output schema to lean on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read, the essentials are present, and there is no output schema so return values need not be enumerated. However, with no annotations and no output schema, the description should at least characterize what a 'dataset' object contains and confirm the read-only nature, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both zone_id and dataset_id are already documented in the schema, establishing the baseline of 3. The description only restates the dataset-ID lookup ('by dataset ID') without adding format, scoping, or validity constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('Logs Explorer dataset'), and scope ('for a Cloudflare zone ... by dataset ID'). The zone scoping implicitly separates it from the account-scoped sibling get_account_log_dataset, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus list_log_datasets, get_account_log_dataset, or list_available_log_datasets. The phrase 'by dataset ID' weakly implies an ID must first be obtained from a listing tool, but the alternative and precondition are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logpush_jobB
Get details of a specific Logpush job in a Cloudflare zone by job ID.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | required,The ID of the Logpush job | |
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a non-destructive read via 'Get details', but says nothing about required permissions, behavior for an unknown job ID, or why the zone-scoped variant differs from the account-scoped sibling. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and the two identifying dimensions are all stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with a fully described schema, the essentials are there, and no output schema exists so return values need not be covered. The gaps are the lack of differentiation from get_account_logpush_job and the absence of any failure-mode or prerequisite note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both zone_id and job_id are already documented in the schema. The description merely restates that the job is identified by ID within a zone, adding no format, constraint, or sourcing detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get details of a specific Logpush job') plus scope ('in a Cloudflare zone by job ID'), so the agent knows exactly what it retrieves. It does not, however, distinguish itself from the sibling get_account_logpush_job, which is the main ambiguity an agent must resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternative. The phrase 'by job ID' implies a prior list_logpush_jobs call is needed to obtain the ID, but that prerequisite is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_log_retention_flagB
Get the log retention flag for a Cloudflare zone (whether Logpull log retention is enabled).
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add domain context by explaining the flag's meaning (whether Logpull log retention is enabled). However, it does not state that this is a read-only, non-mutating per-zone lookup, nor anything about permissions or failure behavior when the flag is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource and qualifier, and zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-parameter getter with no output schema, the description gives enough to know what is being read and what the value represents. It is only slightly short of ideal given the complete lack of annotations shouldering behavioral disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single zone_id parameter, so the schema already documents it. The description adds no syntax, format, or scope detail about the zone identifier beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the log retention flag for a Cloudflare zone') and clarifies the resource with a parenthetical defining what the flag means (Logpull log retention enabled). No sibling tool covers retention, so it is naturally distinct, but the description never explicitly differentiates itself from the many other log-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as get_log_dataset, list_log_datasets, or retrieve_account_logs. The agent must infer the scenario entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_partner_integration_settingsC
Get the Security Center partner integration settings for a Cloudflare account and partner.
| Name | Required | Description | Default |
|---|---|---|---|
| partner | Yes | required,The partner identifier | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 doesn't state whether this is a read-only operation, whether it requires specific permissions, what the return shape looks like, or what happens if the partner doesn't exist. 'Get' implies a read, but no behavioral traits are disclosed beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficiently front-loaded sentence with the verb and resource up front. It wastes no space, though it is arguably too terse given the absence of annotations and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It omits all behavioral context (permissions, side effects, return structure) and offers no usage guidance. It does the minimum for a getter but falls short given the total absence of structured behavioral metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (account_id and partner) are already documented in the input schema. The description adds no format, syntax, or semantic detail beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Security Center partner integration settings) scoped to a Cloudflare account and partner. This clearly identifies the resource type and scope, distinguishing it from the many 'list_*' and 'get_account_*' siblings, though it doesn't explicitly name an alternative or contrast with a sibling like list_account_security_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when-not conditions, or which sibling to prefer. An agent must infer usage purely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rate_limitA
Get details of a specific rate limiting rule by ID. Returns the full configuration including threshold, period, action, and match criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| rate_limit_id | Yes | required,The ID of the rate limit rule |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the read operation and the returned fields, but does not mention behavior for missing IDs, authorization requirements, or error cases. The surface behavior is clear, but deeper semantics are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences with no filler. It front-loads the purpose and immediately adds valuable return-content detail, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter retrieval tool, the description is nearly complete: it names the resource, the identifier, and the return shape. The lack of an output schema is compensated by listing response fields. Minor gaps around not-found behavior and credentials prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds minimal parameter-level value beyond confirming the operation is by ID, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('rate limiting rule by ID'), and explicitly indicates it returns the full configuration. This distinguishes it from sibling list_rate_limits and other get_* tools because it is scoped to a specific rate limiting rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this when you have a specific rate_limit_id and need the rule's full configuration. However, it does not explicitly state when not to use it or mention the alternative sibling list_rate_limits for discovering IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rulesetA
Get a specific ruleset with all its rules. Returns the complete rule definitions including expressions, actions, and configurations. Useful for inspecting what traffic patterns are matched by a ruleset.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| ruleset_id | Yes | required,The ID of the ruleset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It clearly states the output includes complete rule definitions with expressions, actions, and configurations, which is meaningful context beyond the tool name alone. It does not cover error cases or auth requirements, but for a read-only get operation the disclosed behavior is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all informative: the first states what the tool does, the second details the return payload, and the third gives the use case. There is no filler, and the naming is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two required parameters, full schema coverage, and no output schema, the description sufficiently explains both the return contents and the practical use case. An agent has enough information to call this tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters zone_id and ruleset_id are already fully documented in the schema. The description adds no additional parameter-level meaning beyond reinforcing that a specific ruleset is being retrieved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get a specific ruleset with all its rules.' It further defines the scope as 'complete rule definitions including expressions, actions, and configurations,' making it clearly distinct from list-oriented siblings like list_rulesets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear intended use case: 'Useful for inspecting what traffic patterns are matched by a ruleset.' It does not explicitly name alternatives or state when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_securitytxtC
Get the security.txt configuration for a Cloudflare zone (security contact and disclosure policy).
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
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 implies a safe read via 'Get' and hints at return fields (security contact, disclosure policy), but says nothing about permissions required, whether an unconfigured zone errors or returns empty, rate limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key action and resource come first and the parenthetical earns its place by defining security.txt. It is tightly sized, though the terseness comes at the cost of the missing usage and behavioral detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with a fully documented schema, the description is adequate and even names the return content. However, with no annotations and no output schema, it should ideally state the not-configured/error behavior and access requirements to be fully callable with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (zone_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no syntax, format, or sourcing detail for zone_id beyond what the schema provides, which matches the baseline 3 for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (Get) with a specific resource (security.txt configuration) and scopes it to a Cloudflare zone. The parenthetical clarifies what security.txt contains (security contact and disclosure policy), removing ambiguity. It is clearly distinguishable from siblings, none of which deal with security.txt, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites (e.g. the zone must belong to the caller's account), and no alternatives. It only states what the tool returns, leaving the agent to infer that it is a read-only config lookup from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sinkholeB
Get a specific DNS sinkhole by ID for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| sinkhole_id | Yes | required,The ID of the sinkhole |
TDQS
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. The verb 'Get' strongly implies a non-mutating read, but the description says nothing about required permissions, pagination/consistency behavior, or what happens when the ID does not exist. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the scope constraint (by ID, for an account) stated immediately; no filler. It is efficient, though it is arguably so terse that it leaves the gaps noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple two-parameter point lookup whose inputs are fully described by the schema, and it has no output schema, so return-shape documentation is not strictly required. An agent has enough to invoke it, though it offers nothing on failure modes or ID provenance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and sinkhole_id are already documented as required string IDs in the schema. The description adds no format, scope, or sourcing detail beyond that (e.g., where the sinkhole_id comes from), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Get), a specific resource (DNS sinkhole), and the retrieval key (by ID) scoped to a Cloudflare account, which cleanly separates it from the sibling list_sinkholes and list_sinkhole_ingresses. It stops short of explicitly naming those siblings as alternatives, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the caller must already hold a sinkhole ID (presumably from list_sinkholes), which is implied usage guidance. There is no explicit statement of when to use this versus the list variant, and no prerequisites or error conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_cancel_reasonB
Get the cancellation reason recorded for a Cloudflare account subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| subscription_id | Yes | required,The identifier of the subscription |
TDQS
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 implies a read-only operation through 'Get', but does not state authentication requirements, side effects, rate limits, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It states the purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with full schema coverage, the description states the core purpose. However, with no output schema and no annotations, it omits return format and usage context, leaving it minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both required parameters are documented in the schema. The description adds no additional parameter meaning or format details beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get the cancellation reason for an account subscription. It is clear what the tool returns, but it does not distinguish itself from sibling tools such as get_account_subscription or list_account_subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit when-to-use or when-not-to-use guidance, and does not name alternatives. The usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_intelB
Get threat intelligence for a URL. Returns risk and category information for the URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | required,The URL to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does disclose the return content ('risk and category information'), which is useful since there is no output schema, and 'Get' implies a read-only lookup. It stops short of stating auth/permission requirements, rate limits, or whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the core action and contain no filler. The trailing 'for the URL' is mildly redundant with the first sentence, keeping it just shy of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry return-value detail, and it names only two fields ('risk and category') without describing their shape or scoring scale. Combined with the absence of any usage context against same-family intel tools, the definition is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters (url, account_id) are already documented in the schema with required flags. The description adds no formatting, syntax, or meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get threat intelligence for a URL', which is unambiguous about what the tool retrieves. However, it makes no attempt to distinguish itself from the closely-named siblings get_domain_intel, get_ip_intel, and get_asn_intel, leaving the agent to infer that this one applies to full URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the alternative intel tools. Given siblings like get_domain_intel and get_ip_intel, an agent could easily route a domain lookup here or vice versa, and the description offers nothing to prevent that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whoisA
Get WHOIS registration data for a domain. Returns registrant information, nameservers, and registration/expiration dates. Useful for investigating domain ownership and detecting newly registered suspicious domains.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | required,The domain name to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the output contents (registrant info, nameservers, dates) and implies a read-only lookup, but does not mention authentication requirements, rate limits, or failure behavior for invalid/unknown domains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no filler. The main action is front-loaded, followed by output summary and use case; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two parameters and no output schema, the description provides the essential action, outputs, and use cases. It could be more complete by noting response format or errors, but the main context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description does not add parameter-specific meaning beyond calling the resource a domain, which keeps it at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Get WHOIS registration data for a domain.' It distinguishes this from sibling domain tools by focusing on WHOIS registrant info, nameservers, and registration/expiration dates rather than general domain intelligence or history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: 'Useful for investigating domain ownership and detecting newly registered suspicious domains.' This implies when to choose the tool, though it doesn't name sibling alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zoneA
Get details of a specific Cloudflare zone. Returns zone details such as ID, name, status, and plan.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It usefully discloses the return content (ID, name, status, plan), but it does not mention error behavior, authentication requirements, or read-only semantics beyond the implied 'get' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action and resource, then immediately lists return fields. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter getter with no output schema, the description gives enough return-value context to set expectations. It could mention not-found or error behavior for full completeness, but nothing critical is missing for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents zone_id with 100% coverage, so the description adds little beyond restating that the zone is 'specific'. The baseline of 3 applies because the schema handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource ('a specific Cloudflare zone') and states the returned information (ID, name, status, plan). This clearly differentiates it from sibling tools like list_zones, which list rather than get a single zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a specific Cloudflare zone' implies this tool is for retrieving one zone by ID, but it does not explicitly say when to prefer this over list_zones or other get_* siblings. Usage context is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zone_insights_audit_logB
Get the Security Center insights audit log for a Cloudflare zone (zone scope).
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and discloses almost nothing: no indication of auth/permission requirements, retention window, pagination, or result volume. It only implies a read operation through the verb "Get" and identifies the subsystem (Security Center insights).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with no filler or redundant restatement. Nothing could be trimmed without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description is minimally sufficient but omits return-value shape, pagination, and any auth context. Nothing an agent needs to invoke it is strictly missing, but the surrounding operational context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (zone_id) with 100% schema description coverage, so the schema already defines it fully. The description adds no format hints or ID-source guidance beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get the Security Center insights audit log") and pins the scope with "for a Cloudflare zone (zone scope)", which implicitly separates it from the account-scoped sibling get_account_insights_audit_log. It stops short of naming that sibling or stating what an "insights audit log" contains, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The parenthetical "(zone scope)" hints at the account/zone split but leaves the agent to work out that get_account_insights_audit_log is the other option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zone_issue_audit_logA
Get the audit log for a specific Security Center insight (issue) in a Cloudflare zone by issue ID.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| issue_id | Yes | required,The ID of the Security Center issue/insight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It conveys that this is a read operation ('Get') but gives no information about authentication requirements, rate limits, output format, pagination, or time-range behavior. For an audit-log retrieval tool with zero annotation coverage, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-structured sentence that front-loads the verb and resource, then the scope qualifiers. No wasted words, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-param read tool with full schema coverage, the description is adequate. However, without annotations or an output schema, it should at least hint at what the audit log contains or how it is ordered/limited. It leaves behavioral and output expectations unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both params (zone_id, issue_id) clearly documented in the schema. The description adds no syntax, format, or semantic details beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (audit log), and precise scope (for a Security Center insight/issue in a zone, by issue ID). It is clearly distinguishable from siblings like get_account_issue_audit_log and get_zone_insights_audit_log by specifying the zone+issue combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via 'for a specific Security Center insight in a Cloudflare zone by issue ID', which establishes context. However, it does not explicitly say when to use this versus the very similar get_account_issue_audit_log or get_zone_insights_audit_log, nor does it mention prerequisites like needing a previously-fetched issue_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zone_partner_insight_countB
Get the count of partner-provided Security Center insights for a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
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 conveys that this is a read-only count (no pagination or mutation concerns) and that the insights are partner-provided, but says nothing about auth/permission requirements or what the count represents beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The resource and scope are stated immediately with no redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only count tool with no output schema, the description is nearly sufficient. It could still note the relationship to the account-level counterpart, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required zone_id parameter, so the schema already documents the input. The description adds no format or sourcing detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get the count), resource (partner-provided Security Center insights), and scope (for a Cloudflare zone). This implicitly separates it from the account-scoped sibling get_account_partner_insight_count, but the description never names the alternative, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description does not point the agent toward or away from close siblings such as get_account_partner_insight_count, get_insight_counts, or list_security_insights, leaving selection to guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zone_recent_scansC
Get the recent Security Center scans for a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it only implies a read via 'Get'. It does not define the 'recent' window, whether results are paginated or capped, what permissions are required, or what the response contains. Useful context beyond the name is essentially absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and resource front-loaded and zero filler. It is efficient, though 'recent' is left vague where a brief qualifier would have earned the space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, this is minimally adequate: an agent can invoke it, but the undefined recency window and the missing distinction from get_account_recent_scans are real gaps. Some additional context would materially improve routing accuracy.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single zone_id parameter is fully described in the schema, so the baseline 3 applies. The description adds nothing about the parameter — not its format, source, or whether it accepts a name in place of an ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('recent Security Center scans') scoped to 'a Cloudflare zone', so the operation is unambiguous. However, it never distinguishes itself from the near-identical sibling get_account_recent_scans, leaving the agent to infer the zone-vs-account scope difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the account-level sibling that a caller could easily confuse this with. The agent is given no condition that selects this tool over get_account_recent_scans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zone_settingsB
Get configuration settings for a Cloudflare zone (SSL mode, minimum TLS version, cache level, security level, etc.). Returns the full settings list.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone whose settings to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the return shape ('full settings list'), which implies a read-only, non-paginated fetch, but says nothing about required permissions (e.g. zone read scope), whether defaults are included, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with the return note placed last. Efficient, though the second sentence is thin enough that it only marginally earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers what the tool fetches and roughly what comes back ('full settings list'). It is adequate, though without annotations a note on read-only/auth expectations would complete it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema description coverage, so the schema already documents zone_id fully; the description adds no format, sourcing, or constraint detail beyond it. Baseline 3 applies when structured fields do the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (configuration settings for a Cloudflare zone) and enumerates representative setting categories (SSL mode, min TLS version, cache level, security level), which lets an agent distinguish it from a bare zone-details tool like get_zone. It does not explicitly name a sibling or draw the boundary against get_dns_settings, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no conditions, and no named alternatives despite the crowded sibling set (get_zone, get_dns_settings, list_zones). The agent must infer usage from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_audit_log_product_categoriesA
List the product categories available for filtering account audit logs (v2).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'List' implies a non-mutating read, which is the key behavioral signal for this tool. Auth requirements, response shape, and pagination are unstated, but for a trivial account-scoped enumeration this is an acceptable rather than rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the '(v2)' version marker retained. No filler and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter discovery/enumeration tool with full schema coverage and no output schema, the description tells the agent what it enumerates and the account scope. It is essentially complete, though it could note that the returned categories feed into the audit-log query tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single account_id parameter, which the schema already documents as required. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: list the product categories usable as filters for account audit logs (v2). This distinguishes it from the sibling get_account_audit_logs_v2, which returns logs rather than filter metadata. It does not explicitly name a sibling or spell out the distinction, keeping it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'available for filtering account audit logs' – an agent can infer this is a discovery step before calling get_account_audit_logs_v2. No explicit when-to-use, when-not-to-use, or named alternative is given, so it stays at minimum-viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_log_datasetsC
List Logs Explorer datasets configured for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a read-only list operation but says nothing about pagination, ordering, permissions required, or the shape of returned datasets, which is a notable gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is appropriately sized, though its brevity comes at the cost of the disambiguation that would be genuinely useful here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only list tool this is minimally adequate, but with no output schema the description could clarify what a 'dataset' returns and how it differs from the other dataset listings. As written, an agent has enough to call it but not enough to choose it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single account_id parameter, so the schema already documents the input fully. The description adds no additional meaning about how account scoping works, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('List Logs Explorer datasets configured for a Cloudflare account'), so the core purpose is understandable. However, it does nothing to distinguish this tool from very similar siblings such as list_log_datasets, list_available_log_datasets, and list_available_account_log_datasets, leaving the agent unable to tell which list is which.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the near-identical dataset-listing siblings, nor any note on prerequisites or context. The description only restates what the tool does, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_log_filesC
List stored log files for a Cloudflare account (Logpull/stored logs). Supports start, end, and bucket filters.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (RFC3339 or Unix timestamp) | |
| start | No | Start time (RFC3339 or Unix timestamp) | |
| bucket | No | Destination bucket/path to list log files from | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a read-only listing and mentions filter support, but says nothing about pagination, result limits, retention behavior, auth requirements, or response shape for a tool that in a real account could return many files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and no wasted wording. It is efficient, though not doing extra work with the space it uses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 must supply the behavioral context an agent needs. It omits pagination, ordering, and what a returned log file entry looks like, which matters for a listing tool that can return large result sets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters with types and formats. The description only restates that start, end, and bucket are 'filters,' adding no syntax, default, or interaction detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List stored log files for a Cloudflare account') and adds the data family (Logpull/stored logs). It does not, however, distinguish this from siblings like list_account_log_datasets, list_received_logs, or retrieve_account_logs, so an agent cannot tell which to pick without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative routing. The phrase 'Logpull/stored logs' gives only faint contextual placement among the many log-related siblings, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_logpush_dataset_fieldsC
List the available Logpush fields for a specific dataset in a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| dataset_id | Yes | required,The Logpush dataset ID (e.g. http_requests, audit_logs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only list operation, but says nothing about pagination, result size, required permissions, or account validation, leaving the behavioral profile largely undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and scope front-loaded and no filler. It is appropriately sized, though it could have spent one more clause on sibling differentiation without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only listing with a fully documented schema and no output schema, the description is minimally adequate. The missing piece is disambiguation from the many related log/list siblings, which an agent genuinely needs here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both required parameters are documented with an example for dataset_id, so the schema does the heavy lifting. The description adds no syntax, format, or validation nuance beyond naming dataset and account conceptually, matching the baseline for a fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) plus resource (Logpush fields) scoped to a dataset within a Cloudflare account, which is clear and concrete. However, it fails to distinguish this account-scoped tool from the near-identical sibling `list_logpush_dataset_fields`, so an agent cannot tell the two apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative routing is given. The presence of `list_logpush_dataset_fields` as a sibling makes the absence of any disambiguation guidance a real gap, since selecting between them requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_logpush_dataset_jobsC
List Logpush jobs for a specific dataset in a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| dataset_id | Yes | required,The Logpush dataset ID (e.g. http_requests, audit_logs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, but it only implies a read via the verb 'List'. It says nothing about auth/permission requirements, pagination, result limits, or ordering behavior for what is presumably a read-only listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler; the scoping constraint (specific dataset, account) is stated immediately. It is efficient, though sparse enough that it earns no extra credit for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter list tool with full schema coverage this is minimally adequate. However, with no annotations and no output schema, the description leaves return shape, pagination, and filtering behavior entirely unexplained, so it falls short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters, including an example dataset ID. The description adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (list Logpush jobs) with clear scoping to a specific dataset within an account. It implicitly separates itself from broad siblings like list_logpush_jobs, though it never explicitly distinguishes list_logpush_dataset_jobs from list_account_logpush_dataset_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative routing is provided. With near-identical siblings (list_logpush_jobs, list_logpush_dataset_jobs, list_account_logpush_jobs) the absence of routing guidance is a real gap; usage must be inferred from the resource noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_logpush_jobsA
List Logpush jobs for a Cloudflare account. Returns job details including dataset, destination, and enabled status.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return shape (dataset, destination, enabled status), which is more than the schema provides, but omits pagination behavior, the read-only nature of the operation, and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core action and scope are front-loaded, and the return-shape sentence adds information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter list operation with no output schema, the description covers what is listed and roughly what comes back. A note on pagination or result limits would close the remaining gap, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single, self-explanatory required account_id, so the schema already carries parameter semantics. The description adds nothing about the parameter and is not expected to, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Logpush jobs) scoped to a Cloudflare account, which distinguishes it from the zone-level sibling list_logpush_jobs. It does not, however, explicitly name or contrast with that sibling or with list_account_logpush_dataset_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The account scope is implied by 'for a Cloudflare account' and by the required account_id, giving an implicit signal about when to prefer this over zone-level listing. There is no explicit when-to-use, when-not-to-use, or alternative-tool guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_logpush_transformersC
List Logpush transformers for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 nothing beyond the one-line purpose. It omits pagination behavior, result shape, and any auth/scope requirements for the account.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is efficient, though it is arguably too sparse to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with no output schema, the description covers the core purpose but leaves out pagination and return-shape context. Adequate but with clear gaps for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (account_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no format or syntax detail beyond the schema, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('Logpush transformers') scoped to a Cloudflare account. It is distinguishable from singular siblings like get_account_logpush_transformer, but it does not explicitly call out how it differs from list_account_logpush_transformer_versions or list_account_logpush_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and no reference to alternative tools. An agent gets a purpose but no context for choosing this over the many sibling logpush list/get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_logpush_transformer_versionsB
List the versions of a specific Logpush transformer in a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| transformer_id | Yes | required,The ID of the Logpush transformer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' implies a safe read, but the description discloses nothing about ordering, pagination, version numbering, or what a version record contains. For a no-annotation tool this is a thin behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence that front-loads the action and resource with no waste. Nothing is padded, though it also contains little beyond the minimum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It omits pagination/ordering and version-format context that an agent would otherwise have to discover at call time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (account_id, transformer_id) are documented in the schema, so the baseline is 3. The description adds no syntax or format detail beyond what the schema already supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (versions of a specific Logpush transformer) scoped to a Cloudflare account. It implicitly distinguishes itself from list_account_logpush_transformers, which lists transformers rather than their versions, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is for enumerating the version history of one known transformer, requiring a prereq transformer_id. However, no explicit when-to-use guidance, no mention of alternatives like list_account_logpush_transformers or get_account_logpush_transformer, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_membersB
List members of a Cloudflare account. Returns member details including user, roles, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| per_page | No | Number of members per page (default: 20, max: 100) | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 discloses the returned content (user, roles, status), which signals a read operation, but says nothing about pagination behavior, result limits, or required permissions, all of which matter for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, and the core action (listing members for an account) is front-loaded before the return-value detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter list tool with no output schema, the definition is minimally adequate: it names the resource and the returned fields. It omits pagination guidance and any note on permissions, which are the remaining information gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, per_page, and account_id are already fully documented in the schema, including defaults and max values. The description adds no parameter-level meaning beyond that, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List members of a Cloudflare account') and even previews the returned fields. However, it does not distinguish itself from the sibling get_account_member (singular retrieval) or list_account_roles, so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., needing account-level read access), and no reference to alternatives such as get_account_member for a single user. The agent is left to guess the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_rolesB
List the roles available in a Cloudflare account. Returns role IDs, names, descriptions, and permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the return payload (role IDs, names, descriptions, permissions), which is useful behavioral context for a list tool. But it omits pagination behavior, result limits, and any permission requirements for the caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the return contents. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only list tool with no output schema, describing the returned fields covers the main gap. Only pagination/result-size behavior is missing, which is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter (account_id), so the schema fully documents the input. The description adds no format or scoping detail beyond what the schema states, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'List the roles available in a Cloudflare account.' An agent immediately knows what it retrieves. However, it does not distinguish itself from the sibling 'get_account_role', leaving ambiguity about list vs. single-role fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as get_account_role or list_token_permission_groups. The agent must infer the scenario from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
List Cloudflare accounts accessible with the current API token. Returns account details such as ID, name, and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Account name to filter by | |
| page | No | Page number of paginated results (default: 1) | |
| per_page | No | Number of accounts per page (default: 20, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden of behavioral disclosure. It discloses the read-only nature ('List'), the authorization scope ('accessible with the current API token'), and the return substance ('account details such as ID, name, and settings'). Pagination behavior is not described, but it is largely covered by the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the action and scope, and the second sentence defines the return shape. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema, the description gives enough context about the resource, credential scope, and return values. Combined with fully documented pagination parameters, it is nearly complete; the only minor gap is that pagination behavior is not explicitly stated in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully documented in the schema (name filter, page, per_page), so the baseline is 3 even without parameter details in the description. The description adds no new parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an explicit verb ('List'), a specific resource ('Cloudflare accounts'), and a binding scope ('accessible with the current API token'). This clearly separates it from sibling tools like list_zones and list_dns_records, even without naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'accessible with the current API token' implies the intended context, but the description never explicitly states when to use this tool versus alternatives or when not to use it. No sibling-tool exclusions or fallback guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_security_insightsB
List Security Center insights for a Cloudflare account (account scope). Returns security issues with severity, type, and classification.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 adds real value by previewing the returned content (severity, type, classification), which partially compensates for the missing output schema. However, it discloses nothing about pagination, result limits, or required permissions for a security-sensitive listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the scope constraint front-loaded and no filler. Every clause carries information, though the second sentence could be folded more tightly into the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter listing tool with no output schema, the description covers what the tool is and roughly what it returns. It is nearly complete, with pagination and permissions being the only notable omissions, which are minor for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single well-documented account_id, so the schema already does the parameter work. The description adds no syntax, format, or scope nuance beyond what the schema states, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (Security Center insights) and scopes it to a Cloudflare account. The parenthetical '(account scope)' distinguishes it from the zone-scoped sibling list_security_insights. It stops short of naming that sibling explicitly, but an agent can infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance. The '(account scope)' qualifier weakly implies the boundary versus zone-scoped tools, but no alternative is named and no condition selects this tool over the adjacent list_security_insights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_subscriptionsB
List the subscriptions for a Cloudflare account. Returns subscription details including product, state, and price.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return payload shape (product, state, price), which is valuable since there is no output schema, but it says nothing about auth requirements, pagination, rate limits, or whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero padding, and the core action is front-loaded. The second sentence carries real information because no output schema exists, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no annotations and no output schema, the description covers the action and the return contents. The main gap is the absence of any guidance relative to the numerous sibling subscription/subscription-adjacent tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema description coverage, so the schema already documents account_id fully. The description adds no syntax, format, or sourcing detail beyond what the schema provides — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the subscriptions for a Cloudflare account') and the plural 'subscriptions' hints at the distinction from the singular get_account_subscription sibling. It does not explicitly name that sibling, so an agent must infer the difference rather than read it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives, and no prerequisites or exclusions. The sibling set contains get_account_subscription, get_subscription_cancel_reason, and many other account-scoped getters, but the description gives no routing guidance among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_tokensB
List the account-owned API tokens for a Cloudflare account. Returns token IDs, names, status, and policies.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| per_page | No | Number of tokens per page (default: 20, max: 50) | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 discloses the shape of the returned items (IDs, names, status, policies) and 'List' implies a read-only operation, but it says nothing about auth/permission requirements, rate limits, or how results behave when a page is out of range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with the return contents stated second. No filler and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes the return contents, and all three parameters are documented in the schema. For a simple paginated list tool this is nearly complete; only pagination edge behavior and auth expectations are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so account_id, page, and per_page (with defaults and max) are already fully documented in the schema. The description adds no parameter-level meaning beyond that, which is the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the account-owned API tokens for a Cloudflare account') and scopes it to account-owned tokens, which separates it from the singular get_account_token. It does not explicitly name the nearest siblings (list_token_permission_groups, verify_account_token), but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as get_account_token for a single token or verify_account_token for validation. The listing intent is implied only by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attack_surface_issuesB
List Security Center attack-surface-report issues for a Cloudflare account (misconfigurations and exposures).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a safe read, but there is no mention of pagination, result limits, required permissions, filtering behavior, or volume of data returned. For a list tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero waste, front-loaded with the verb and resource. The parenthetical gloss adds disambiguation value at no cost to brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could usefully state what an 'issue' record contains or how results are returned, but it does not. For a simple one-parameter list tool it is adequate to enable a correct call, but leaves return semantics entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single account_id parameter, so the schema already documents it fully. The description adds no syntax, format, or scoping nuance beyond the parameter name. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), a specific resource (Security Center attack-surface-report issues), and a scope (Cloudflare account), plus a gloss of what those issues are (misconfigurations and exposures). It is clearly distinguishable from the counts/type siblings by nature, though it never names a sibling to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance. Nothing tells the agent to prefer this over get_attack_surface_issue_counts_by_type, by_severity, or list_attack_surface_issue_types when it wants aggregate or type data instead of individual issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attack_surface_issue_typesC
List the Security Center attack-surface-report issue types for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a safe read via "List" but says nothing about permissions, pagination, result size, or return shape, which is a notable gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and resource front-loaded and no wasted words. It is appropriately sized, though it leaves room for additional useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. However, with no annotations and no return-format or sibling-differentiation context, it does not fully arm the agent to call it correctly versus adjacent tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single account_id parameter is already fully documented by the schema. The description adds no syntactic or format detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ("List") plus a specific resource ("Security Center attack-surface-report issue types for a Cloudflare account"). The purpose is unambiguous on its own, but it does not distinguish itself from closely related siblings such as list_attack_surface_issues or get_attack_surface_issue_counts_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when-not to use it, and no routing to the many sibling tools in the attack-surface and Security Center family. The agent is left to infer the calling context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audit_logsA
List audit log entries for a Cloudflare account. Returns operation history including timestamps, actors, actions, and affected resources. Useful for investigating who changed what and when.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| since | No | Filter by start date in ISO 8601 format (e.g. 2026-05-01T00:00:00Z) | |
| before | No | Filter by end date in ISO 8601 format | |
| actor_ip | No | Filter by the IP address of the actor | |
| per_page | No | Number of entries per page (default: 25, max: 1000) | |
| direction | No | Sort direction: asc or desc (default: desc) | |
| account_id | Yes | required,The ID of the Cloudflare account | |
| actor_email | No | Filter by the email of the actor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Returns' data, implying a read-only operation, and describes the content of the results. However, it does not disclose pagination behavior (despite page/per_page parameters), potential side effects, authentication requirements, or what happens when filters are applied. The description gives a general sense of the operation but lacks depth expected for a query tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundant information. The action is front-loaded ('List audit log entries'), followed by a brief explanation of the returned data and a clear use case. Every sentence earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema), the description provides a good high-level overview of the returned data and purpose. It does not explicitly mention pagination or the shape of the response, but the schema covers parameters and the description gives enough context for an agent to understand what the tool does. The lack of an output schema is partially mitigated by the description of the returned fields. Minor gaps include not mentioning pagination or sorting defaults, but the description is adequate for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 8 parameters having a description in the schema. The tool description itself does not add any parameter-specific information beyond what the schema already provides. Since the schema fully documents the parameters, the description does not need to compensate, and the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists audit log entries for a Cloudflare account and specifies the data returned (timestamps, actors, actions, affected resources). It differentiates itself from siblings like list_received_logs or query_security_events by focusing on audit log investigation, though it does not explicitly name any alternatives. The verb 'List' and resource 'audit log entries' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case ('investigating who changed what and when') but does not explicitly state when to use this tool versus similar siblings such as query_security_events or list_received_logs. There is no mention of exclusions or alternatives. The usage context is implied but not made explicit enough to guide an agent to the right tool among closely related options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_account_log_datasetsA
List the Logs Explorer datasets available to be configured for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. 'List' strongly implies a read-only, non-destructive operation, and 'available to be configured' clarifies that these are candidate datasets rather than existing configuration. It still omits details such as required permissions, rate limits, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the action, resource, and scope directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only list tool with no output schema, the description is mostly complete: it identifies the resource and account scope. The main remaining gap is sibling differentiation, which affects tool selection among similarly named list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single account_id parameter, so the schema already documents the parameter fully. The description does not add syntax, format, or additional meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, resource, and scope: 'List the Logs Explorer datasets available to be configured for a Cloudflare account.' This implicitly distinguishes it from configured-dataset siblings such as list_account_log_datasets, but it does not explicitly name any alternative tool to prevent confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'available to be configured' implies the tool is used to discover configurable datasets, giving some usage context. However, it does not explicitly state when to choose it over list_available_log_datasets or list_account_log_datasets, nor does it describe prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_log_datasetsB
List the Logs Explorer datasets available to be configured for a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
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 beyond the implied read-only nature of 'List'. It says nothing about pagination, permissions/auth requirements, ordering, how 'available to be configured' is determined, or what the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with zero padding, front-loading the verb and resource and ending with the scope constraint. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only list tool with 100% schema coverage and no output schema, the description is minimally sufficient. However, given the dense cluster of similar dataset-listing tools, it does not provide enough to confidently differentiate scope or expectations when selecting this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single zone_id parameter, so the schema does the documentation work; the description only reinforces that the scope is a Cloudflare zone. Baseline 3 is appropriate when the schema fully covers parameters and the description adds no syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Logs Explorer datasets) and adds a scope qualifier ('available to be configured') plus the zone scoping. This meaningfully distinguishes it from siblings like list_log_datasets and list_available_account_log_datasets, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it should call this to discover which datasets can be configured for a zone. There is no explicit when-to-use, when-not, or reference to the closely related account-level or already-configured dataset tools, which is a notable gap given how many near-identical siblings exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dns_recordsA
List DNS records for a Cloudflare zone. Returns record details such as ID, type, name, content, TTL, and proxy status.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | DNS record name to filter by | |
| page | No | Page number of paginated results (default: 1) | |
| type | No | DNS record type to filter by (A, AAAA, CNAME, TXT, MX, etc.) | |
| content | No | DNS record content to filter by | |
| zone_id | Yes | required,The ID of the zone | |
| per_page | No | Number of records per page (default: 100, max: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It clearly signals a read-only list operation and enumerates return fields, but it does not mention pagination behavior, result limits, or how the filtering parameters affect the response. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the action front-loaded and the return fields following. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list operation with fully documented parameters and a stated set of return fields, the description is largely sufficient. It does not explicitly explain pagination behavior, but the schema's page/per_page parameters cover that. A slightly richer usage note would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds no meaning beyond the schema, such as filter syntax or interactions between parameters. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List DNS records for a Cloudflare zone.' It also names the return fields, which distinguishes this from sibling tools like list_passive_dns or get_dns_analytics. An agent can identify exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives. It does not mention prerequisites such as needing a valid zone_id, nor does it contrast against sibling DNS-related tools. Usage must be inferred entirely from the tool name and first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dnssec_zskC
List DNSSEC Zone Signing Keys (ZSKs) for a Cloudflare zone (multi-signer DNSSEC). Returns the ZSK records.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List' implies a safe read, but it discloses nothing about authentication requirements, multi-signer enablement prerequisites, pagination, or whether the key set can be empty. The 'multi-signer' hint is the only added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose. The second sentence, 'Returns the ZSK records,' largely restates the first and adds little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers the essentials plus a scope hint. It still omits pagination behavior, auth needs, and the precondition that multi-signer DNSSEC is configured, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single zone_id parameter, so the schema already documents it fully. The description adds no syntax, format, or sourcing detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: lists DNSSEC Zone Signing Keys for a Cloudflare zone, and the parenthetical 'multi-signer DNSSEC' narrows the scope. It does not, however, distinguish itself from DNSSEC-adjacent siblings such as get_dnssec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites (e.g. that multi-signer DNSSEC must be enabled), and names no alternative such as get_dnssec. The agent is left to infer everything about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_firewall_rulesA
List custom firewall rules for a Cloudflare zone. Returns rule expressions, actions, and priorities. Useful for investigating which rules may be blocking or challenging traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| zone_id | Yes | required,The ID of the zone | |
| per_page | No | Number of rules per page (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the action and the data returned, but it does not mention that this is a read-only operation (no side effects), or any prerequisites like required permissions. It also does not describe pagination behavior beyond what the schema implies. The description provides some context but lacks depth on response structure or potential errors. Given the read-only nature and common listing pattern, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the action and output, the second provides a use case. There is no fluff or redundancy, and the key information is front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a simple listing tool with three parameters and no output schema, the description is mostly complete. It covers purpose, returned data, and a typical use case. It could mention that results are paginated (though the schema implies it) and how to interpret the returned rules (e.g., that expressions are in Cloudflare's syntax). But for a list operation, it provides sufficient context for an agent to call it correctly. The absence of explicit pagination guidance is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – all three parameters have descriptive text (zone_id, page, per_page) in the schema. The description does not add meaning beyond what the schema provides, except implying that zone_id is the target of the listing. Since the schema covers the parameters adequately, the baseline of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'list' and resource 'custom firewall rules' for a Cloudflare zone. It also specifies the returned data (rule expressions, actions, priorities), distinguishing it from other list tools like list_rulesets or list_rate_limits. The context of 'custom' differentiates it from managed rules, providing clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: 'investigating which rules may be blocking or challenging traffic.' This implies when to use the tool. However, it does not explicitly mention alternatives or when not to use it, such as when needing a single rule (get_firewall_rule) or when working with managed rulesets. But the naming and context provide sufficient guidance for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indicator_feed_permissionsB
List the indicator feed permissions (feeds the account can view) for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that permissions are listed, but omits whether the operation is read-only (implied but not explicit), what permissions or fields are returned, or any auth/rate-limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to defining the resource and its scope, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with no output schema, the description is largely sufficient. It clarifies what is listed (feeds the account can view) and for whom, though it could benefit from a note on return format or read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, and the single parameter account_id is already documented there. The description adds no extra meaning or format guidance beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list) and resource (indicator feed permissions), and clarifies the scope with 'feeds the account can view'. It does not, however, explicitly distinguish this from sibling tools like list_indicator_feeds or get_indicator_feed, leaving some routing ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives such as list_indicator_feeds or get_indicator_feed. It only defines the operation, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indicator_feedsB
List the threat-intelligence indicator feeds owned by a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, whether authentication or specific permissions are required, whether results are paginated, or what the response contains beyond the high-level purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. The purpose and scope are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description communicates the core purpose. However, given the absence of annotations and any return-value schema, it should do more to explain behavioral context or usage boundaries; it is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single required parameter account_id already documented. The description adds no additional meaning about the parameter (e.g., format, source, or constraints), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('threat-intelligence indicator feeds') scoped to 'owned by a Cloudflare account'. It is clear what the tool does, but it does not differentiate itself from siblings such as get_indicator_feed or download_indicator_feed_data by naming alternatives or contrasting scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like get_indicator_feed, list_indicator_feed_permissions, or download_indicator_feed_data. Usage is only implied by the verb 'List', with no conditions, exclusions, or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_instant_logs_jobsB
List Instant Logs (edge) jobs for a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'List' implies a read operation, but it says nothing about pagination, result limits, auth requirements, or what an Instant Logs job record contains. Only the bare minimum is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool this is minimally adequate, but with no output schema the description should say something about what a job listing returns or how results are scoped. It leaves that to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single zone_id parameter, so the baseline is 3. The description adds no extra meaning (e.g., format, where to obtain the ID) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (Instant Logs edge jobs), and scope (for a Cloudflare zone), which distinguishes it from the many logpush and log-dataset siblings. It does not name an alternative explicitly, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, despite many closely related siblings such as list_logpush_jobs, list_account_logpush_jobs, and list_available_log_datasets. The agent must infer the distinction from the resource noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ip_access_rulesB
List IP access rules for a Cloudflare zone. Returns rules that block, challenge, or allow specific IPs, CIDRs, ASNs, or countries.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | Filter by specific IP address | |
| mode | No | Filter by mode: block, challenge, whitelist, js_challenge | |
| page | No | Page number of paginated results (default: 1) | |
| zone_id | Yes | required,The ID of the zone | |
| per_page | No | Number of rules per page (default: 20, max: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral disclosure burden. It communicates a read-only listing operation and describes the output in terms of rule actions and match targets, but it does not mention pagination behavior, ordering, authentication requirements, or whether the list is exhaustive. These are meaningful gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action and scope are front-loaded, and the second sentence adds useful detail about the rule actions and match types without repeating schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with full parameter documentation, the description is minimally adequate: it names the required scope (zone) and the nature of the returned rules. However, with no output schema or annotations, it does not explain pagination semantics, how filters combine, or how this tool differs from closely related sibling tools, leaving the agent to infer those details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a description in the input schema. The tool description adds no parameter-level detail beyond what the schema provides; it only contextualizes what the rules match, which is already implied by the schema's filter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('IP access rules for a Cloudflare zone'), and clarifies what the rules do ('block, challenge, or allow specific IPs, CIDRs, ASNs, or countries'). It is clear and unambiguous, though it does not explicitly contrast itself with sibling tools such as list_firewall_rules or get_firewall_rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like list_firewall_rules, get_rate_limit, or get_ruleset. The description only says what the tool does, not under what circumstances an agent should select it or when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_kv_keysA
List keys in a Workers KV namespace. Supports prefix filtering and cursor pagination. Returns key names, expiration, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of keys to return (default: 1000, max: 1000) | |
| cursor | No | Pagination cursor from a previous response | |
| prefix | No | Filter keys by prefix | |
| account_id | Yes | required,The ID of the Cloudflare account | |
| namespace_id | Yes | required,The ID of the KV namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses prefix filtering, cursor pagination, and the returned fields (key names, expiration, metadata), which implies a read-only listing operation, but it says nothing about required permissions, rate limits, or result ordering/caps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences: purpose, capabilities, return shape. Nothing is repetitive or wasted, though it is somewhat terse rather than richly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully summarizes the return payload, and the parameter surface is fully covered by the schema. The main gap is the absence of usage routing relative to the many KV and list siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including limit defaults/max and cursor semantics. The description echoes prefix and cursor without adding format or constraint detail beyond the schema, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List keys in a Workers KV namespace') and scopes it precisely to keys within a namespace. It does not explicitly differentiate itself from siblings like list_kv_namespaces or get_kv_value, but the scope is clear enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions prefix filtering and cursor pagination, which implies when the tool is useful, but gives no explicit when-to-use/when-not or named alternatives (e.g., 'use list_kv_namespaces to discover namespaces first, get_kv_value to read values'). Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_kv_namespacesA
List Workers KV namespaces in a Cloudflare account. Returns namespace details such as ID and title.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| order | No | Order results by field: id or title | |
| per_page | No | Number of namespaces per page (default: 20, max: 100) | |
| direction | No | Sort direction: asc or desc | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly indicates a read-only listing operation and mentions the returned namespace details. It does not disclose pagination behavior or response shape, but the verb 'List' and the return-value note provide adequate basic transparency for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, followed by a concise statement of return content. There is no redundant or filler language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with a fully documented schema, the description covers scope and return content adequately. It does not enumerate all possible returned fields or pagination mechanics, but the schema's pagination parameters and the 'such as ID and title' summary make the tool usable without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds little beyond reinforcing the account scope and the kind of returned data; it does not enrich parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List Workers KV namespaces in a Cloudflare account.' It also states what is returned ('namespace details such as ID and title'), making the tool's purpose unmistakable and distinct from the sibling Cloudflare tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this tool when you need to enumerate KV namespaces for a given Cloudflare account. However, it does not explicitly contrast with alternatives or state when not to use it, so guidance is only implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_datasetsB
List Logs Explorer datasets configured for a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List' plus 'configured for a Cloudflare zone' conveys a safe, zone-scoped read operation, but it is silent on pagination, result ordering, empty-zone behavior, and required permissions. For a low-risk read tool this is thin but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the zone scope is stated immediately. It is efficient, though its brevity is part of why usage and behavioral gaps remain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description would ideally sketch what a dataset record contains (fields, identifiers usable with get_log_dataset). With only one fully documented parameter the tool is simple, but the missing return-value context leaves a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single zone_id parameter is already documented in the schema, so the baseline of 3 applies. The description adds no syntax, format, or scoping detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('List') and resource ('Logs Explorer datasets') scoped to a Cloudflare zone, which distinguishes it from the account-level sibling list_account_log_datasets. However, it never names the closer alternatives list_available_log_datasets or get_log_dataset, so an agent must infer the difference between listing configured datasets versus available ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The word 'configured' hints that this returns already-set-up datasets rather than the catalog of options offered by list_available_log_datasets, but that routing distinction is left to the agent to infer. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_fieldsA
List all available HTTP request log fields for a Cloudflare zone. Returns field names and descriptions. Use this to discover which fields can be specified when calling get_log_by_rayid or list_received_logs.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the output (field names and descriptions) and implies a read-only discovery operation, but it does not explicitly confirm no side effects, mention authentication needs, rate limits, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences deliver the purpose, output, and usage guidance with no wasted words. The description is front-loaded with the resource and action, then immediately points to related tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity discovery tool with one fully documented parameter and no output schema, the description sufficiently covers the return value and intended use. Minor omissions like pagination or error behavior are not critical for this kind of tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single zone_id parameter with 100% coverage. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: list available HTTP request log fields for a Cloudflare zone, returning field names and descriptions. It also references sibling tools, distinguishing it from get_log_by_rayid and list_received_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool to discover which fields can be specified when calling two specific siblings. It provides clear context for when to use the tool, though it does not mention exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_logpush_dataset_fieldsB
List the available Logpush fields for a specific dataset in a Cloudflare zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| dataset_id | Yes | required,The Logpush dataset ID (e.g. http_requests, firewall_events) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only repeats the list action. It does not state that the operation is read-only, whether authorization is required, whether results are paginated, or how the returned fields are structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and scope are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with fully documented parameters, the description states what is returned and the required scope. However, with no annotations and no output schema, it leaves gaps around read-only safety, pagination, and how to distinguish this zone-scoped call from its account-scoped sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both required parameters are fully documented in the schema; the description merely restates that a dataset and zone are needed. It adds no syntax, format, or constraint details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' and resource 'available Logpush fields' with the scoping qualifier 'for a specific dataset in a Cloudflare zone'. It implicitly separates this tool from the account-level sibling via the zone scope, but does not explicitly name or route to that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisite, or alternative-tool guidance. The description implies you need a zone and dataset ID, but leaves the choice between this and the account-scoped sibling to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_logpush_dataset_jobsC
List Logpush jobs for a specific dataset in a Cloudflare zone (e.g. http_requests, firewall_events).
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| dataset_id | Yes | required,The Logpush dataset ID (e.g. http_requests, firewall_events) |
TDQS
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. 'List' implies a safe read, but it says nothing about pagination, result limits, ordering, or required permissions for a zone-scoped query. For a no-annotation tool this leaves meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that names the operation and scope with zero filler. It is efficient though minimal; the examples earn their place by clarifying the dataset parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only listing with no output schema, the description plus fully documented schema covers the essentials. It is adequate but omits anything about result shape or pagination behavior, and gives no sibling differentiation, so it stops short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both required parameters are documented in the schema, including the same dataset examples echoed in the description. The description adds no syntax, ID format, or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (Logpush jobs), and scope (a specific dataset in a Cloudflare zone), with concrete dataset examples. It does not, however, explicitly distinguish itself from close siblings like list_logpush_jobs or list_account_logpush_dataset_jobs, so the agent must infer the zone/dataset scoping difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g. needing a zone_id), and no routing to alternatives such as list_logpush_jobs for zone-wide listings or the account-scoped variant. The agent gets a description of what the tool returns but not when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_logpush_jobsA
List Logpush jobs for a Cloudflare zone. Returns job details including dataset, destination, and enabled status.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
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. 'List' implies a safe read and it discloses the return contents (dataset, destination, enabled status), but it says nothing about pagination, filtering, or required permissions for what is a read operation over potentially many jobs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the operation and scope, followed by the return contents. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with no annotations and no output schema, the description covers the essentials and hints at the return shape. It stops short of addressing pagination or how results are scoped/filtered, which an agent may need to call it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single zone_id parameter, so the schema already documents the only input. The description adds no syntax, format, or semantics beyond what the schema provides, giving the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Logpush jobs) scoped to a Cloudflare zone, which separates it from the account-level sibling list_account_logpush_jobs. It does not explicitly name the alternatives, so an agent still has to infer the zone-vs-account distinction from the phrasing alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for a Cloudflare zone' scoping implicitly routes the agent versus list_account_logpush_jobs and list_logpush_dataset_jobs, but no when-to-use or exclusion guidance is given. There is no mention of prerequisites or which sibling to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_partner_shadow_zone_hostsC
List the hosts in a partner-discovered shadow zone for a Cloudflare account, partner, and domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | required,The shadow zone domain | |
| partner | Yes | required,The partner identifier | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 implies a read operation via 'List', but discloses nothing about pagination, result limits, auth requirements, or what happens with unknown inputs. The bare scope sentence leaves significant gaps for a no-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the resource front-loaded and no wasted words. Slightly terse given its total lack of behavioral context, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the tool is a simple filtered list with fully documented parameters. The definition says enough to invoke it correctly, but a reader gets no sense of what a 'partner-discovered shadow zone' is or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a descriptive schema entry, so the baseline is 3. The description's phrase 'for a Cloudflare account, partner, and domain' merely restates the three required parameters without adding format or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' plus resource 'hosts in a partner-discovered shadow zone', scoped to account/partner/domain. It is clearly distinguishable from list_partner_shadow_zones (which lists zones, not hosts), though it does not explicitly contrast with the very similar list_zone_partner_shadow_hosts sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what can be listed but gives no when-to-use guidance, no prerequisites, and never names an alternative such as list_partner_shadow_zones or list_zone_partner_shadow_hosts. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_partner_shadow_zonesC
List partner-discovered shadow zones (unmanaged domains) for a Cloudflare account and partner.
| Name | Required | Description | Default |
|---|---|---|---|
| partner | Yes | required,The partner identifier | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a read-only operation, but nothing is said about pagination, result volume, permissions, or partner/account side effects. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical definition is a compact clarification. Nothing is wasted, though there is little structure beyond the one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter list tool with full schema coverage and no output schema, the core is adequate. However, ambiguity against the shadow-host sibling tools is not resolved, and no return-shape or scope hints are given, leaving the agent to infer whether zones or hosts come back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and partner are documented in the schema itself. The description only restates that account and partner scope the result, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (partner-discovered shadow zones), and even glosses the term as 'unmanaged domains'. It scopes to a Cloudflare account and partner, but does not distinguish this from the very similar sibling tools list_partner_shadow_zone_hosts and list_zone_partner_shadow_hosts, so an agent can't tell 'zones' vs 'hosts' apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no named alternative. Given the cluster of near-identical sibling tools (shadow zone hosts, zone partner shadow hosts, partner insight counts), routing information would be especially valuable here and is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_passive_dnsA
List domains that have resolved to a specific IP address (passive DNS). Useful for identifying shared hosting or malicious infrastructure by revealing which domains point to a given IP.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | required,The IPv4 address to look up | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a 'list' (implying read-only) and reveals domains for an IP, but it does not mention any limits, pagination, or what happens when no results exist. For a simple list operation this is adequate, but it leaves some behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The primary action and resource are stated first, followed by a concise rationale for use. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and no output schema, the description provides the essential purpose and a use case. However, it lacks explicit usage guidelines (when not to use, alternatives) and any mention of behavioral limitations. Given the low complexity, it is minimally sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (ip and account_id) at 100% coverage, so the baseline is 3. The description does not add any additional semantic detail beyond the schema; it only ties the ip parameter to the concept of passive DNS. No enhancement is needed, but no extra value is provided either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List') and resource ('domains that have resolved to a specific IP address'), and immediately identifies it as passive DNS. It is distinct from sibling tools like get_ip_intel or get_domain_intel, though it does not explicitly name alternatives. The purpose is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use case ('identifying shared hosting or malicious infrastructure'), which implies when it is useful. However, it does not explicitly say when not to use it or mention alternatives such as get_ip_intel or get_domain_intel that might also provide IP-related intelligence. The guidance is contextual but not prescriptive about choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rate_limitsA
List rate limiting rules for a Cloudflare zone. Returns thresholds, matching criteria, actions, and bypass rules. Useful for checking brute-force protection and identifying rate-limited traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| zone_id | Yes | required,The ID of the zone | |
| per_page | No | Number of rules per page (default: 25, max: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose response contents ('thresholds, matching criteria, actions, and bypass rules') and the 'list' verb implies a read-only operation, but it does not address pagination behavior, ordering, errors, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the action, the response contents, and a concrete use case. The primary purpose is front-loaded and there is no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with fully documented parameters, the description is nearly complete: it states the purpose, what the response contains (compensating for the absent output schema), and a concrete use case. The only gaps are the lack of explicit sibling routing to get_rate_limit and no explicit read-only/authorization disclosure, which is mitigated by the 'list' verb.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (zone_id, page, per_page) already documented including defaults and max. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List rate limiting rules for a Cloudflare zone.' It further specifies what is returned ('thresholds, matching criteria, actions, and bypass rules'), which distinguishes it from the singular get_rate_limit sibling and from list_firewall_rules/list_rulesets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use context: 'useful for checking brute-force protection and identifying rate-limited traffic.' However, it does not name alternatives or state when not to use this tool, so the agent must infer the distinction from sibling names like get_rate_limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_received_logsA
Retrieve HTTP request logs for a Cloudflare zone within a time range. Returns NDJSON log entries. Time range is limited to 1 hour and data must be at least 5 minutes old. Useful for investigating traffic patterns and anomalies.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | required,End timestamp (exclusive) in RFC3339 or UNIX format | |
| count | No | Maximum number of records to return | |
| start | Yes | required,Start timestamp (inclusive) in RFC3339 or UNIX format | |
| fields | No | Comma-separated list of log fields to return | |
| sample | No | Sampling rate between 0.0 and 1.0 | |
| zone_id | Yes | required,The ID of the zone | |
| timestamps | No | Timestamp format: unixnano (default), unix, or rfc3339 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral transparency burden. It discloses output format (NDJSON) and data availability constraints (time range limited to 1 hour, data at least 5 minutes old). It does not discuss pagination, auth, or default values for count/sample, so it is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences front-load the purpose, then add necessary constraints and a use case. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return format (NDJSON) and key constraints. It doesn't explain output fields or pagination, but those are partially addressed by sibling list_log_fields and schema parameters. Overall adequate for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described in the schema. The description does not add parameter-specific semantics beyond the schema; it only mentions time range constraints. Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves HTTP request logs for a Cloudflare zone within a time range and specifies the output format (NDJSON). It distinguishes from siblings like get_log_by_rayid and query_security_events by explicitly mentioning HTTP request logs and zone scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: useful for investigating traffic patterns and anomalies, and records specific constraints (1-hour range, 5-minute delay). However, it does not name alternative tools or state when not to use this tool, so it stops short of being fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rulesetsA
List all rulesets for a Cloudflare zone. Returns ruleset metadata (ID, name, kind, phase, version) without individual rules. Use get_ruleset to inspect rules within a specific ruleset.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It clarifies the return content (metadata only, no rules) and implicitly indicates it is a read operation (list). However, it does not detail pagination, rate limits, or response format, which is a gap for a list operation with no other behavioral metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary action and core information in the first sentence, and the alternative routing in the second. Every word serves a purpose; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and the description covers its main behavior and routing to a sibling. However, because there is no output schema and no annotations, it could be more complete by mentioning that the response is a paginated list or any default limits, and note that it is read-only. Still, for a list operation, the current description is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage and describes 'zone_id' as 'The ID of the zone'. The description adds no further meaning about the parameter, so it adds no extra semantic value beyond the schema. The baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all rulesets'), the resource ('for a Cloudflare zone'), and the key distinction from get_ruleset ('without individual rules'). It is specific and unambiguous, fully distinguishing it from the sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs users to use get_ruleset when they need to inspect individual rules, providing a clear when-not-to-use scenario. It lacks mention of alternative list tools (like list_waf_managed_rulesets) but still offers sufficient usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scanned_dns_recordsB
List DNS records discovered by a DNS record scan for a Cloudflare zone, pending review. Returns the scanned records.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
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 a meaningful state trait (records are scan-discovered and pending review), but says nothing about permissions, pagination, or how the scanned set relates to actual zone records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the verb+resource+scope. The trailing sentence "Returns the scanned records." largely restates the opening verb, so it is mild redundancy rather than useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter list tool with no output schema and no annotations, the description covers what the tool returns in a general way but omits the return shape, ordering, and any limit/pagination behavior. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (zone_id) exists and schema description coverage is 100%, so the schema already fully documents it. The description adds no format, scope, or qualifier detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("List DNS records") and narrows the scope to records discovered by a DNS record scan that are pending review, which distinguishes it from the broader list_dns_records/list_passive_dns siblings. However, it never names those siblings or states the contrast explicitly, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "pending review" implies the tool is used to triage scan-discovered findings before acting on them, which is indirect usage context. There is no explicit when-to-use, when-not-to-use, or alternative tool named (e.g., list_dns_records for live records), leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_security_insightsB
List Security Center insights for a Cloudflare zone. Returns security issues with severity, type, and classification. Useful for identifying misconfigurations and vulnerabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone | |
| severity | No | Filter by severity: critical, high, moderate, low, informational | |
| issue_type | No | Filter by issue type | |
| issue_class | No | Filter by issue class |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions what it returns (security issues with severity, type, classification) but does not mention pagination, potential rate limits, authentication needs, or whether results are sorted or filtered. It also does not explicitly confirm this is a read-only operation, though listing implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the primary action and return content. It is efficient and free of fluff, though it could incorporate more usage context without becoming verbose. The structure is good, but not perfect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description provides the return type and use case but lacks details on pagination, error handling, or how this tool differs from similar ones like get_insight_counts. It is adequate for a simple list operation but leaves some gaps for an agent deciding how to use it fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The tool description adds no extra meaning to the parameters—it does not explain how filters interact, provide examples, or clarify the format of values. Since the schema handles parameter semantics, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Security Center insights for a Cloudflare zone, with a specific verb and resource. It distinguishes itself from siblings like get_insight_counts by focusing on insights with severity, type, and classification, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is useful for identifying misconfigurations and vulnerabilities, giving a usage context. However, it does not explicitly state when not to use it or point to alternatives such as get_insight_counts or query_security_events, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sinkhole_ingressesC
List the ingress rules for a specific DNS sinkhole by sinkhole ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account | |
| sinkhole_id | Yes | required,The ID of the sinkhole |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. Aside from the implicit read-only nature of 'List', it discloses nothing about pagination, result ordering, permission/scope requirements, or behavior when the sinkhole_id does not exist. This is a thin disclosure for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than disciplined economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and no output schema, the minimum is met. Still missing is any note on how to obtain a sinkhole_id (e.g., via list_sinkholes) and whether results are paginated or complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both account_id and sinkhole_id are already documented in the schema. The description only restates that the sinkhole is selected 'by sinkhole ID', adding no format examples or ID-acquisition guidance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the ingress rules') plus the scoping entity (a specific DNS sinkhole identified by ID). This distinguishes it from list_sinkholes and get_sinkhole in the sibling set, though it does not explicitly name those alternatives as differentiators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as list_sinkholes (to discover IDs) or get_sinkhole (for sinkhole details). The agent must infer that this is the drill-down tool for a known sinkhole_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sinkholesC
List the DNS sinkholes owned by a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers only account scoping. It does not disclose whether results are paginated, how many sinkholes can be returned, required auth/permissions, or any rate limit — all relevant for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler and no redundancy. It is efficient, though so terse that it omits anything beyond the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool this is close to adequate, but with no output schema and no annotations the description should say something about the returned collection or pagination. As written, the agent knows what it lists but not what it gets back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single account_id parameter, so the schema already documents it fully; baseline 3 applies. The phrase "owned by a Cloudflare account" merely reinforces the scope already implied by account_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("List the DNS sinkholes") with a stated scope ("owned by a Cloudflare account"), which is clearer than a bare restatement of the name. It does not, however, distinguish this from siblings like get_sinkhole (single) or list_sinkhole_ingresses (child resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_sinkhole or list_sinkhole_ingresses, and no mention of prerequisites or pagination behavior. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_token_permission_groupsB
List the permission groups available for account-owned API tokens. Useful for building token policies.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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; beyond the read-only implication of 'List,' it discloses nothing about authentication requirements, pagination, idempotency, or return shape. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and the usage note kept brief. No filler or repetition; every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only listing with no output schema, the description states what is listed and a practical use, but it omits usage boundaries and any behavioral context that would otherwise come from annotations. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required account_id parameter, so the schema already defines the parameter. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' plus resource 'permission groups' scoped to 'account-owned API tokens,' which naturally distinguishes it from siblings like list_account_tokens and list_account_roles. It stops short of a 5 because it never explicitly names a boundary or alternative sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful for building token policies' gives a use context but no when-to-use rules, prerequisites, or comparison to alternatives. Guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_audit_logsA
List audit log entries for the current Cloudflare user (user-scoped). Returns the user's operation history including timestamps, actions, and affected resources.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of paginated results (default: 1) | |
| since | No | Filter by start date in ISO 8601 format (e.g. 2026-05-01T00:00:00Z) | |
| before | No | Filter by end date in ISO 8601 format | |
| per_page | No | Number of entries per page (default: 25, max: 1000) | |
| direction | No | Sort direction: asc or desc (default: desc) |
TDQS
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 conveys a read-only listing and the returned fields (timestamps, actions, affected resources). However, it omits permission/auth requirements, rate limits, and pagination semantics, which matter for a 5-parameter paginated list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the scope differentiator is front-loaded and the return summary follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description's brief account of returned fields (timestamps, actions, affected resources) does useful work. It is nearly complete for a list tool, though it could note that results are permission-constrained to the current user's own history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents page, since, before, per_page, and direction with formats and defaults. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List audit log entries') plus a decisive scope qualifier ('for the current Cloudflare user (user-scoped)'). That scope note cleanly separates it from the many account- and zone-scoped audit log siblings such as get_account_audit_logs_v2 and list_audit_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(user-scoped)' tag implies when this tool is the right choice versus account-scoped siblings, but no alternative is named and there are no explicit when/when-not conditions. Use is inferrable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_waf_managed_rulesetsA
Get the WAF managed rulesets entrypoint for a Cloudflare zone. Returns which managed rulesets (e.g. Cloudflare Managed Ruleset, OWASP) are enabled and their configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the read-only nature ('Get') and the returned content, but does not mention authentication requirements, rate limits, or what 'entrypoint' means behaviorally. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and resource are front-loaded, and the return-value explanation is concise and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with no output schema, the description explains the return value sufficiently. It could mention whether the response is paginated or how configuration is structured, but the tool's low complexity makes the current description nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter zone_id, so the schema already documents it. The description adds only the context that the tool operates 'for a Cloudflare zone', which does not meaningfully expand on the schema's 'The ID of the zone'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the exact resource ('WAF managed rulesets entrypoint for a Cloudflare zone'). It also clarifies the return value ('which managed rulesets are enabled and their configuration'), making it distinct from siblings like get_ruleset or list_rulesets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('for a Cloudflare zone') but provides no explicit guidance on when to choose this tool over alternatives such as list_rulesets or get_ruleset. No exclusions or conditions are stated, leaving the agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_zone_partner_shadow_hostsB
List partner-discovered shadow hosts for a Cloudflare zone and partner.
| Name | Required | Description | Default |
|---|---|---|---|
| partner | Yes | required,The partner identifier | |
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List' implies a read, but it discloses nothing about pagination, result limits, required permissions for partner data, or what a 'shadow host' actually represents. That is a notable gap for a partner-integration data tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and no wasted words. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool this is minimally adequate: the schema covers inputs, but with no output schema and no annotations the description should say something about what is returned or how results are bounded. It leaves the agent unable to anticipate the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both zone_id and partner are already documented in the schema, making the baseline 3 appropriate. The description echoes that both a zone and a partner identifier are required but adds no format, syntax, or behavioral nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (List) with a specific resource (partner-discovered shadow hosts) and scopes it to 'a Cloudflare zone and partner'. This implicitly distinguishes it from the account-level list_partner_shadow_zone_hosts sibling, though it never names that alternative to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the 'for a Cloudflare zone and partner' scoping. There is no explicit when-to-use, no when-not-to-use, and no named alternative, even though list_partner_shadow_zone_hosts, list_partner_shadow_zones, and list_scanned_dns_records are close siblings an agent could easily confuse this with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_zonesB
List zones in your Cloudflare account. Returns zone details such as ID, name, status, and plan.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | A domain name to filter zones by | |
| page | No | Page number of paginated results (default: 1) | |
| per_page | No | Number of zones per page (default: 20, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that this is a read-only listing operation and mentions returned details, but it does not explain pagination behavior, filtering semantics, authentication needs, or any rate-limit implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action is front-loaded, and the output details are stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with three optional parameters and no output schema, the description plus schema covers the essential information. It states what is returned, and the schema documents the parameters. It could mention pagination behavior more explicitly, but overall it is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any meaning beyond the schema for the name, page, or per_page parameters, but it also does not need to since the schema already documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('zones in your Cloudflare account'), and mentions the returned fields. It is distinct from singular get_zone, but it does not explicitly differentiate itself from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_zone or list_accounts. The description implies a list operation but provides no context about filtering, pagination, or when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_account_logs_sqlC
Run a Logs Explorer SQL query for a Cloudflare account (GET). Returns the query results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | required,The SQL query to run against Logs Explorer | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 adds that the call is a GET and returns query results, but says nothing about rate limits, query cost/timeouts, allowed SQL syntax, result size limits, or pagination for what is potentially an expensive log-scanning operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, with no filler. Slightly under-detailed rather than wasteful, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with a complete schema, the description is minimally adequate. With no output schema and no annotations, it could still say more about result shape and constraints, but nothing is actively misleading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully documented in the schema (100% coverage), so the baseline is 3. The description adds nothing beyond the schema about query format, dialect, or valid account_id forms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Run) and resource (Logs Explorer SQL query) and scopes it to a Cloudflare account, which sets it apart from the zone-level query_logs_sql sibling. It does not explicitly name the alternative or explain what distinguishes account-scoping, but the purpose is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus query_logs_sql or retrieve_account_logs, nor any preconditions about dataset availability or SQL dialect. Usage is only implied by the tool name, leaving the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_logs_sqlC
Run a Logs Explorer SQL query for a Cloudflare zone (GET). Returns the query results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | required,The SQL query to run against Logs Explorer | |
| zone_id | Yes | required,The ID of the zone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. The '(GET)' marker hints at a read-only, non-destructive call, but there is no mention of required token permissions, rate limits, query cost/timeouts, or result caps — all material for an arbitrary SQL endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the operation front-loaded and no padding. The trailing 'Returns the query results' is mildly redundant but acceptable given there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary SQL execution tool with no output schema and no annotations, the description is under-specified: it omits dialect/dataset scope, result limits, and pagination behavior that an agent needs to call it correctly. Only the zone scope and GET semantics are conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (query, zone_id) are documented in the schema, so the baseline is 3. The description adds nothing about SQL dialect, queryable datasets, or time-range requirements that would help an agent construct a valid query string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run a Logs Explorer SQL query') and scopes it to a Cloudflare zone, which implicitly separates it from the account-level sibling query_account_logs_sql. It does not name that sibling explicitly, so an agent must infer the zone/account split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The description never mentions query_account_logs_sql, retrieve_account_logs, or list_received_logs, so the agent gets no help choosing among the several log-retrieval tools in the sibling set beyond the bare word 'zone'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_security_eventsB
Query security events for a Cloudflare zone using the GraphQL Analytics API. Returns event details including client info, action taken, rule details, bot score, and response status for security event triage.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Filter by requested HTTP hostname | |
| limit | No | Max number of events to return (default: 100, max: 10000) | |
| action | No | Filter by action taken: block, challenge, jschallenge, managedchallenge, log, allow, bypass, connectionclose | |
| source | No | Filter by mitigation source: firewallManaged, firewallCustom, firewallrules, waf, rateLimit, bic, hot, securitylevel, uablock, ip, iprange, asn, country, zonelockdown, l7ddos, botfight, botmanagement, apishield, apishieldschemavalidation, apishieldtokenvalidation, apishieldsequencemitigation, dlp, validation | |
| country | No | Filter by client country name (e.g. US, JP, CN) | |
| date_to | Yes | required,End datetime in RFC3339 format | |
| rule_id | No | Filter by the rule ID that triggered the event | |
| zone_id | Yes | required,The ID of the zone | |
| client_ip | No | Filter by client IP address | |
| date_from | Yes | required,Start datetime in RFC3339 format (e.g. 2026-03-23T08:19:58Z) | |
| http_method | No | Filter by HTTP request method (e.g. GET, POST) | |
| request_path | No | Filter by HTTP request path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the GraphQL Analytics API and states that it returns event details, but does not disclose pagination, default limits, rate limits, data retention, or access requirements. This is minimal transparency for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: the first identifies the operation and API, the second summarizes the return payload. No filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters and no output schema, the description provides a useful high-level summary of returned fields (client info, action, rule details, bot score, response status) but omits output structure, pagination, and behavioral constraints. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters are already documented in the schema. The description adds no parameter-specific semantics beyond the return fields, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Query'), a clear resource ('security events for a Cloudflare zone'), and the underlying API ('GraphQL Analytics API'). It is unambiguous about the operation, though it does not explicitly differentiate from sibling tools like list_security_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for security event triage' implies a use case and provides some context, but the description offers no explicit guidance on when to use this tool versus alternatives, no exclusions, and no reference to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_account_logsB
Retrieve stored log entries for a Cloudflare account (Logpull). Returns NDJSON. Supports start, end, and path filters.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (RFC3339 or Unix timestamp) | |
| path | No | Path/bucket of the log file(s) to retrieve | |
| start | No | Start time (RFC3339 or Unix timestamp) | |
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the return format (NDJSON) and the filter surface, but omits permissions required, volume/size constraints, pagination, retention window, and whether the call is read-only or billable. The return-format disclosure is genuine added value, but key operational behavior is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler: purpose, return format, filters in that order. Slightly telegraphic wording ('Supports start, end, and path filters') but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry return-value context; it does mention NDJSON, which is helpful. But it does not describe the NDJSON record shape, expected volume, or how results are bounded, leaving gaps for a tool whose output is opaque to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents account_id, start, end, and path with their formats. The description only restates that start/end/path filters exist and adds no syntax, default, or mutual-dependency detail beyond the schema, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve stored log entries for a Cloudflare account') and adds the concrete mechanism ('Logpull') plus return format (NDJSON), which distinguishes it from SQL-based siblings like query_account_logs_sql. However, it never names an alternative sibling explicitly, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. The description never explains when to choose this over query_account_logs_sql, list_account_log_files, get_log_by_rayid, or list_received_logs, all of which sit in the same log-access space. Only the word 'Logpull' weakly implies raw bulk retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_account_tokenB
Verify the account-owned API token used for the request (checks it is valid and active) for a Cloudflare account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | required,The ID of the Cloudflare account |
TDQS
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 discloses the check semantics (valid and active) and implies a read-only verification, but does not state what happens on failure (error vs boolean), whether it accepts a token argument or uses the caller's token, or any rate/permission constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The parenthetical clarifies the verb, though it slightly interrupts the flow; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema or annotations, the description covers the operation but leaves the return value (pass/fail shape) and token source unstated. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the schema already documents account_id. The description adds nothing syntactic about the parameter, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) and resource (the account-owned API token used for the request), and clarifies what is checked (valid and active). This distinguishes it in spirit from sibling reads like get_account_token and list_account_tokens, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the account-owned API token used for the request' gives implicit context for when this applies, but there is no explicit when-to-use, when-not, or routing against the many sibling token tools (get_account_token, list_account_tokens, list_token_permission_groups).
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.
89 tool updates
v0.3.0- Added
download_indicator_feed_data - Added
export_dns_records - Added
get_account_audit_log_history - Added
get_account_audit_logs_v2 - Added
get_account_details - Added
get_account_insight_context - Added
get_account_insight_counts - Added
get_account_insights_audit_log - Added
get_account_issue_audit_log - Added
get_account_log_dataset - Added
get_account_logpush_job - Added
get_account_logpush_transformer - Added
get_account_logpush_transformer_content - Added
get_account_member - Added
get_account_partner_insight_count - Added
get_account_recent_scans - Added
get_account_role - Added
get_account_security_center_state - Added
get_account_subscription - Added
get_account_token - Added
get_attack_surface_issue_counts_by_class - Added
get_attack_surface_issue_counts_by_severity - Added
get_attack_surface_issue_counts_by_type - Added
get_bulk_domain_details - Added
get_cmb_config - Added
get_dns_analytics_bytime - Added
get_dns_record - Added
get_dns_record_usage - Added
get_dns_settings - Added
get_dnssec - Added
get_indicator_feed - Added
get_indicator_feed_data - Added
get_indicator_feed_upload_status - Added
get_ip_lists - Added
get_kv_metadata - Added
get_kv_namespace - Added
get_kv_pairs_bulk - Added
get_kv_value - Added
get_log_dataset - Added
get_log_retention_flag - Added
get_logpush_job - Added
get_partner_integration_settings - Added
get_securitytxt - Added
get_sinkhole - Added
get_subscription_cancel_reason - Added
get_url_intel - Added
get_zone_insights_audit_log - Added
get_zone_issue_audit_log - Added
get_zone_partner_insight_count - Added
get_zone_recent_scans - Added
get_zone_settings - Added
list_account_audit_log_product_categories - Added
list_account_log_datasets - Added
list_account_log_files - Added
list_account_logpush_dataset_fields - Added
list_account_logpush_dataset_jobs - Added
list_account_logpush_jobs - Added
list_account_logpush_transformer_versions - Added
list_account_logpush_transformers - Added
list_account_members - Added
list_account_roles - Added
list_account_security_insights - Added
list_account_subscriptions - Added
list_account_tokens - Added
list_attack_surface_issue_types - Added
list_attack_surface_issues - Added
list_available_account_log_datasets - Added
list_available_log_datasets - Added
list_dnssec_zsk - Added
list_indicator_feed_permissions - Added
list_indicator_feeds - Added
list_instant_logs_jobs - Added
list_kv_keys - Added
list_log_datasets - Added
list_logpush_dataset_fields - Added
list_logpush_dataset_jobs - Added
list_logpush_jobs - Added
list_partner_shadow_zone_hosts - Added
list_partner_shadow_zones - Added
list_scanned_dns_records - Added
list_sinkhole_ingresses - Added
list_sinkholes - Added
list_token_permission_groups - Added
list_user_audit_logs - Added
list_zone_partner_shadow_hosts - Added
query_account_logs_sql - Added
query_logs_sql - Added
retrieve_account_logs - Added
verify_account_token
28 tool updates
v0.1.0- First observed
get_asn_intel - First observed
get_dns_analytics - First observed
get_domain_history - First observed
get_domain_intel - First observed
get_domain_intel_bulk - First observed
get_firewall_rule - First observed
get_insight_counts - First observed
get_ip_intel - First observed
get_log_by_rayid - First observed
get_rate_limit - First observed
get_ruleset - First observed
get_whois - First observed
get_zone - First observed
list_accounts - First observed
list_audit_logs - First observed
list_dns_records - First observed
list_firewall_rules - First observed
list_ip_access_rules - First observed
list_kv_namespaces - First observed
list_log_fields - First observed
list_passive_dns - First observed
list_rate_limits - First observed
list_received_logs - First observed
list_rulesets - First observed
list_security_insights - First observed
list_waf_managed_rulesets - First observed
list_zones - First observed
query_security_events
TDQS
Scored across 117 tools
Many tools are near-duplicates split only by account vs zone scope (e.g. list_log_datasets vs list_account_log_datasets, query_logs_sql vs query_account_logs_sql, list_logpush_jobs vs list_account_logpush_jobs) or by subtle naming differences (get_domain_intel_bulk vs get_bulk_domain_details, get_indicator_feed_data vs download_indicator_feed_data). Threat-intel and audit-log tools also overlap heavily, making misselection likely for an agent.
All tool names use snake_case and mostly follow a verb_noun pattern with consistent verbs like list, get, and query. Minor deviations exist in scope placement (account/zone qualifier inserted inconsistently) and version suffixes (e.g. get_account_audit_logs_v2), but the naming is broadly predictable.
117 tools is an extreme mismatch for a practical MCP server, far exceeding the 50-tool threshold for severe bloat. This creates overwhelming selection complexity and makes it difficult for an agent to reliably choose the right tool.
The surface is almost entirely read-only (list, get, query, verify, download, export) with no create, update, or delete operations for DNS records, firewall rules, KV pairs, tokens, logpush jobs, or other resources. While read coverage is broad, the lack of lifecycle mutations is a significant gap for a Cloudflare management server.
Maintenance
Related MCP Connectors
Cloudflare Workers MCP server: api-flow-analyzer
Cloudflare Workers MCP server: domain-intel
Cloudflare Workers MCP server: ai-gateway
Cloudflare Workers MCP server: interactive-api-playground
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA lightweight MCP server for managing DNS records, purging cache, and interacting with the Cloudflare API through natural language commands.24-
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server that enables agents to interface with Cloudflare's REST API, allowing management of DNS records and other Cloudflare services.8 npm15GPL 2.0
- AlicenseBqualityCmaintenanceSlim Cloudflare MCP Server — 42 tools for managing DNS, zones, tunnels, WAF, Zero Trust, and security via Cloudflare API v4. Multi-zone support. No SSH, no shell, API-only with 3 runtime dependencies. AGPL-3.0 + Commercial dual-licensed.9665 npmAGPL 3.0
- AlicenseCqualityDmaintenanceA high-performance MCP server providing AI assistants with read-only access to the Cloudflare ecosystem. Query your entire Cloudflare infrastructure using natural language through Claude, Cursor, or any MCP-compatible client.3905MIT