Skip to main content
Glama

Domain Hunter (MCP server)

Live MCP URL (Streamable HTTP): https://domain-hunter-mcp.vercel.app/mcp
Health check: https://domain-hunter-mcp.vercel.app/health

Domain Hunter helps you find and research domain names. You give it an idea, and it brainstorms brandable names, checks live availability across TLDs, shows verified list prices, flags expiring or dropping names, and runs DNS, SSL and RDAP/WHOIS lookups on any domain.

It never registers or buys anything. The most it can do is prepare a registrar link, and only after the user explicitly confirms. The user completes checkout themselves.

Tools

Tool

What it does

brainstorm_domains

Name ideas from a product idea (compounds, portmanteaus, prefixes/suffixes, vowel drops), ranked by length and pronounceability. Checks availability and price across TLDs (default .com, .io, .ai)

check_availability

Live status for specific domains, or one name across TLDs, with first-year and renewal price

tld_pricing

Register, renew and transfer prices per TLD. TLDs the source doesn't sell are reported as "not offered", never estimated

domain_lookup

Registrar, creation and expiry dates, status codes, nameservers, and an expiry/drop signal (expiring soon, grace period, redemption, pending delete). Registered names also get aftermarket marketplace links

dns_lookup

A, AAAA, MX, NS, TXT, CNAME, CAA and SOA records, plus an SPF/DMARC check

ssl_certificate

The live TLS certificate: issuer, validity, days left, SANs, whether it's trusted, and the protocol

prepare_purchase_link

A Porkbun, Namecheap or Cloudflare search link. Requires userConfirmed: true. Purchases nothing

Related MCP server: domain-mcp

Data sources (nothing fabricated)

  • Availability:

    • Each registry's RDAP server, found through the IANA RDAP bootstrap. A 404 means not registered; a record means registered.

    • If a TLD has no RDAP (for example .io, .co, .de, .me), it falls back to WHOIS (TCP 43, server found via whois.iana.org).

    • If WHOIS is unreachable, it falls back to DNS. Nameservers mean registered. NXDOMAIN shows as "🟡 likely available" with a warning.

    • Premium or reserved names can still fail at checkout, and the output says so.

  • Prices: Porkbun's public pricing endpoint (POST /api/json/v3/pricing/get, no key needed). These are USD list prices, cached for 6 h and labelled with source and timestamp. If the endpoint fails, no prices are shown rather than guessed.

  • Expiring names: real RDAP/WHOIS status and expiry dates only.

  • Aftermarket: links to Afternic, Sedo, GoDaddy and ExpiredDomains.net search pages, labelled "links only". The server doesn't scrape or invent listing prices.

  • DNS: Cloudflare DNS-over-HTTPS. SSL: a direct TLS handshake.

Example prompts

  • "Find me a brandable .com or .ai for an AI meal planner for busy parents."

  • "Is mealmate available on .com, .io, .ai or .app? How much would each cost?"

  • "Who owns stripe.com, and when does it expire?"

  • "Check the DNS and SSL certificate for x.ai. Is email authentication set up?"

  • "This name is taken. Is it expiring, or listed for sale anywhere?"

Tip: Grok can also come up with its own creative names and pass them to check_availability. The built-in brainstormer is deterministic and works best as a starting point.

Run locally

npm install && npm test && npm run build
npm start              # http://localhost:3000/mcp
npm run start:stdio
npm run smoke          # live calls to every tool

Deploy to Vercel

  1. Push to GitHub and import it at vercel.com/new (preset: Other). No environment variables are needed.

  2. The MCP URL is https://<project>.vercel.app/mcp. Check it with node scripts/smoke.mjs <url>.

Vercel functions can make outbound TCP connections, which ssl_certificate and WHOIS need. If port 43 is blocked in your environment, the DNS fallback takes over automatically.

Testing instructions for marketplace reviewers

