Skip to main content
Glama
seomarlboro

DigMyName — Domain Check & Registrar Pricing

domain-check-skills-mcp

npm version downloads license

⚡ The fastest domain availability MCP server — or the second

The fastest domain availability MCP — or the second. A first-time check lands in about half a second (under 0.9 s at p95, measured from the US and the EU, September 2026); a repeat within 60 s is ~0.1 s from the edge cache. Hard-capped so it never hangs. The pipeline (debounce → registry RDAP + DNS → third signal → edge cache) is published openly. Found something faster? Dispute it.

MCP server to check domain availability from any LLM — Claude, Cursor, Windsurf, Continue, Zed. 6 registrars, 50+ TLDs. Powered by DigMyName.

Typical latency

about half a second first-time check (p50 0.4–0.5 s, under 0.9 s at p95) · ~0.1 s cache-warm — everyday numbers measured from the US and the EU in September 2026, not a lab result; the on-screen timer is the live proof

Method

Published at digmyname.com/speed

Coverage

6 registrars · 50+ TLDs

Cost

Free — no API key, no account

domain-check-skills-mcp in action

Related MCP server: Domain Finder MCP Server

Install

Claude Code — one line:

claude mcp add domain-check -- npx -y domain-check-skills-mcp

Claude Desktop / Cursor / Windsurf — add to your MCP config:

{
  "mcpServers": {
    "domain-check": {
      "command": "npx",
      "args": ["-y", "domain-check-skills-mcp"]
    }
  }
}

Continue (~/.continue/config.json):

{
  "experimental": {
    "modelContextProtocolServers": [
      { "transport": { "type": "stdio", "command": "npx", "args": ["-y", "domain-check-skills-mcp"] } }
    ]
  }
}

Zed (settings.json):

{
  "context_servers": {
    "domain-check": {
      "command": { "path": "npx", "args": ["-y", "domain-check-skills-mcp"] }
    }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "domain-check": { "type": "stdio", "command": "npx", "args": ["-y", "domain-check-skills-mcp"] }
  }
}

No API key, no account, no config — it works right after install.

Tools

Tool

Description

check_domain

Availability, premium / likely-premium flags, cheapest registrar, direct buy link and registration year (when taken) for one domain.

search_domains

One name across many TLDs at once (defaults to a curated set of 11). Includes availability, price, buy link and registration year for taken results.

compare_registrars

Registration, renewal and 3-year totals per registrar for a TLD.

get_domain_age

Registration year and expiration date for a taken domain via RDAP.

Example prompts

  • "Is acme.io available and where is it cheapest?"

  • "Check nebula across com, io, ai, dev and app."

  • "Compare registrar prices for .ai."

  • "When was stripe.com registered?"

How it works

Availability is resolved through an authoritative-first chain — RDAP (IANA bootstrap), authoritative DNS-over-HTTPS (Cloudflare, Google and AdGuard, hedged), Fastly Domain Research and registrar APIs. Anything unresolved is returned as UNKNOWN rather than falsely reported as taken. Premium candidates are flagged separately so agents never quote a standard retail price for a registry-premium name.

Pricing comes from DigMyName's registrar price cache across 6 registrars and 50+ TLDs.

Domain age is read from registry RDAP endpoints.

Rate limit: 60 requests / minute / IP. Repeat lookups are served from the Cloudflare edge cache in about 0.1 s.

Configuration

Env var

Default

Purpose

DIGMYNAME_API_BASE

https://api.digmyname.com/functions/v1/public-api

Override the API base. Set this to the direct Supabase URL to bypass the edge cache.

Releasing (maintainers)

Releases are published from a maintainer's machine:

cd mcp
# bump the version in package.json, server.json (two places) and the VERSION constant in src/index.ts; add a CHANGELOG entry
npm run build
npm publish --provenance=false   # npm asks you to confirm in the browser (web-based 2FA)

The Publish MCP to npm workflow (tag mcp-v*) would publish with provenance from CI, but it needs an NPM_TOKEN repo secret that is not configured; releases so far have been published without provenance.

Requirements

Node.js 18+

Changelog

See CHANGELOG.md.

License

MIT

Available Tools

4 tools
check_domainA

Check if ONE specific domain (e.g. acme.io) is registrable right now. Use for a single fully-qualified name; to test one word across many extensions, use search_domains instead. Returns an availability verdict, the cheapest registrar and its buy link, the first-year price, and — for taken names — the registration year. Availability is cross-checked against three independent signals (RDAP, DNS-over-HTTPS, Fastly Domain Research); when they disagree or a zone has no reliable RDAP (e.g. .co), the verdict comes back as uncertain rather than guessed — treat uncertain as 'unknown, NOT available', and note that price may be absent for such names.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesA single fully-qualified domain including its TLD, e.g. 'acme.io'. URLs and 'www.' prefixes are stripped automatically. Not a bare word — use search_domains to test a word across multiple TLDs.

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses safety and behavior: it mentions cross-checking against three independent signals, explains the 'uncertain' verdict (treated as unknown/NOT available), and notes that price may be absent. This is high-quality behavioral context beyond a simple 'returns availability.'

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?

