MCP tool reference

Server endpoint: https://domainfind.ai/api/mcp (streamable HTTP). Setup instructions live in the developer quickstart. All tools return a single JSON text block designed for direct agent consumption.

check_domain

Verify one domain's availability at the registry.

Parameters

{ "domain": "examplebrand.ai" }

Example response

{
  "query_status": "SUCCESS",
  "domain": "examplebrand.ai",
  "tld": "ai",
  "status": "available",          // available | registered | unknown | invalid
  "method": "rdap",               // rdap | dns | none
  "confidence": 0.97,
  "minYears": 2,
  "registrars": [
    {
      "registrar": "Spaceship",
      "firstYearUsd": 68.98,
      "renewalUsd": 68.98,
      "buyUrl": "https://www.spaceship.com/domain-search/?query=examplebrand.ai"
    }
  ]
}

check_domains

Bulk-check a shortlist of full domains (up to 50) in one call.

Parameters

{ "domains": ["polynesianvoices.com", "pacificvoice.ai", "islandvoices.com"] }
// or a raw pasted string — bullets, commas, and newlines are parsed:
{ "domains": "* polynesianvoices.com\n* pacificvoice.ai" }

Example response

{
  "query_status": "SUCCESS",
  "summary": { "checked": 3, "available": 2, "registered": 1, "unknown": 0 },
  "results": [ { "domain": "pacificvoice.ai", "status": "available", ... } ],
  "skipped": []                   // tokens that were not valid domains
}

search_domains

Sweep one keyword across multiple TLDs in a single call.

Parameters

{ "keyword": "examplebrand", "tlds": ["com", "ai", "io"] }

Example response

{
  "query_status": "SUCCESS",
  "keyword": "examplebrand",
  "available": [ { "domain": "examplebrand.ai", "confidence": 0.97, "registrars": [...] } ],
  "registered": [ { "domain": "examplebrand.com", "registrar": "GoDaddy Inc." } ],
  "unknown": []
}

suggest_domains

Generate brandable candidates from a business description (8 naming styles), each verified for availability.

Parameters

{
  "description": "AI voice agents for dental offices",
  "tlds": ["com", "ai"],
  "max_candidates": 8
}

Example response

{
  "query_status": "SUCCESS",
  "suggestions": [
    {
      "domain": "voicedental.ai",
      "status": "available",
      "style": "compound",
      "rationale": "Joins \"voice\" + \"dental\" into one brandable compound.",
      "confidence": 0.97,
      "registrars": [...]
    }
  ],
  "note": "Filter on status === 'available'."
}

get_tld_pricing

Registrar price matrix + registry rules for one TLD.

Parameters

{ "tld": "ai" }

Example response

{
  "query_status": "SUCCESS",
  "tld": "ai",
  "category": "ccTLD (treated as generic)",
  "minYears": 2,
  "registrars": [
    { "registrar": "Spaceship", "firstYearUsd": 68.98, "renewalUsd": 68.98, "note": "Lowest baseline .ai cost" },
    { "registrar": "GoDaddy", "firstYearUsd": 49.99, "renewalUsd": 159.99, "note": "Intro price requires 2-yr commitment" }
  ]
}

Semantics agents should rely on

Rate limits & authentication

MCP tool calls draw from the same daily quota as the REST API, counted per API key (or per client IP when anonymous):

TierRequests / dayHow
Anonymous50 / IPNo key — works out of the box
Free500POST your email to /api/keys
Pro10,000See pricing
Scale100,000See pricing

To raise your limit, attach your key as a header in the MCP server config. Any MCP client that supports custom headers works:

{
  "mcpServers": {
    "domainfind": {
      "url": "https://domainfind.ai/api/mcp",
      "headers": { "x-api-key": "df_live_..." }
    }
  }
}

When the daily quota is exhausted, tool calls return an error result explaining the limit and pointing to upgrade options — the server stays responsive; only the quota is enforced.