Skip to main content
Glama

create_dns_credential

Destructive

Store DNS provider credentials for automated domain verification. Note: credentials will be visible in the AI conversation context.

ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login — a session opens this tool — then call this tool again.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "provider": "<provider>",
      "credentials": "<credentials>"
    },
    "name": "create_dns_credential"
  }
}

Input Schema

NameRequiredDescriptionDefault
providerYesDNS provider identifier (e.g. cloudflare, route53, digitalocean)
credentialsYesProvider-specific credential key-value pairs

Output Schema

NameRequiredDescriptionDefault
idYesMongoDB ObjectId
nameYes
is_validYes
providerYes
created_atYes
updated_atYes
last_used_atNoWhen the credential last made a DNS change; absent until it has. Sent by the list only.
domains_countYes
validation_errorNoWhy the last check refused the credential; absent unless one did. Sent by the list only.
last_validated_atNoWhen the credential was last checked against its provider; absent when never recorded. Sent by the list only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "description": "A saved DNS provider credential. The secret is never returned.",
      +  "properties": {
      +    "created_at": {
      +      "type": "string"
      +    },
      +    "domains_count": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "MongoDB ObjectId",
      +      "type": "string"
      +    },
      +    "is_valid": {
      +      "type": "boolean"
      +    },
      +    "last_used_at": {
      +      "description": "When the credential last made a DNS change; absent until it has. Sent by the list only.",
      +      "type": "string"
      +    },
      +    "last_validated_at": {
      +      "description": "When the credential was last checked against its provider; absent when never recorded. Sent by the list only.",
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "provider": {
      +      "type": "string"
      +    },
      +    "updated_at": {
      +      "type": "string"
      +    },
      +    "validation_error": {
      +      "description": "Why the last check refused the credential; absent unless one did. Sent by the list only.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "provider",
      +    "name",
      +    "is_valid",
      +    "domains_count",
      +    "created_at",
      +    "updated_at"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / credentials / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  3. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Adds real value beyond annotations by disclosing the auth requirement and warning that credentials become visible in the AI conversation context — a security trait annotations cannot express. But the annotations mark destructiveHint=true, and the description never explains whether storing credentials for an existing provider overwrites or removes prior credentials, leaving the destructive behavior unexplained.

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?

Purpose is front-loaded in the first sentence, followed by the security note and the access instructions. The ACCESS paragraph is somewhat verbose with its parenthetical UI path, but every sentence carries actionable information.

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

Completeness3/5

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

An output schema exists so return values need not be described, and the auth flow is covered. Still missing for a mutation tool with nested credential objects: overwrite semantics implied by destructiveHint, and how it relates to the sibling connect_* and delete_dns_credential tools.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents provider as a provider identifier and credentials as provider-specific key-value pairs. The description adds no additional meaning such as accepted provider values or required credential keys, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (store DNS provider credentials) plus the downstream purpose (automated domain verification). It does not differentiate itself from closely related siblings such as connect_dns_provider, connect_cloudflare, connect_godaddy, or add_verification_provider, so an agent must guess which path is intended.

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?

Gives a clear prerequisite sequence (needs a Proof account, authenticate via /mcp or start_login, then retry), which is genuinely useful. However it offers no guidance on when to choose this tool over the several sibling tools that also connect DNS providers or store verification providers.

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.