The description is information-dense yet well-structured, leading with the primary action and then systematically covering scope, alternatives, return values, and edge-case behavior. Every sentence contributes meaning; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/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 correctly enumerates return values: availability verdict, cheapest registrar with buy link, first-year price, and registration year for taken names. It also covers the uncertain edge case, making the tool fully comprehensible for an agent.

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

Parameters5/5

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

Schema coverage is 100% with a clear parameter description, but the description adds valuable semantics: it clarifies input must be a fully-qualified domain, URLs and 'www.' are stripped automatically, and bare words are rejected (leading to search_domains). This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: 'Check if ONE specific domain ... is registrable right now.' It clearly distinguishes itself from sibling search_domains by stating it's for a single fully-qualified name. This leaves no ambiguity about the tool's core function.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('for a single fully-qualified name') and provides a direct alternative ('to test one word across many extensions, use search_domains instead'). It also advises how to interpret 'uncertain' results, adding practical usage guidance.

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

compare_registrarsA

Compare what 6 registrars (Namecheap, Cloudflare, Porkbun, GoDaddy, Spaceship, OVHcloud) charge for a given TLD — first-year registration, renewal, and 3-year total — exposing the renewal traps that cheap first-year promos hide. Use for pricing a TLD you already intend to buy; this does NOT check whether a specific domain is free (use check_domain for that). Returns per-registrar rows with buy links, or a notice if no fresh cached pricing exists for that TLD.

ParametersJSON Schema
NameRequiredDescriptionDefault
tldYesA single TLD WITHOUT the leading dot, e.g. 'com', 'io', 'ai'. A leading dot is stripped if present.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses return format ('per-registrar rows with buy links'), a cache-dependent failure mode ('notice if no fresh cached pricing exists'), and implicitly the presence of caching. It does not detail rate limits or data freshness guarantees, but for a simple lookup this is reasonably transparent.

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 efficiently cover purpose, use case, exclusion, and return behavior. Every clause adds value and the description is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

Despite having only one parameter and no output schema, the description provides sufficient context: what it does, when to use it, what it returns, and an edge-case notice. It is complete for an agent to invoke this tool correctly.

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?

The input schema already fully describes the single parameter 'tld' with format and leading-dot stripping (100% coverage). The description adds 'given TLD' but no additional parameter details, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: 'Compare what 6 registrars charge for a given TLD' and includes the exact pricing dimensions (first-year, renewal, 3-year total). It explicitly distinguishes itself from check_domain, making the purpose unmistakable.

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

Usage Guidelines5/5

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

It states exactly when to use the tool: 'Use for pricing a TLD you already intend to buy' and clearly excludes the availability case with a named alternative: 'this does NOT check whether a specific domain is free (use check_domain for that)'.

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

get_domain_ageA

Return the registration (creation) year and expiration date of a TAKEN domain, via RDAP. Use to gauge how long a name has been held or when it may expire; it does NOT report availability (use check_domain for that). Returns a 'could not determine' notice for names with no RDAP creation record (some ccTLDs, e.g. .co).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesA fully-qualified domain including its TLD, e.g. 'acme.com'. Meaningful only for taken/registered domains; available names have no registration date.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral transparency burden. It discloses the RDAP mechanism, that it only works for taken/registered domains, and the 'could not determine' edge case for ccTLDs like .co. It could provide more detail on exact output formatting, but it is adequately transparent.

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?

Three sentences, all information-dense: the core action, the use case, the sibling distinction, and the edge-case limitation. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

This is a simple one-parameter tool with complete schema coverage and no output schema. The description covers purpose, applicability, limitation, and sibling differentiation, making it complete for an agent to select and invoke correctly.

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 100%, so baseline is 3. The schema already describes the domain parameter as fully-qualified and meaningful only for taken domains; the description reinforces this but adds little semantic detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb+resource: 'Return the registration (creation) year and expiration date of a TAKEN domain, via RDAP.' It clearly states what the tool does and explicitly distinguishes it from check_domain by noting it does NOT report availability.

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

Usage Guidelines5/5

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

Explicitly states when to use the tool: 'Use to gauge how long a name has been held or when it may expire.' It also names the alternative for availability checks: 'use check_domain for that.' The scope (taken domains only) is clearly stated.

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

search_domainsA

