domain-mcp
# domain-mcp
An MCP (Model Context Protocol) server for domain name availability checking, WHOIS lookups, and domain suggestions — **no API key required**.
Uses [RDAP](https://about.rdap.org/) for availability checks, real [WHOIS](https://en.wikipedia.org/wiki/WHOIS) servers via TCP port 43 for registration records, and [domainr.com](https://domainr.com/) for domain suggestions.
## Features
- **Search Domains** — Get domain suggestions across 25+ popular TLDs (.com, .io, .dev, .ai, etc.) with availability
- **Check Domain** — Detailed availability status via RDAP — registrar, creation/expiry dates, nameservers
- **Bulk Check** — Check up to 20 domains at once in a comparison table
- **WHOIS Lookup** — Full WHOIS records via TCP port 43 — registrar, registrant, dates, status, nameservers, abuse contacts
- **Zero Config** — No API key, no sign-up, works out of the box
## Setup
### 1. Install & Build
```bash
cd domain-mcp
npm install
npm run build
```
### 2. Add to MCP Client
Add to your VS Code `settings.json` or Claude Desktop config:
```json
{
"mcpServers": {
"domain-mcp": {
"command": "node",
"args": ["path/to/domain-mcp/dist/index.js"]
}
}
}
```
No environment variables or API keys needed.
## Tools
### `search_domains`
Search for domain name suggestions with availability status.
| Parameter | Type | Required | Description |
|-----------|----------|----------|-------------------------------------------------|
| query | string | ✅ | Brand name, keyword, or domain to search |
| tlds | string[] | — | Optional TLDs to check (e.g. `["com", "io"]`) |
### `check_domain`
Check availability and registration details of a specific domain via RDAP.
| Parameter | Type | Required | Description |
|-----------|--------|----------|--------------------------------------|
| domain | string | ✅ | Full domain name (e.g. `example.io`) |
### `check_multiple_domains`
Bulk check multiple domains at once.
| Parameter | Type | Required | Description |
|-----------|----------|----------|------------------------------------|
| domains | string[] | ✅ | Array of domains to check (max 20) |
### `whois_lookup`
Perform a WHOIS lookup via TCP port 43. Returns registrar, registrant, dates, nameservers, status flags, and abuse contacts.
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------------------|
| domain | string | ✅ | Full domain name (e.g. `google.com`) |
| raw | boolean | — | If `true`, returns the full raw WHOIS text dump |
## How It Works
1. **Domain suggestions** are fetched from [domainr.com](https://domainr.com/) (the same free web UI). Falls back to generating popular TLD combinations.
2. **Availability checks** use [RDAP](https://about.rdap.org/) — the official, free, open replacement for WHOIS. If RDAP has no record, a DNS lookup confirms the domain doesn't exist.
3. **Registration details** (registrar, dates, nameservers) come from the RDAP response for registered domains.
4. **WHOIS records** are fetched via direct TCP connections to WHOIS servers on port 43 — the same protocol used by the `whois` CLI tool. Supports 45+ TLDs out of the box and auto-discovers others via IANA. Automatically follows referral servers (e.g. Verisign → registrar-specific WHOIS).
## License
MIT
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: domain search suggestions, single availability check, bulk availability check, and WHOIS lookup. Even though check_domain and whois_lookup both return registration details, one focuses on availability and RDAP while the other provides full WHOIS data, avoiding confusion.
All tool names follow a consistent verb_noun pattern with snake_case: search_domains, check_domain, check_multiple_domains, whois_lookup. The naming is predictable and uniform.
With 4 tools, the server is well-scoped for domain search and lookup operations. Each tool serves a core function without redundancy, fitting the typical 3-15 tool range.
The tool set covers search, single and bulk availability checks, and detailed WHOIS data—covering the main domain lookup needs. A minor gap is the absence of DNS record lookup, but for a domain availability and WHOIS server, this is acceptable.