domain-whois-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@domain-whois-mcpwhois lookup for example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
domain-whois-mcp
Give your AI agent real-time domain intelligence. WHOIS, RDAP, availability checking, bulk lookups — all via native protocols, zero API keys.
An MCP server that lets Claude (and any MCP-compatible AI) look up domain registration data, check availability, and explore TLD infrastructure using the native WHOIS (RFC 3912) and RDAP (RFC 7482) protocols directly — no third-party APIs, no rate-limited web scrapers, no API keys.
Install
Claude Code — Marketplace (single command, auto-install)
This repo is its own Claude Code plugin marketplace. Add it in one step:
/plugin marketplace add kemalabuteliyte/domain-whois-mcp
/plugin install domain-whois-mcp@domain-whois-marketplaceOr in the Claude Code UI: /plugin > Browse marketplaces > Add marketplace > paste kemalabuteliyte/domain-whois-mcp > install domain-whois-mcp.
Claude Code — CLI (one command)
claude mcp add domain-whois -- npx -y github:kemalabuteliyte/domain-whois-mcpClaude Code — UI
Open Claude Code
Go to Settings (gear icon or
/settings)Navigate to MCP Servers
Click "Add MCP Server" (or "Add Custom Server")
Fill in:
Name:
domain-whoisCommand:
npxArguments:
-y github:kemalabuteliyte/domain-whois-mcp
Click Save
The server starts automatically — all 8 tools become available immediately.
Claude Code — JSON config
You can also add it directly to your project's .mcp.json:
{
"mcpServers": {
"domain-whois": {
"command": "npx",
"args": ["-y", "github:kemalabuteliyte/domain-whois-mcp"]
}
}
}Or to your user config at ~/.claude.json:
{
"mcpServers": {
"domain-whois": {
"command": "npx",
"args": ["-y", "github:kemalabuteliyte/domain-whois-mcp"]
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"domain-whois": {
"command": "npx",
"args": ["-y", "github:kemalabuteliyte/domain-whois-mcp"]
}
}
}Restart Claude Desktop after saving.
npm (after npm publish)
npm login
npm publish
# then anyone can install with:
claude mcp add domain-whois -- npx -y domain-whois-mcpThe npm package name domain-whois-mcp is available and reserved for this project.
Related MCP server: Domain Checker MCP Server
What's Inside
This is a full Claude Code plugin — not just an MCP connector. Installing it adds five surfaces:
Surface | What you get |
8 MCP tools |
|
4 skills |
|
4 slash commands |
|
1 agent |
|
2 hooks |
|
Finding a name for your next project
The headline workflow. Type:
/find-name ai invoicingThe project-name-finder skill (or the domain-strategist agent) will:
Brainstorm 15–30 candidates inspired by your concept.
Fan out across
.com .io .dev .ai .app .co— usually 100+ lookups.Run
bulk_domain_checkwith concurrency 5.Rank by
.comavailability, length, and multi-TLD coverage.Return a top-5 table:
Rank | Name | Available on | Why it works |
1 |
| .com, .io, .dev | 5 chars, memorable, available on all three |
2 |
| .io, .dev, .ai | short, pronounceable |
... | ... | ... | ... |
You can also just ask naturally — "I'm starting an AI invoicing SaaS, help me find a name" — and the skill triggers automatically.
What It Does
This MCP server gives your AI agent 8 tools for complete domain name intelligence:
Tool | What it does |
| Full WHOIS lookup via native TCP protocol. Returns parsed structured data (registrar, dates, nameservers, contacts) + raw text. Automatically follows referrals for complete data. |
| Modern RDAP lookup returning structured JSON. RDAP is the successor to WHOIS with better data quality. |
| Check if a domain is available for registration. Tries RDAP first (faster), falls back to WHOIS. |
| Check up to 50 domains at once with configurable parallelism (1-10 concurrent). Perfect for finding available names across TLDs. |
| Get information about any TLD from IANA — which WHOIS/RDAP servers handle it, registry details. |
| Send raw WHOIS queries to any server. Works for IP addresses, ASN lookups, and debugging. |
| Discover which WHOIS and RDAP servers handle a domain or TLD. |
| Browse the IANA RDAP bootstrap — see which TLDs support RDAP and their endpoints. |
How It Works Under the Hood
You ask Claude: "Is cool-startup.com available?"
│
┌─────▼──────┐
│ MCP Server │
└─────┬──────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌──────────┐ ┌────────┐ ┌─────────┐
│ WHOIS │ │ RDAP │ │ IANA │
│ TCP:43 │ │ HTTPS │ │Registry │
└────┬─────┘ └───┬────┘ └────┬────┘
│ │ │
Raw socket to HTTP GET to Discovers
whois server rdap server servers for
on port 43 with JSON unknown TLDs
│ │ │
▼ ▼ ▼
┌──────────────────────────────┐
│ Parsed, structured result │
│ back to Claude │
└──────────────────────────────┘Built-in DB of 80+ known WHOIS servers is checked first (zero latency)
IANA discovery kicks in for unknown TLDs — queries
whois.iana.orgvia TCPRDAP bootstrap fetched from IANA and cached 24h for modern protocol lookups
Referral following — thin WHOIS (Verisign) automatically follows to thick registrar WHOIS
Smart parsing — 15+ "not found" patterns recognized across registries worldwide
Why It's Useful
For developers and startups
Find available domains — "Check if these 20 brand name variations are available across .com, .io, .dev, .ai"
Due diligence — "When does competitor.com expire? Who's their registrar?"
DNS debugging — "What nameservers does our domain point to? Is DNSSEC enabled?"
For domain investors
Bulk availability scanning — Check 50 domains in one shot with concurrent lookups
Expiry monitoring — Find expiration dates for domains you're watching
TLD research — Explore which TLDs support RDAP, find WHOIS servers for exotic ccTLDs
For security researchers
OSINT — Look up registration details, registrar info, domain status flags
Infrastructure mapping — Raw WHOIS queries for IP blocks, ASN lookups
Abuse investigation — Check domain registration patterns and history
For AI coding agents
Domain validation — Agents building web apps can verify domain configuration
Automated checks — CI/CD pipelines can verify domain status before deployments
Research automation — Agents doing competitive analysis can pull domain intel
Usage Examples with Claude
Once installed, just talk to Claude naturally:
Check availability:
"Is my-cool-app.com available? Also check .io and .dev"
Get WHOIS info:
"Look up the WHOIS for github.com — who's the registrar and when does it expire?"
Bulk check:
"I'm naming my startup 'Nexora'. Check nexora.com, nexora.io, nexora.dev, nexora.ai, nexora.co, getnexora.com, nexorahq.com"
TLD research:
"Which WHOIS server handles .tr domains? Does .ai support RDAP?"
Raw queries:
"Send a raw WHOIS query for 8.8.8.8 to whois.arin.net"
RDAP lookup:
"Get the RDAP data for cloudflare.com"
AI Coding Agent Integration
This MCP is designed to be used by autonomous coding agents (Claude Code, Cursor, Windsurf, or any MCP-compatible agent). Here's how agents can leverage it:
Agent Workflow: New Project Setup
Agent task: "Set up the domain and hosting for our new SaaS product"
1. Agent uses bulk_domain_check to find available domains
2. Agent uses whois_lookup to verify the chosen domain's status
3. Agent uses tld_info to check which protocols the TLD supports
4. Agent proceeds with DNS configuration knowing the domain landscapeAgent Workflow: Competitive Research
Agent task: "Research our top 5 competitors' web infrastructure"
1. Agent uses whois_lookup on each competitor domain
2. Extracts registrar, nameservers, creation dates
3. Uses rdap_lookup for structured data where available
4. Compiles infrastructure comparison reportAgent Workflow: Domain Portfolio Audit
Agent task: "Audit all our company domains and flag any expiring within 90 days"
1. Agent uses bulk_domain_check with all company domains
2. Parses expiration dates from results
3. Flags domains expiring soon
4. Generates renewal priority listProgrammatic Tool Usage (for agent developers)
Each tool accepts structured JSON parameters:
// whois_lookup
{ "domain": "example.com", "follow_referrals": true, "timeout": 15000 }
// bulk_domain_check
{ "domains": ["a.com", "b.io", "c.dev"], "concurrency": 5, "method": "auto" }
// whois_raw (for IP/ASN lookups)
{ "query": "AS13335", "server": "whois.radb.net" }Tool Reference
whois_lookup
Parameter | Type | Default | Description |
| string | required | Domain to look up (e.g., |
| string | auto | Override WHOIS server |
| boolean |
| Follow thin WHOIS referrals |
| number |
| Timeout in ms |
rdap_lookup
Parameter | Type | Default | Description |
| string | required | Domain to look up |
| string | auto | Override RDAP server URL |
| number |
| Timeout in ms |
domain_check
Parameter | Type | Default | Description |
| string | required | Domain to check |
|
|
| Lookup method |
| number |
| Timeout in ms |
bulk_domain_check
Parameter | Type | Default | Description |
| string[] | required | Domains to check (max 50) |
| number |
| Parallel lookups (1-10) |
|
|
| Lookup method |
| number |
| Per-domain timeout |
tld_info
Parameter | Type | Description |
| string | TLD without dot (e.g., |
whois_raw
Parameter | Type | Default | Description |
| string | required | Query string (domain, IP, ASN) |
| string | required | WHOIS server hostname |
| number |
| Server port |
| number |
| Timeout in ms |
find_whois_server
Parameter | Type | Description |
| string | Domain or TLD to find servers for |
rdap_bootstrap_info
Parameter | Type | Description |
| string | Optional: filter TLDs by substring |
Architecture
src/
├── index.ts # MCP server — 8 tools, stdio transport
├── whois-client.ts # Native WHOIS TCP client (RFC 3912)
│ # Referral following, TLD-specific query formats
├── whois-parser.ts # Parses WHOIS text → structured data
│ # 15+ not-found patterns, contact extraction
├── rdap-client.ts # RDAP HTTP client (RFC 7482/7483)
│ # IANA bootstrap, JSON response parsing
├── iana.ts # IANA TLD registry integration
│ # 80+ built-in servers, dynamic discovery, caching
└── types.ts # TypeScript interfacesZero external dependencies beyond the MCP SDK and Zod. WHOIS uses Node.js net module for raw TCP. RDAP uses built-in fetch. No WHOIS npm packages, no API wrappers.
Development
git clone https://github.com/kemalabuteliyte/domain-whois-mcp.git
cd domain-whois-mcp
npm install
npm run build # compile TypeScript → dist/
npm run dev # watch mode
node dist/index.js # run directlyProtocol Details
WHOIS (RFC 3912): Opens TCP to port 43, sends domain\r\n, reads until close. Handles TLD-specific formats (DENIC: -T dn,ace, JPRS: /e suffix, Verisign: domain prefix).
RDAP (RFC 7482/7483): HTTP GET to {server}/domain/{name} with Accept: application/rdap+json. Follows redirects. Returns structured JSON.
License
MIT
Available Tools
8 toolsbulk_domain_checkB
Check multiple domains for availability concurrently. Supports parallel processing with configurable concurrency. Useful for finding available domains across multiple TLDs or name variations.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | Lookup method for all domains | auto |
| domains | Yes | Array of domain names to check (max 50) | |
| timeout | No | Per-domain timeout in milliseconds (default: 15000) | |
| concurrency | No | Number of concurrent lookups (1-10, default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does mention concurrent/parallel processing and configurable concurrency, which is useful behavioral context. However, it does not describe failure behavior, timeout handling, whether network requests are made, or how results are returned, leaving notable gaps for an unannotated tool.
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 short and front-loaded with the core purpose in the first sentence. The second sentence adds relevant detail about configurable parallelism but is somewhat redundant with the word 'concurrently.' Overall, it is efficient with minimal fluff.
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?
There is no output schema and no annotations, yet the description never explains what the tool returns or how availability results are structured. It also omits important operational behavior such as rate limits, error cases, and how the 'auto' method selects between WHOIS and RDAP. For a bulk network tool, this is a meaningful completeness gap.
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 description coverage is 100%, so all four parameters (method, domains, timeout, concurrency) are already documented structurally. The description adds only general context about multiple domains and parallel processing, not meaningfully new parameter semantics 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 states a clear, specific action: checking multiple domains for availability, and highlights the concurrent nature. It distinguishes itself from single-domain or lookup-specific siblings like domain_check, whois_lookup, and rdap_lookup through 'multiple domains' and 'concurrently,' though it does not explicitly name those alternatives.
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?
The description gives a useful context clue: 'Useful for finding available domains across multiple TLDs or name variations.' However, it does not explicitly explain when to choose this tool over domain_check or the other lookup siblings, nor does it state conditions where a single-domain lookup would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_checkA
Check if a domain name is available for registration. Tries RDAP first (faster, structured), falls back to WHOIS. Returns availability status and full registration data if registered.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to check (e.g., "mydomain.com") | |
| method | No | Lookup method: auto (RDAP→WHOIS), whois, rdap, or both | auto |
| timeout | No | Query timeout in milliseconds (default: 15000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the lookup order ('Tries RDAP first... falls back to WHOIS') and the return payload ('availability status and full registration data if registered'). It does not cover edge behavior such as timeouts, errors, or how method='both' changes behavior, but the core behavioral traits are 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 short sentences, each earning its place: purpose, algorithm, and return value. The most important information is front-loaded, and there is no filler or redundancy.
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 gives a solid core outline but leaves gaps: no output schema exists, so the phrase 'availability status and full registration data' is vague about the actual response shape. It also does not mention error behavior, timeout implications, or how this relates to sibling tools like bulk_domain_check and whois_raw.
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 description coverage is 100%, so the schema already documents all three parameters. The description adds the rationale that RDAP is faster and structured, which is useful, but it does not meaningfully extend the parameter semantics 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?
The description opens with a specific verb and resource: 'Check if a domain name is available for registration.' It also clarifies the tool's combined RDAP→WHOIS behavior and distinguishes it from raw lookup siblings by emphasizing availability status as the primary outcome.
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?
The intended use case is implied clearly: use this when you need an availability check. However, the description does not explicitly mention alternatives like whois_lookup, rdap_lookup, bulk_domain_check, or when the lower-level tools should be preferred instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_whois_serverA
Discover the WHOIS and RDAP servers for a domain or TLD. Checks the built-in database first, then queries IANA for unknown TLDs. Returns both WHOIS and RDAP server information.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name or TLD to find servers for (e.g., "example.com" or "com") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the two-step behavior (checking the built-in database first, then querying IANA for unknown TLDs) and the returned information type. This provides meaningful behavioral context beyond the schema, though it stops short of mentioning error handling or exact response structure.
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 short sentences, each earning its place: what the tool returns, the lookup algorithm, and the result composition. The primary purpose is front-loaded, and there is no redundant or filler 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?
For a single-parameter, read-only discovery tool, the description is largely complete: it states the input, the lookup strategy, and the output focus. It is slightly thin on the exact shape of the return value since there is no output schema, but the high-level 'both WHOIS and RDAP server information' is sufficient for basic selection and invocation.
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 schema already fully describes the single parameter with an example ('example.com' or 'com'), so schema coverage is 100%. The description reuses the domain-or-TLD concept but adds no additional parameter semantics, matching the baseline of 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 states a specific verb and resource: it discovers WHOIS and RDAP servers for a domain or TLD. It also clarifies the output scope by mentioning both server types, making the tool's purpose unambiguous even among siblings like whois_lookup and rdap_lookup.
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?
No guidance is given on when to use this tool versus siblings such as rdap_bootstrap_info or whois_lookup. The description explains the internal lookup order but does not tell an agent when this tool is the right choice or when a sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_bootstrap_infoA
Show the IANA RDAP bootstrap data — lists all TLDs that support RDAP and their service URLs. Useful for understanding RDAP coverage across TLDs.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filter: only show TLDs matching this substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly presents a read-only listing behavior and specifies what the agent should expect as output: TLDs plus their service URLs. It does not mention whether data is fetched live from IANA or cached, but for a simple informational tool this is a minor gap rather than a transparency failure.
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 compact sentences with the key action and output front-loaded; the second sentence adds a practical use case. There is no filler or tautology.
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 tool is simple: one optional parameter, zero required parameters, and no output schema. The description covers what the tool shows and why it is useful, which is enough for an agent to select and invoke it, though it could optionally hint at output structure or data freshness.
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 schema fully documents the only parameter, 'filter', including its optional status and substring-matching behavior. The description itself adds no parameter details, which is acceptable because schema description coverage is 100%.
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 names the exact resource (IANA RDAP bootstrap data) and states the tool's output (list of TLDs supporting RDAP and their service URLs). This clearly differentiates it from sibling lookup tools like rdap_lookup or tld_info by emphasizing global coverage rather than per-domain or per-TLD lookup.
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 provides a clear use case: understanding RDAP coverage across TLDs. However, it never states when not to use it or points to alternatives such as rdap_lookup or tld_info, so an agent must infer the correct choice from the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_lookupA
Look up RDAP (Registration Data Access Protocol) information for a domain. RDAP is the modern successor to WHOIS, providing structured JSON responses. Automatically discovers the RDAP server via IANA bootstrap. Not all TLDs support RDAP — falls back with a clear error message.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (e.g., "example.com") | |
| server | No | Override RDAP server base URL (optional, auto-discovered) | |
| timeout | No | Query timeout in milliseconds (default: 15000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds value beyond the schema by stating the return shape ('structured JSON responses'), the discovery mechanism ('Automatically discovers the RDAP server via IANA bootstrap'), and the failure behavior ('falls back with a clear error message'). It doesn't cover auth/rate limits, but for a read-only lookup this is noticeably 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?
Four sentences, front-loaded with purpose, and every sentence contributes distinct information: what the tool does, protocol context, server discovery, and limitation/error behavior. No filler or repetition.
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?
For a simple single-required-parameter lookup with no output schema, the description covers the essential invocation context: purpose, output format, auto-discovery, and fallback error behavior. It is slightly short of a 5 because it doesn't hint at what fields the structured JSON contains or how the optional server override affects behavior, but those are minor for agent selection.
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?
All three parameters already have schema descriptions, so the baseline is 3. The description adds a little extra meaning by explaining the IANA bootstrap behavior behind the optional server override, but the timeout and domain parameters gain nothing beyond their schema text.
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 and resource: 'Look up RDAP information for a domain.' It further clarifies the protocol as modern successor to WHOIS. However, it does not explicitly contrast itself with siblings like whois_lookup or whois_raw, so it misses the top tier.
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?
The description implies when to use it by explaining RDAP is the modern successor to WHOIS and warns that 'Not all TLDs support RDAP.' It does not explicitly name alternatives or state 'use whois_lookup for legacy/fallback cases,' so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tld_infoA
Get information about a TLD (Top-Level Domain) from IANA. Returns the authoritative WHOIS server, RDAP server, and IANA registry data. Works for gTLDs (.com, .org), new gTLDs (.app, .xyz), and ccTLDs (.uk, .de).
| Name | Required | Description | Default |
|---|---|---|---|
| tld | Yes | TLD to look up (e.g., "com", "co.uk", "xyz"). Omit the leading dot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It usefully states that the data comes from IANA and that the tool returns authoritative WHOIS server, RDAP server, and registry data. It does not mention whether the lookup is live or cached, error behavior, or response format, but for a simple read-only metadata lookup this is acceptable.
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 two compact sentences with no redundant wording. The core action and expected outputs are front-loaded, and the supported TLD classes are stated efficiently in a single follow-up sentence.
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?
For a one-parameter tool with no output schema, the description provides the essential context: data source, returned content, and TLD scope. It could be more complete by describing the return shape or possible failure modes, but it still gives an agent enough to understand what the tool does and when to call it.
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 documents the tld parameter with examples and the rule to omit the leading dot, so schema coverage is 100%. The description adds some context about supported TLD categories but does not significantly enrich the parameter meaning beyond what the schema already 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?
The description opens with a specific verb and resource ('Get information about a TLD... from IANA') and lists concrete outputs such as the authoritative WHOIS server, RDAP server, and IANA registry data. It is clear about what the tool does, though it does not explicitly differentiate itself from sibling tools like whois_lookup or find_whois_server by name.
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?
The description implies this tool is for TLD-level metadata lookups rather than domain-level WHOIS/RDAP queries, and the 'Works for...' line indicates broad applicability. However, it gives no explicit guidance on when to prefer this tool over the sibling alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whois_lookupA
Look up WHOIS information for a domain name using native WHOIS protocol (TCP port 43). Automatically discovers the correct WHOIS server via IANA if not known. Follows referrals from thin WHOIS to thick WHOIS for complete data. Returns parsed structured data + raw WHOIS text.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (e.g., "example.com", "google.co.uk") | |
| server | No | Override WHOIS server (optional, auto-discovered if not set) | |
| timeout | No | Query timeout in milliseconds (default: 15000) | |
| follow_referrals | No | Follow WHOIS referrals for complete data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses meaningful behavior: uses TCP port 43, auto-discovers the WHOIS server via IANA, follows thin-to-thick referrals, and returns both parsed and raw data. It does not cover error handling, rate limits, or network failure modes, but for a read-only public lookup tool this is strong transparency.
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 short sentences, each earning its place: what it does, how servers are discovered, how referrals are handled, and what the return includes. Front-loaded with the core action and 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?
The description covers the tool's core operation, behavior, and return value shape, which matters because there is no output schema. Parameter semantics are already in the schema. It could be more complete by explicitly contrasting with rdap_lookup and whois_raw, but an agent has enough information 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?
Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description adds contextual value by mentioning IANA auto-discovery and referral following, but it does not need to re-explain parameter meanings. Baseline 3 is appropriate.
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 uses a specific verb and resource: "Look up WHOIS information for a domain name using native WHOIS protocol." It clearly differentiates from siblings like rdap_lookup (different protocol) and whois_raw (raw-only output) by stating it returns "parsed structured data + raw WHOIS text" and follows referrals.
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?
The description gives clear context: this is the native-WHOIS lookup tool with automatic server discovery and referral following. It implies use for complete WHOIS data, but it does not explicitly state when to choose rdap_lookup or whois_raw instead. It is clear enough for selection, but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whois_rawA
Send a raw WHOIS query to a specific server and return the unprocessed response. Useful for debugging, querying IP WHOIS (rwhois), or non-standard WHOIS servers.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | WHOIS server port (default: 43) | |
| query | Yes | Query string to send (domain, IP, ASN, etc.) | |
| server | Yes | WHOIS server hostname (e.g., "whois.verisign-grs.com") | |
| timeout | No | Query timeout in milliseconds (default: 15000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the key behavioral trait: the query is sent raw to a specified server and the response is returned unprocessed, meaning no parsing or transformation should be expected. It could add error or response-format detail, but the core behavior is explicit.
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 carry all necessary information: the action, the unprocessed nature of the output, and the relevant use cases. Every sentence earns its place and the main action is front-loaded.
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?
For a simple raw network query tool, the description plus a fully documented schema is sufficient for an agent to select and invoke it. Required parameters are in the schema, defaults for port and timeout are provided, and the return value is defined as the unprocessed response.
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 description coverage is 100%, so the schema already documents all four parameters with defaults and examples. The description adds no parameter-level semantics beyond the rwhois use case, so the baseline 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 states a precise action ('Send a raw WHOIS query'), a specific target ('a specific server'), and the output ('return the unprocessed response'). This clearly distinguishes it from the sibling whois_lookup, which implies a standard, processed lookup.
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?
The description gives explicit use contexts: 'debugging, querying IP WHOIS (rwhois), or non-standard WHOIS servers.' This tells an agent when the raw variant is appropriate. It does not explicitly name the standard alternative, but the context is clear enough.
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.
8 tool updates
v1.1.0- First observed
bulk_domain_check - First observed
domain_check - First observed
find_whois_server - First observed
rdap_bootstrap_info - First observed
rdap_lookup - First observed
tld_info - First observed
whois_lookup - First observed
whois_raw
TDQS
Scored across 8 tools
Most tools are distinct (whois_lookup vs rdap_lookup vs domain_check), but find_whois_server, tld_info, and rdap_bootstrap_info overlap in surfacing server/bootstrap information and could be confused by an agent. whois_lookup and whois_raw also both query WHOIS, differing only in parsing and server targeting.
Names are uniformly snake_case but follow mixed patterns: whois_lookup/rdap_lookup use verb_noun, domain_check/bulk_domain_check use noun_check, while tld_info and rdap_bootstrap_info are noun phrases. The inconsistency is readable but not predictable across the set.
8 tools is well-scoped for a WHOIS/RDAP domain lookup server. Each tool covers a distinct protocol, use case, or operational need without unnecessary bloat.
The tool set covers WHOIS lookup, RDAP lookup, raw queries, server discovery, TLD metadata, single-domain availability, and bulk availability. This forms a complete surface for domain registration information and WHOIS/RDAP troubleshooting.
Maintenance
Related MCP Connectors
Domain intel for AI agents: RDAP registration, DNS, email deliverability, tech stack.
Domain intel for AI agents: RDAP registration, DNS, email deliverability, tech stack.
The web capability layer for AI agents: render, extract, DNS, SSL, WHOIS & more via x402.
20 domain recon tools for AI agents: DNS, SSL, headers, email, subdomains, lookalikes, changes.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to perform WHOIS lookups to retrieve domain registration details, including ownership, registration dates, and availability status without requiring browser searches.415 npm21MIT
- AlicenseAqualityDmaintenanceEnables AI agents to check domain availability, perform batch domain lookups, and generate intelligent domain name suggestions across multiple TLDs using WHOIS integration.3MIT
- AlicenseAqualityDmaintenanceEnables AI agents to check domain availability, purchase domains via Stripe, and perform full DNS and nameserver management. It facilitates automated domain lifecycle tasks like record updates and transfer locks without requiring CAPTCHAs.1MIT
- AlicenseAqualityCmaintenanceConfidence-scored domain availability checking for AI agents via real-time DNS and WHOIS lookups. Bulk check up to 100 domains, WHOIS enrichment, and quota monitoring. All tools are read-only.31MIT