Check ONE name across MANY TLDs in a single call (e.g. 'acme' → com, io, ai …). Use when comparing extensions for the same word; for a single known domain use check_domain instead. Results are grouped AVAILABLE / TAKEN / UNKNOWN, each carrying cheapest price, buy link, and (for taken names) registration year. Names whose availability cannot be confirmed appear under UNKNOWN and must NOT be treated as available (honest 'unverified' state, never a guess).

ParametersJSON Schema
NameRequiredDescriptionDefault
tldsNoOptional comma-separated TLDs without dots, e.g. 'com,io,ai'. Omit to use a curated default set of 12 popular TLDs. Whitespace is ignored.
queryYesThe name WITHOUT any TLD, e.g. 'acme' (not 'acme.com'). This single word is tested against each TLD in the tlds list.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations supplied, the description takes on full transparency duty. It discloses result grouping semantics (AVAILABLE/TAKEN/UNKNOWN) and the critical behavioral rule that UNKNOWN entries are unverified and must not be treated as available, preventing misuse.

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?

Four sentences pack the core purpose, usage, and output semantics without redundancy. The example in parentheses makes the one-to-many matching instantly clear.

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?

The description covers purpose, alternatives, output structure, and an important data-interpretation caveat. It lacks only granular return/error details, but given the tool's simplicity and no output schema, this is sufficient.

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?

Both parameters already have detailed schema descriptions (query format, tlds format and default), so the description adds little beyond the example. Schema coverage is 100%, warranting a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and resource ('Check ONE name across MANY TLDs') and immediately differentiates from the sibling tool check_domain, making its scope unmistakable.

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

Usage Guidelines5/5

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

Explicitly states when to use ('when comparing extensions for the same word') and when not to ('for a single known domain use check_domain instead'), providing clear decision guidance.

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. 4 tool updatesv1.2.6
    • Changedcheck_domain1 field changed
      • changedInput schema / properties / domain / description
        Previous value: -"Fully-qualified domain, e.g. acme.io"New value: +"A single fully-qualified domain including its TLD, e.g. 'acme.io'. URLs and 'www.' prefixes are stripped automatically. Not a bare word — use search_domains to test a word across multiple TLDs."
    • Changedcompare_registrars1 field changed
      • changedInput schema / properties / tld / description
        Previous value: -"TLD without the dot, e.g. com"New value: +"A single TLD WITHOUT the leading dot, e.g. 'com', 'io', 'ai'. A leading dot is stripped if present."
    • Changedget_domain_age1 field changed
      • changedInput schema / properties / domain / description
        Previous value: -"Fully-qualified domain, e.g. acme.com"New value: +"A fully-qualified domain including its TLD, e.g. 'acme.com'. Meaningful only for taken/registered domains; available names have no registration date."
    • Changedsearch_domains2 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Name without TLD, e.g. acme"New value: +"The name WITHOUT any TLD, e.g. 'acme' (not 'acme.com'). This single word is tested against each TLD in the tlds list."
      • changedInput schema / properties / tlds / description
        Previous value: -"Comma-separated TLDs, e.g. com,io,ai. Defaults to a curated set of 12."New value: +"Optional comma-separated TLDs without dots, e.g. 'com,io,ai'. Omit to use a curated default set of 12 popular TLDs. Whitespace is ignored."
  2. 4 tool updatesv1.2.5
    • First observedcheck_domain
    • First observedcompare_registrars
    • First observedget_domain_age
    • First observedsearch_domains

TDQS

A4.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: check_domain for a single fully-qualified name, search_domains for one name across many TLDs, compare_registrars for TLD pricing, and get_domain_age for taken domain details. The descriptions explicitly cross-reference each other, eliminating ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: check_domain, search_domains, compare_registrars, get_domain_age. The pluralization of 'domains' in search_domains is logical given its multi-TLD scope, and the pattern is uniform.

Tool Count5/5

Four tools is an ideal scope for a domain check and registrar pricing server. Each tool covers a distinct aspect—single domain check, multi-TLD search, pricing comparison, and age lookup—without redundancy or bloat.

Completeness5/5

The tool set fully covers the stated domain: availability checks for both single and multi-TLD scenarios, comprehensive registrar pricing comparisons, and domain age/expiration details. No obvious gaps are present; the workflows are complete and well-integrated.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that enables Claude Desktop to check domain availability across 50+ TLDs. Features DNS/WHOIS verification, bulk checking, and smart suggestions. Zero-clone installation via uvx.
    1
    59
    Mozilla Public 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Intelligent domain name suggestion service that checks real-time availability across multiple providers and works with MCP-compatible tools like Cursor and Claude Code.
    13
    Apache 2.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    DomainKits MCP connects AI assistants (Claude, GPT, etc.) to professional domain intelligence tools. Instead of guessing domain availability, the AI can actually check it. Instead of generic naming suggestions, it validates ideas against real market data.
    6
    -