Skip to main content
Glama

Opsphere — DevOps & SRE Intelligence

Cloudflare: DNS records

cf_dns_records
Read-only

List DNS records for a Cloudflare zone. Accepts zone name or ID. Filter by record type (A, AAAA, CNAME, MX, TXT, etc.) or name. Shows proxied status and TTL.

Input Schema

NameRequiredDescriptionDefault
nameNoFilter by record name (e.g. www.your-tenant.com)
pageNo
typeNoFilter by record type: A, AAAA, CNAME, MX, TXT, NS, etc.
zoneYesZone name (e.g. your-tenant.com) or zone ID
per_pageNo
context_idNoOptional explicit Connection Hub work context (ctx_*). Omit to use the conversation's active workspace; global Hub tools ignore it.
account_slugNoCloudflare account slug. Required when the workspace has multiple accounts and the zone is not yet cataloged.
environment_slugNoCloud Catalog environment used as an account-routing preference when no zone is provided.

Output Schema

NameRequiredDescriptionDefault
okYes
dataYes
contractVersionYes
dataSchemaVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • changedOutput schema / properties / data / additionalProperties
      Previous value: -trueNew value: +false
    • removedOutput schema / properties / data / properties / count
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / data / properties / errors
      Removed value: -{
      -  "items": {
      -    "$ref": "#/properties/data/properties/result/anyOf/0/items"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / data / properties / gaps
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / items
      Removed value: -{
      -  "$ref": "#/properties/data/properties/result/anyOf/0"
      -}
    • removedOutput schema / properties / data / properties / messages
      Removed value: -{
      -  "items": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "$ref": "#/properties/data/properties/result/anyOf/0/items"
      -      }
      -    ]
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / data / properties / pageInfo
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "hasMore": {
      +      "type": "boolean"
      +    },
      +    "nextCursor": {
      +      "type": "string"
      +    },
      +    "returned": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "total": {
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "returned",
      +    "hasMore"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / partial
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / data / properties / records
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "comment": {
      +        "type": "string"
      +      },
      +      "content": {
      +        "type": "string"
      +      },
      +      "createdOn": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "modifiedOn": {
      +        "$ref": "#/properties/data/properties/records/items/properties/createdOn"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "priority": {
      +        "type": "integer"
      +      },
      +      "proxiable": {
      +        "type": "boolean"
      +      },
      +      "proxied": {
      +        "type": "boolean"
      +      },
      +      "tags": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "ttl": {
      +        "type": "integer"
      +      },
      +      "type": {
      +        "type": "string"
      +      },
      +      "zoneId": {
      +        "type": "string"
      +      },
      +      "zoneName": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "zoneId",
      +      "name",
      +      "type",
      +      "content"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / result
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "items": {
      -        "additionalProperties": true,
      -        "properties": {},
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "$ref": "#/properties/data/properties/result/anyOf/0/items"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / data / properties / result_info
      Removed value: -{
      -  "$ref": "#/properties/data/properties/result/anyOf/0/items"
      -}
    • removedOutput schema / properties / data / properties / success
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / data / properties / total
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / data / properties / truncated
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / data / properties / warnings
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / required
      Added value: +[
      +  "records",
      +  "total",
      +  "partial",
      +  "truncated",
      +  "warnings",
      +  "gaps"
      +]
    • addedOutput schema / properties / dataSchemaVersion
      Added value: +{
      +  "const": 2,
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "contractVersion",
      -  "ok",
      -  "data"
      -]New value: +[
      +  "contractVersion",
      +  "dataSchemaVersion",
      +  "ok",
      +  "data"
      +]
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint=true and destructiveHint=false annotations already communicate that this is a safe read operation. The description adds useful context by noting filters and that proxied status and TTL are shown, but it does not mention pagination limits, authentication/account-routing needs, or other behavioral constraints. It does not contradict the annotations.

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

Conciseness4/5

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

The description is short, front-loaded with the primary operation, and each sentence contributes useful scoping or filtering information. There is minor repetition of schema-level details such as accepting a zone name or ID, but no significant waste.

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

Completeness4/5

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

Given that an output schema exists and 75% of parameters are documented in the schema, the description is largely sufficient for correct invocation. It could do more to explain multi-account routing parameters and pagination behavior, but the essential operation and filters are clear.

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

Parameters3/5

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

Schema description coverage is 75%, so the schema already documents the key parameters reasonably well. The description restates that zone accepts a name or ID and that type/name filters exist, but adds little beyond the schema and does not explain pagination, context_id, account_slug, or environment_slug. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: list DNS records for a Cloudflare zone. It also names the supported filters and visible fields, so an agent can understand the operation without opening the schema. It does not explicitly distinguish itself from related lookup tools such as dns_lookup or azure_dns_lookup, which keeps it from a 5.

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

Usage Guidelines3/5

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

Usage is implied by the list/filter framing: use this to inspect DNS records in a Cloudflare zone. However, the description gives no explicit when-to-use guidance, no when-not-to-use conditions, and does not route the agent to alternatives such as generic DNS lookup tools.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources