DigMyName — Domain Check & Registrar Pricing
This server lets you check domain availability, compare registrar pricing, and look up domain age across 50+ TLDs and 6 registrars — no API key required.
check_domain: Check availability of a specific domain (e.g.,
acme.io); returns cheapest registrar, buy link, and registration year if taken.search_domains: Search a name across many TLDs at once (default 12); returns availability, price, buy link, and registration year for taken domains.
compare_registrars: Compare registration, renewal, and 3-year totals across registrars for a given TLD (e.g.,
com).get_domain_age: Get the registration year and expiration date of a taken domain via RDAP.
Fast performance with edge caching (~10 ms repeat lookups) and rate limit of 60 requests/min/IP.
Uses Cloudflare's DNS-over-HTTPS API to verify domain availability as part of real-time domain checks.
Uses Google's DNS-over-HTTPS as a secondary resolver to cross-check domain availability.
Retrieves live registrar pricing from Porkbun's catalog to compare domain prices across registrars.
domain-check-skills-mcp
⚡ 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 |
Related MCP server: Domain Finder MCP Server
Install
Claude Code — one line:
claude mcp add domain-check -- npx -y domain-check-skills-mcpClaude 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 |
| Availability, premium / likely-premium flags, cheapest registrar, direct buy link and registration year (when taken) for one domain. |
| 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. |
| Registration, renewal and 3-year totals per registrar for a TLD. |
| Registration year and expiration date for a taken domain via RDAP. |
Example prompts
"Is
acme.ioavailable and where is it cheapest?""Check
nebulaacross com, io, ai, dev and app.""Compare registrar prices for
.ai.""When was
stripe.comregistered?"
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 |
|
| 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 toolscheck_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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | Yes | A single TLD WITHOUT the leading dot, e.g. 'com', 'io', 'ai'. A leading dot is stripped if present. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A fully-qualified domain including its TLD, e.g. 'acme.com'. Meaningful only for taken/registered domains; available names have no registration date. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tlds | No | 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. | |
| query | Yes | The name WITHOUT any TLD, e.g. 'acme' (not 'acme.com'). This single word is tested against each TLD in the tlds list. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.2.6- Changed
check_domain1 field changed- changed
Input schema / properties / domain / descriptionPrevious 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."
- Changed
compare_registrars1 field changed- changed
Input schema / properties / tld / descriptionPrevious 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."
- Changed
get_domain_age1 field changed- changed
Input schema / properties / domain / descriptionPrevious 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."
- Changed
search_domains2 fields changed- changed
Input schema / properties / query / descriptionPrevious 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." - changed
Input schema / properties / tlds / descriptionPrevious 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."
4 tool updates
v1.2.5- First observed
check_domain - First observed
compare_registrars - First observed
get_domain_age - First observed
search_domains
TDQS
Scored across 4 tools
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.
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.
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.
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
Related MCP Connectors
Buy & manage domains from any AI chat: availability, register, DNS, email forwarding, AI bot stats.
Confidence-scored domain availability checking for AI agents via CanYouGrab.it
Custom domains for SaaS and AI agents: search, register, connect DNS, and issue HTTPS over MCP.
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Related MCP Servers
- AlicenseAqualityDmaintenanceA 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.159Mozilla Public 2.0
- AlicenseNot gradedqualityDmaintenanceIntelligent domain name suggestion service that checks real-time availability across multiple providers and works with MCP-compatible tools like Cursor and Claude Code.13Apache 2.0
- FlicenseNot gradedqualityBmaintenanceDomainKits 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-
- AlicenseAqualityCmaintenanceDomain registration for AI agents. Check availability, buy domains (Stripe or x402 crypto), and auto-configure Cloudflare DNS - all without leaving your coding session.94MIT