# TLD Bench

> Domain prices for every TLD at the top registrars: renewals, N-year totals, history, availability.

- name: com.tldbench/tldbench
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.tldbench%2Ftldbench
- tools: https://api.protogrid.dev/v1/servers/com.tldbench%2Ftldbench/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "tldbench": {
      "type": "http",
      "url": "https://tldbench.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 10 of 10 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,818 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 3,818 tokens to load them all
- tool set hash: 8338d0b6260677c8d143c6766ee989d2
- tools last changed: 2026-11-06T05:44:27.916Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.tldbench/tldbench.svg)](https://protogrid.dev/servers/com.tldbench/tldbench)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-06 `get_tld` changed (inputSchema, outputSchema)
- 2026-11-06 `list_coupons` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Use this when the user asks for deals, promo codes or first-year discounts. Returns running promotional prices we saw at the source (with the regular price they revert to); coupon codes come later.
  - after: Use this when the user asks for promo codes, coupons, deals or first-year discounts. Returns coupon codes as each registrar's own API or promotions page lists them (code, operation, extensions, discount, limits, end date, last seen at the source, an example price with the code), and running promotional prices anyone gets without a code. Codes are seen at the source, not tested at checkout; quote the list price and renewal too.
- 2026-11-06 `price_history` changed (outputSchema)
- 2026-11-06 `get_registrar` changed (outputSchema)
- 2026-11-06 `suggest_names` changed (inputSchema, outputSchema)
- 2026-11-06 `search_name_across_tlds` changed (inputSchema, outputSchema)
- 2026-11-06 `check_availability` changed (inputSchema, outputSchema)
- 2026-11-06 `total_cost_of_ownership` changed (inputSchema, outputSchema)
- 2026-11-06 `cheapest_registrar` changed (inputSchema, outputSchema)
- 2026-11-06 `compare_tld_prices` changed (inputSchema, outputSchema)

Full history: https://api.protogrid.dev/v1/servers/com.tldbench%2Ftldbench/changes

## Remotes

- https://tldbench.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `cheapest_registrar`: Use this when the user wants the single best place to buy (or transfer) one or more extensions for N years. Ranks by the total cost of ownership, not the first-year promotion; returns the winner with a year-by-year breakdown, three runners-up and caveats. Up to 20 extensions in one call.
- `check_availability`: Use this when the user asks whether specific domain names are free. Checks the registry (RDAP, WHOIS for some ccTLDs) after a DNS pre-check, with an honest unknown, and adds the cheapest registrar's price to own each free name. Up to 50 names in one call.
- `compare_tld_prices`: Use this when the user asks what an extension costs or where it is cheapest. Returns every registrar's register, renew, transfer and restore prices for one TLD, ranked by the N-year cost of ownership (default 3 years), with each price's source and date.
- `get_registrar`: Use this when the user asks about a registrar: its country, group, size (gTLD domains under management), how many extensions it sells, and how fresh our prices for it are. Accepts our id, its name or an IANA id.
- `get_tld`: Use this when the user asks what an extension is, who runs it, or whether it fits: type (generic or country code), registry, brand TLD or not, DNSSEC, RDAP and WHOIS servers, minimum term, second levels, registry fees, and its price summary.
- `list_coupons`: Use this when the user asks for promo codes, coupons, deals or first-year discounts. Returns coupon codes as each registrar's own API or promotions page lists them (code, operation, extensions, discount, limits, end date, last seen at the source, an example price with the code), and running promotional prices anyone gets without a code. Codes are seen at the source, not tested at checkout; quote the list price and renewal too.
- `price_history`: Use this when the user asks how an extension's prices have moved or whether a rise is coming. Returns each registrar's price periods (changes only) and the registry's announced wholesale changes.
- `search_name_across_tlds`: Use this when the user has a name and wants to know which extensions are free and what each costs to own. Checks one label across up to 50 extensions (or a preset: popular, tech, cheap, country:<cc>) and sorts the free ones by total cost.
- `suggest_names`: Use this when the user needs name ideas. Pass `candidates` from your own brainstorm and we check and price them; with only `keywords` we add simple prefixes, suffixes, TLD hacks and combinations. Returns only names that are available or unknown, cheapest first.
- `total_cost_of_ownership`: Use this when the user compares the long-run cost of several names or extensions, at one registrar or the cheapest. Applies minimum terms and regular renewals; with transfer_after_year it also finds the cheapest registrar to move to later. Up to 20 domains or extensions in one call.
