# tld.expert

> Live domain availability, TLD alternatives, dated registrar prices and expert TLD advice.

- name: expert.tld/tld-expert
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 87/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/expert.tld%2Ftld-expert
- tools: https://api.protogrid.dev/v1/servers/expert.tld%2Ftld-expert/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "tld-expert": {
      "type": "http",
      "url": "https://tld.expert/mcp"
    }
  }
}
```


## Trust

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

## Quality 87/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,684 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 6 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 5, about 1,684 tokens to load them all
- tool set hash: 934e3ebaa8f2060e66192e5afaa9a590
- tools last changed: 2026-11-05T06:32:05.260Z
- badge: [![protogrid quality](https://protogrid.dev/badge/expert.tld/tld-expert.svg)](https://protogrid.dev/servers/expert.tld/tld-expert)
- 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-05 `suggest_tld_alternatives` changed (description)
  - before: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed. In brief mode, audience (who it is for) and vibe (how the name should feel) rethink the name ideas and lead with endings that suit them, like the questionnaire on the site.
  - after: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed. In brief mode, audience (who it is for) and vibe (how the name should feel) rethink the name ideas and lead with endings that suit them, like the questionnaire on the site. A suggestion on a gated ending (.law for licensed lawyers, .nyc for a New York City address) carries registration_rule with the registry source; closed ones are only proposed when the brief says the user qualifies.
- 2026-11-02 `check_domain_availability` changed (description, inputSchema)
  - before: Use this when the user wants to know if a domain name is available or taken, or asks "can I get <name>". Accepts a full domain ("acme.io") for one verdict, or a bare name ("acme") to check it across popular TLDs (com, io, ai, co, app, dev, net, org, xyz) or a custom TLD list. Checks live DNS, registry RDAP/WHOIS and a registrar; never claims "available" without registrar confirmation. Returns a verdict per domain, buy links for names that may be free, and a tld.expert URL to cite.
  - after: Use this when the user wants to know if a domain name is available or taken, or asks "can I get <name>". Accepts a full domain ("acme.io") for one verdict, or a bare name ("acme") to check it across popular TLDs (com, io, ai, co, app, dev, net, org, xyz) or a custom TLD list. Checks live DNS, registry RDAP/WHOIS and a registrar; never claims "available" without registrar confirmation. Returns a verdict per domain, buy links for names that may be free, and a tld.expert URL to cite. For one full domain that is taken, the result also carries registration: who it is registered with, when it expires, whether it is in redemption or pending delete, and whether it is listed for sale on a marketplace, from the registry's own RDAP/WHOIS. Use it for "who owns this domain", "when does it expire" and "is it for sale".
- 2026-11-02 `suggest_tld_alternatives` changed (description, inputSchema)
  - before: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed.
  - after: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed. In brief mode, audience (who it is for) and vibe (how the name should feel) rethink the name ideas and lead with endings that suit them, like the questionnaire on the site.
- 2026-11-01 `suggest_tld_alternatives` changed (description, inputSchema)
  - before: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups).
  - after: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed.
- 2026-11-01 `check_brand_name` added
  - Use this when the user is naming a product or company and asks whether the name is free beyond the domain: a GitHub account or org, an npm package, or a US trademark ("is acme taken on GitHub", "is there a trademark for acme"). Checks GitHub, the npm registry and live USPTO marks right now; each answer carries its source URL and checked time. "none" means the source has no record, never that the name is available or safe to use; a trademark search is not legal clearance. For the domain itself, call check_domain_availability.
- 2026-10-23 `get_tld_prices` changed (description)
  - before: Use this when the user asks what a domain extension costs, where it is cheapest, or what it renews at. Returns dated first-year, renewal and transfer prices per registrar (Porkbun, Dynadot, Cloudflare, Namecheap where tracked), the cheapest direct buy, the wholesale floor, and a renewal-trap flag when the renewal is 2x+ the intro price. Prices are the TLD standard price, not premium names.
  - after: Use this when the user asks what a domain extension costs, where it is cheapest, or what it renews at. Returns dated first-year, renewal and transfer prices per registrar (Porkbun, Dynadot, Cloudflare, Namecheap where tracked), the cheapest direct buy, the wholesale floor, and a renewal-trap flag when the renewal is 2x+ the intro price. Prices are the TLD standard price, not premium names. Also answers "what does it cost over 5 years": true_cost gives each registrar's 1/3/5/10-year cost, the cheapest path per horizon (stay, or register at one and transfer after year one for gTLDs) and recent renewal price changes, each with source URL and checked date.

Full history: https://api.protogrid.dev/v1/servers/expert.tld%2Ftld-expert/changes

## Remotes

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

## Packages

_none_

## Tools (5)

- `check_brand_name`: Use this when the user is naming a product or company and asks whether the name is free beyond the domain: a GitHub account or org, an npm package, or a US trademark ("is acme taken on GitHub", "is there a trademark for acme"). Checks GitHub, the npm registry and live USPTO marks right now; each answer carries its source URL and checked time. "none" means the source has no record, never that the name is available or safe to use; a trademark search is not legal clearance. For the domain itself, call check_domain_availability.
- `check_domain_availability`: Use this when the user wants to know if a domain name is available or taken, or asks "can I get <name>". Accepts a full domain ("acme.io") for one verdict, or a bare name ("acme") to check it across popular TLDs (com, io, ai, co, app, dev, net, org, xyz) or a custom TLD list. Checks live DNS, registry RDAP/WHOIS and a registrar; never claims "available" without registrar confirmation. Returns a verdict per domain, buy links for names that may be free, and a tld.expert URL to cite. For one full domain that is taken, the result also carries registration: who it is registered with, when it expires, whether it is in redemption or pending delete, and whether it is listed for sale on a marketplace, from the registry's own RDAP/WHOIS. Use it for "who owns this domain", "when does it expire" and "is it for sale".
- `explain_tld`: Use this when the user asks what a domain extension is, what it means, who runs it, who can register it, or whether it fits their project ("is .ai good for a startup", "what is .io", "does .web exist"). Returns tld.expert’s editorial verdict, pros and cons, registry, registration restrictions, the use cases it ranks for, and a typical price. Also answers for well-known non-existent TLDs like .eth or .web.
- `get_tld_prices`: Use this when the user asks what a domain extension costs, where it is cheapest, or what it renews at. Returns dated first-year, renewal and transfer prices per registrar (Porkbun, Dynadot, Cloudflare, Namecheap where tracked), the cheapest direct buy, the wholesale floor, and a renewal-trap flag when the renewal is 2x+ the intro price. Prices are the TLD standard price, not premium names. Also answers "what does it cost over 5 years": true_cost gives each registrar's 1/3/5/10-year cost, the cheapest path per horizon (stay, or register at one and transfer after year one for gTLDs) and recent renewal price changes, each with source URL and checked date.
- `suggest_tld_alternatives`: Use this when the domain the user wants is taken (or they ask for other options for a name). Given a full domain like "acme.com", proposes other endings (acme.io), added words (getacme.com), domain hacks and related words, checks every candidate live, and returns only the ones that are not taken. Slower than a single check (up to ~30 live lookups). Also use it when the user describes what the domain is for ("a fitness app in brazil", "a scratch site for side projects"): pass that as brief, with their name as domain if they have one. It then answers like the tld.expert search box: endings that fit the project (each with why and its source page), the popular endings, and name variants, every one checked live, taken ones counted but not listed. In brief mode, audience (who it is for) and vibe (how the name should feel) rethink the name ideas and lead with endings that suit them, like the questionnaire on the site. A suggestion on a gated ending (.law for licensed lawyers, .nyc for a New York City address) carries registration_rule with the registry source; closed ones are only proposed when the brief says the user qualifies.