No credentials needed.

  1. List tools. You should see 7, and none of them register or buy.

  2. brainstorm_domains with {"idea": "AI meal planner for busy parents", "count": 6}: a table of names × TLDs with ✅/❌, prices and a source line.

  3. check_availability with {"domains": ["google.com", "zqxv-not-real-8841.com"]}: google.com is ❌ registered, and the other is ✅ available at the Porkbun .com price.

  4. domain_lookup with {"domain": "x.ai"}, dns_lookup with {"domain": "x.ai"}, and ssl_certificate with {"domain": "x.ai"}.

  5. prepare_purchase_link with userConfirmed: false returns an error asking for confirmation. With true, it returns a link and the line "Nothing has been purchased".

License

MIT

Available Tools

7 tools
brainstorm_domainsBrainstorm brandable domainsA
Read-only

Generate brandable name ideas from a product idea (compounds, portmanteaus, suffixes, prefixes, vowel drops), ranked by length/pronounceability, then check live availability and list prices across TLDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
ideaYes
tldsNodefault com, io, ai
checkNocheck availability (default true; max 60 lookups)
countNonames to generate (default 12)
extraWordsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description usefully adds that results are ranked by length/pronounceability and that availability is checked live across TLDs. It also implies network activity consistent with openWorldHint. It stops short of noting lookup limits (visible only in the 'check' schema description).

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?

A single front-loaded sentence names the primary action first, then folds in strategies, ranking, and the availability/pricing follow-on. Dense but readable, with no filler sentences.

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?

For a 5-param tool with no output schema and annotations already covering the safety profile, the description conveys the core behavior (generation strategy, ranking, live availability, prices). Remaining gaps around lookup limits and per-parameter behavior are minor.

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 coverage is 60%, and the description only maps loosely to params: 'product idea' aligns with idea and 'across TLDs' with tlds. It says nothing about count, check, or extraWords, leaving those to the schema. Baseline 3 is appropriate given partial coverage.

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 ('Generate') and resource ('brandable name ideas'), plus the secondary function of availability checks and pricing. It lists the generation strategies, which makes the tool's output concrete. It does not name or distinguish itself from siblings like check_availability or tld_pricing, even though it overlaps with them.

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 implied: use this when you have a product idea and want generated names plus availability/pricing. There is no explicit when-to-use or when-not-to-use guidance, and no routing to alternatives such as check_availability for tools that only need a lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_availabilityCheck domain availability + priceA
Read-only

Live availability for specific domains via registry RDAP (IANA bootstrap) with WHOIS fallback, plus first-year and renewal list price where a verified public source has it. Pass full domains, or a name plus tlds.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tldsNo
domainsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations cover read-only and open-world behavior, and the description adds real value beyond that: the availability source (RDAP via IANA bootstrap) with a WHOIS fallback, and the important caveat that price is only returned 'where a verified public source has it', i.e. pricing can be absent. It stops short of mentioning rate limits, auth, or handling of lookups that fail both paths.

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

Conciseness5/5

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

Two sentences, front-loaded with what the tool returns, then the calling modes. The technical parenthetical is compact and every clause carries 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?

Three parameters, no output schema, and no parameter descriptions, so the description is the only prose. It covers sources and the pricing caveat but says nothing about the shape of the response (per-domain availability status, how unavailable/invalid results appear) or whether the two input modes are mutually exclusive.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden, and it does explain the two calling modes (full domains vs. name plus tlds). It does not restate the concrete limits (40 domains, 12 tlds) or the character patterns, which the agent can only learn from the raw JSON Schema.

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+resource (check availability for domains) plus an explicit secondary output (first-year and renewal list price), and names the mechanism (registry RDAP with WHOIS fallback). It does not explicitly position itself against siblings like domain_lookup or tld_pricing, so the agent must infer the boundary.

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

Usage Guidelines2/5

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

'Pass full domains, or a name plus tlds' describes how to fill the schema, not when to choose this tool over domain_lookup or tld_pricing. No conditions, exclusions, or alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupDNS recordsA
Read-only

