About Domain Checker MCP
Domain Checker MCP checks domain availability and registration details for individuals or teams comparing names. It uses RDAP first and falls back to WHOIS, with tools for single, batch, and extension-based checks.
Key features
- 01Single-domain availability checks
- 02Parallel batch domain checks
- 03Checks across multiple extensions
- 04RDAP lookup with WHOIS fallback
- 05Status and registration detail detection
- 06Configurable concurrency and retries
Use cases
- 01Check whether a proposed domain is available
- 02Compare many candidate names in parallel
- 03Review registrar and expiration information
MCP support
An MCP server exposing tools for individual domain checks, batch checks, and checks across one or more name extensions.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | Yes | The domain name to check (e.g., example.com) |
| includeRawResponse | boolean | No | Include raw RDAP/WHOIS response data (default: false) |
Details
From the project READMEDomain Checker MCP
An MCP (Model Context Protocol) server that checks domain availability using RDAP (Registration Data Access Protocol) with WHOIS fallback.
Features
- Check single domain availability
- Batch check multiple domains in parallel
- Prioritizes RDAP for domain lookups
- Falls back to WHOIS when RDAP is unavailable
- Configurable parallel workers (default: 4)
- Retry mechanism with exponential backoff for rate-limited responses
- Enhanced domain status detection (available, taken, unknown, rate_limited)
- Extract domain information (registrar, expiration date, days until expiration)
- Null registrationData detection for better availability accuracy
- Efficient response mode - raw RDAP/WHOIS data excluded by default for faster responses
MCP Configuration
Using npm package
Add this server to your MCP client configuration:
{
"mcpServers": {
"domain-checker": {
"command": "npx",
"args": ["-y", "domain-checker-mcp"]
}
}
}
Using local installation
{
"mcpServers": {
"domain-checker": {
"command": "node",
"args": ["/path/to/domain-checker-mcp/dist/index.js"]
}
}
}
Installation
From npm
npm install -g domain-checker-mcp
From source
git clone https://github.com/yourusername/domain-checker-mcp.git
cd domain-checker-mcp
pnpm install
pnpm build
Usage
Running the MCP server
pnpm start
Available Tools
All tools support an optional includeRawResponse parameter (boolean, default: false) to control whether raw RDAP/WHOIS data is included in responses. Raw responses are automatically included for suspicious cases (unknown status, rate limits, errors).
-
check_domain - Check if a single domain is available
- Input:
domain(string) - The domain name to checkincludeRawResponse(boolean, optional) - Include raw response data (default: false)
- Input:
-
check_domains_batch - Check multiple domains in parallel
- Input:
domains(string[]) - Array of domain names to checkconcurrency(number, optional) - Number of parallel workers (1-10, default: 4)includeRawResponse(boolean, optional) - Include raw response data (default: false)
- Input:
-
check_name_extensions - Check a single name with multiple extensions
- Input:
name(string) - The domain name without extension (e.g., "example")extensions(string[]) - Array of extensions to check (e.g., ["com", "net", "org"])concurrency(number, optional) - Number of parallel workers (1-10, default: 4)includeRawResponse(boolean, optional) - Include raw response data (default: false)
- Input:
-
check_names_extensions - Check multiple names with multiple extensions
- Input:
names(string[]) - Array of domain names without extensionsextensions(string[]) - Array of extensions to check for each nameconcurrency(number, optional) - Number of parallel workers (1-10, default: 4)includeRawResponse(boolean, optional) - Include raw response data (default: false)
- Input:
Response Format
Single domain check returns:
{
"domain": "example.com",
"available": false,
"status": "taken",
"method": "rdap",
"registrationData": { ... },
"domainInfo": {
"registrar": "Example Registrar Inc.",
"expirationDate": "2025-12-31T23:59:59Z",
"daysUntilExpiration": 365,
"creationDate": "2020-01-01T00:00:00Z",
"lastUpdated": "2024-01-15T12:00:00Z"
}
}
Batch check returns:
{
"total": 5,
"available": 2,
"taken": 2,
"errors": 0,
"rateLimited": 1,
"unknown": 0,
"results": [...]
}
Name with extensions check returns:
{
"name": "example",
"total": 3,
"available": 1,
"taken": 2,
"errors": 0,
"rateLimited": 0,
"unknown": 0,
"results": [...]
}
Multiple names with extensions returns:
{
"totalNames": 2,
"totalExtensions": 3,
"totalChecks": 6,
"availableTotal": 2,
"takenTotal": 3,
"errorsTotal": 0,
"rateLimitedTotal": 1,
"unknownTotal": 0,
"resultsByName": {
"example": {
"total": 3,
"available": 1,
"taken": 2,
"errors": 0,
"rateLimited": 0,
"unknown": 0,
"domains": [...]
},
...
}
}
Publishing
To publish a new version:
- Update the version in
package.json - Commit your changes
- Create and push a new tag:
git tag v0.1.0 git push origin v0.1.0 - GitHub Actions will automatically publish to npm
Requirements
- Set
NPM_TOKENsecret in your GitHub repository settings - Tag must start with 'v' (e.g., v0.1.0, v1.0.0)
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.