Skip to main content
Glama

One TLD in full

ud_get_tld
Read-onlyIdempotent

One TLD in full: registry facts, phases, market, quality band and registrar prices. Pass tld (such as ai).

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": {
      "tld": "<tld>"
    },
    "name": "ud_get_tld"
  }
}

Input Schema

NameRequiredDescriptionDefault
tldYesThe ending without the dot (`ai`), ASCII or `xn--` form; lowercased, a leading dot stripped.
fieldsNoComma-separated top-level keys to keep: slug, registry, phases, market, quality, registrars, githubRepoUrl.

Output Schema

NameRequiredDescriptionDefault
dataNo
metaNoThe day of the answer, and the page cursor of a list.
linksNoLinks of the answer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / data / properties / market / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "available": {
      -        "description": "Tracked names available.",
      -        "type": "integer"
      -      },
      -      "availableOneWord": {
      -        "description": "One-word names available on the ending.",
      -        "type": "integer"
      -      },
      -      "cheapestRegistrar": {
      -        "anyOf": [
      -          {
      -            "description": "Registrar catalog slug of the cheapest first year.",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "computedAt": {
      -        "description": "Timestamp of the rollup.",
      -        "type": "string"
      -      },
      -      "expiring90d": {
      -        "description": "Tracked names expiring within 90 days.",
      -        "type": "integer"
      -      },
      -      "medianBuy": {
      -        "anyOf": [
      -          {
      -            "description": "Median first-year price.",
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "medianRenew": {
      -        "anyOf": [
      -          {
      -            "description": "Median renewal price.",
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "registrations90d": {
      -        "description": "Names registered in 90 days among those tracked.",
      -        "type": "integer"
      -      },
      -      "resell": {
      -        "description": "Tracked names listed for resale.",
      -        "type": "integer"
      -      },
      -      "sales12m": {
      -        "description": "Usable sales, rolling 365 days.",
      -        "type": "integer"
      -      },
      -      "salesMedian12mUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Median sale over 12 months, from three sales.",
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "salesMonthly": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "counts": {
      -                "items": {
      -                  "type": "integer"
      -                },
      -                "type": "array"
      -              },
      -              "from": {
      -                "description": "Month of the first count, `YYYY-MM`.",
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "salesTrend": {
      -        "anyOf": [
      -          {
      -            "description": "12-month count against the previous 12 months, ±10 % threshold."
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "tracked": {
      -        "description": "Names tracked on the ending.",
      -        "type": "integer"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "available": {
      +        "description": "Tracked names available.",
      +        "type": "integer"
      +      },
      +      "availableOneWord": {
      +        "description": "One-word names available on the ending.",
      +        "type": "integer"
      +      },
      +      "cheapestRegistrar": {
      +        "anyOf": [
      +          {
      +            "description": "Registrar catalog slug of the cheapest first year.",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "computedAt": {
      +        "description": "When these figures were computed.",
      +        "type": "string"
      +      },
      +      "expiring90d": {
      +        "description": "Tracked names expiring within 90 days.",
      +        "type": "integer"
      +      },
      +      "medianBuy": {
      +        "anyOf": [
      +          {
      +            "description": "Median first-year price.",
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "medianRenew": {
      +        "anyOf": [
      +          {
      +            "description": "Median renewal price.",
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "registrations90d": {
      +        "description": "Names registered in 90 days among those tracked.",
      +        "type": "integer"
      +      },
      +      "resell": {
      +        "description": "Tracked names listed for resale.",
      +        "type": "integer"
      +      },
      +      "sales12m": {
      +        "description": "Usable sales, rolling 365 days.",
      +        "type": "integer"
      +      },
      +      "salesMedian12mUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Median sale over 12 months, from three sales.",
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "salesMonthly": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "counts": {
      +                "items": {
      +                  "type": "integer"
      +                },
      +                "type": "array"
      +              },
      +              "from": {
      +                "description": "Month of the first count, `YYYY-MM`.",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "salesTrend": {
      +        "anyOf": [
      +          {
      +            "description": "12-month count against the previous 12 months, ±10 % threshold."
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "tracked": {
      +        "description": "Names tracked on the ending.",
      +        "type": "integer"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint=false, so the safety profile is covered by structured data. The description adds the useful payload scope (registrar prices, quality band, phases), but says nothing about behavior on unknown or non-existent TLDs, and nothing about response size given the optional field trimming.

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

Conciseness4/5

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

Two short sentences, front-loaded with the resource and scope, with zero filler. The trailing 'Pass `tld` (such as ai)' is largely redundant with a schema that marks `tld` required and documents its format, 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.

Completeness4/5

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

An output schema exists and the annotations are rich, so the description needn't explain return values; the enumerated sections (registry, phases, market, quality, registrars) plus the schema's `fields` enum give an agent a clear picture of the payload. The only gap is not clarifying how the optional `fields` projection changes the response.

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%, so both parameters are fully documented in the schema (including the lowercasing, dot-stripping and xn-- form rules). The description only repeats the required `tld` name with one example value ('ai') and never mentions the `fields` selector, adding little beyond the schema baseline.

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 gives a concrete resource and scope: a single TLD's full profile, enumerated as registry facts, phases, market, quality band and registrar prices. That enumeration implicitly distinguishes it from narrower siblings like ud_list_tld_phases, though no alternative is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by 'One TLD in full' — an agent can infer this is the detailed single-TLD lookup versus the list tools, but the description never states when to prefer it over ud_get_tld_stats or ud_list_tld_phases. The 'Pass `tld` (such as ai)' hint is invocation guidance rather than selection guidance.

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.