DNS records for any domain (A, AAAA, MX, NS, TXT, CNAME, CAA, SOA) via Cloudflare DNS-over-HTTPS, with TTLs and a quick email-auth (SPF/DMARC) check.

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNo
domainYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: the resolution source (Cloudflare DNS-over-HTTPS), that TTLs are returned, and that an email-auth SPF/DMARC check is included. It still omits failure behavior for nonexistent domains.

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

Conciseness5/5

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

One heavily front-loaded sentence that packs the resource, supported types, backend, and return extras without a wasted clause.

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?

There is no output schema, and the description usefully previews the return content (records, TTLs, SPF/DMARC verdict). The main remaining gap is the default behavior of the optional 'types' parameter, minor for a read-only lookup tool.

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 0%, so the description has to carry parameter meaning. It names the supported record types, but those already appear as the enum in the schema, and it never clarifies what happens when 'types' is omitted (default all) or the constraints on 'domain'. It adds partial value but does not fully compensate.

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+resource ('DNS records for any domain') and enumerates the record types and resolution backend (Cloudflare DoH), so an agent knows exactly what it retrieves. It does not, however, differentiate itself from the similarly named sibling domain_lookup, leaving that distinction to inference.

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

Usage Guidelines2/5

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

The description never says when to pick this tool over siblings such as domain_lookup or ssl_certificate, nor any preconditions or exclusions. Usage is only implied by the phrase 'for any domain'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_lookupRDAP/WHOIS lookupA
Read-only

Registration details for any domain: registrar, created/expiry dates, status codes, nameservers, and an expiry/drop signal (redemption, pending delete). For registered names, adds links to real aftermarket marketplaces to check manually.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
includeRawWhoisNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: what signal is returned for dropping domains (redemption, pending delete) and that marketplace links are for manual checking rather than any automated acquisition. No mention of rate limits or behavior for unregistered names.

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

Conciseness5/5

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

Two sentences, no filler. The core value proposition (what fields you get back) is front-loaded, and the aftermarket-link caveat is correctly placed second.

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?

With no output schema, the description usefully enumerates the return payload, which is its strongest contribution. However, it leaves the includeRawWhois parameter and the behavior for unregistered domains unexplained, which are gaps an agent needs filled before calling.

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

Parameters2/5

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

Schema description coverage is 0% and the description mentions neither parameter. The boolean includeRawWhois is completely undocumented, leaving the agent unable to judge the cost/size tradeoff of enabling raw WHOIS output. Only the obvious 'domain' input is implicitly conveyed.

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+resource: registration details for a domain, then enumerates the returned data (registrar, created/expiry dates, status codes, nameservers, drop signal, marketplace links). This clearly separates it from dns_lookup, check_availability, and ssl_certificate by content, though no sibling 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: look this up when you need registration/ownership data for an existing domain. There is no guidance on when to prefer it over check_availability or dns_lookup, and no stated prerequisites (e.g. domain must be registered, TLD must support RDAP).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_certificateSSL/TLS certificateB
Read-only

Fetch the live TLS certificate for a domain: issuer, validity dates, days left, SANs, whether it is trusted, and negotiated protocol.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
domainYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the fact that this is a live network fetch and that trust is evaluated rather than assumed, but it says nothing about handshake timeouts, error behavior on untrusted/expired certificates, or any rate limits — meaningful gaps for an open-world network tool.

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

Conciseness5/5

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

A single front-loaded sentence: verb and resource first, then the return contents. Every clause (issuer, validity, days left, SANs, trust, protocol) carries information an agent needs and nothing is padded.

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?

With no output schema, enumerating the returned fields is genuinely useful and largely covers the response. However, the tool takes a port parameter whose semantics (default port, behavior on connection failure, what happens when the certificate is untrusted) are entirely unaddressed, leaving an agent unable to call it confidently outside the default case.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate and does not: 'domain' is only inferable from the phrase 'for a domain', and the 'port' parameter is never mentioned at all, leaving the agent unaware that non-443 ports are supported or how the default is chosen.

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 opens with a specific verb and resource ('Fetch the live TLS certificate for a domain') and enumerates the exact fields returned (issuer, validity dates, days left, SANs, trust, protocol), which clearly separates it from siblings like dns_lookup or domain_lookup. It stops short of naming or contrasting with any sibling tool, so it is clear but not fully differentiated.

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?

There is no explicit when-to-use statement, no prerequisite, and no named alternative; the usage is only implied by the enumerated certificate fields. An agent can infer this is the tool for inspecting a live TLS certificate, but must guess whether it should prefer this over dns_lookup for any overlapping question.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tld_pricingTLD price listA
Read-only

Registration, renewal and transfer list prices (USD) per TLD from Porkbun's public pricing API, with source and timestamp. Unknown TLDs are reported as not found, never estimated.

ParametersJSON Schema
NameRequiredDescriptionDefault
tldsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds real value on top: prices are list prices (not checkout totals), USD-denominated, returned with source and timestamp, and unknown TLDs are explicitly reported as not found rather than estimated. That last clause is a meaningful anti-hallucination guarantee an agent needs. It omits rate limits and pagination/refresh behavior.

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

Conciseness5/5

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

Two tightly written sentences, front-loaded with what is returned and followed by the edge-case guarantee. No filler, no restatement of the name.

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?

For a single-parameter read-only lookup with no output schema, the description adequately covers what comes back (per-TLD registration/renewal/transfer prices, source, timestamp) and the not-found behavior, with annotations covering the safety profile. Only the input TLD string format remains unspecified.

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 0%, so the description must carry the parameter burden; 'per TLD' does indicate the array's meaning, but it never specifies accepted format (e.g. 'com' vs '.com'), case handling, or acknowledges the 40-item cap in the schema. It partially compensates but leaves format ambiguity.

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 states a specific resource and breakdown: 'Registration, renewal and transfer list prices (USD) per TLD', plus the data source (Porkbun's public pricing API). This is far more concrete than a generic 'get pricing' and is clearly distinct from the availability/DNS/SSL siblings, though it never names or contrasts those siblings explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance: nothing says to call this before prepare_purchase_link or as a complement to check_availability, and no prerequisites or exclusions are given. The provenance note ('public pricing API') is context, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedbrainstorm_domains
    • First observedcheck_availability
    • First observeddns_lookup
    • First observeddomain_lookup
    • First observedprepare_purchase_link
    • First observedssl_certificate
    • First observedtld_pricing

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have clearly distinct purposes (DNS lookup, SSL cert, registration details, TLD pricing). There is some overlap between brainstorm_domains, check_availability, and tld_pricing since all touch on availability/pricing, but the descriptions draw reasonable boundaries (idea generation vs. specific-domain check vs. per-TLD reference).

Naming Consistency4/5

All names use snake_case and are readable, following broadly predictable patterns. There is a minor mix of verb_noun (brainstorm_domains, check_availability, prepare_purchase_link) and noun_noun (domain_lookup, dns_lookup, tld_pricing) forms, but no chaotic inconsistencies.

Tool Count5/5

Seven tools is well-scoped for a domain research/hunting server. Each tool maps to a distinct task in the workflow (ideation, availability, pricing, registration data, DNS, TLS, purchase link) with no filler.

Completeness4/5

The surface covers the full domain-hunting lifecycle from idea generation through verification and purchase-link handoff. Minor gaps exist, such as batch/compare operations or monitoring, but core workflows have no dead ends and purchase is intentionally left to the user.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to check domain availability across multiple TLDs with real-time pricing, brainstorm creative domain names, analyze domains for brandability and SEO potential, and search for domains by price and category without CAPTCHAs.
    8 npm
    3
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables domain name availability checking through DNS and WHOIS lookups with confidence scoring. It supports searching across alternative TLDs and generating domain name variations for branding purposes.
    4
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables users to check domain name availability across 877 TLDs, generate intelligent suggestions, and retrieve WHOIS registration information. It supports bulk domain checks and cross-TLD searches through natural language interfaces.
    0
    -