Real-time domain availability checking and RFC-compliant syntax validation.
NameChecker MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with domain name availability checking capabilities. This server enables AI models to check if domain names are available for registration and validate domain syntax in real-time.
šÆ Purpose
The NameChecker MCP Server bridges the gap between AI assistants and domain registration services by providing:
- Real-time Domain Availability Checking: Instant verification of domain name availability
- Domain Syntax Validation: RFC-compliant domain name format validation
- AI-Friendly Integration: Seamless integration with AI assistants through the MCP protocol
- Flexible Transport Options: Support for both stdio and Server-Sent Events (SSE) transports
š Available Tools
1. `check_domain_availability`
Checks if a domain name is available for registration.
Parameters:
domain(string, required): Domain name to check (with or without TLD)tld(string, optional): Top-level domain, defaults to "com"
Returns: Boolean indicating availability (true = available, false = unavailable)
Example Usage:
{
"name": "check_domain_availability",
"arguments": {
"domain": "my-awesome-startup",
"tld": "com"
}
}
2. `validate_domain_syntax`
Validates domain name syntax according to RFC standards.
Parameters:
domain(string, required): Domain name to validate
Returns: Object with validation results and details
Example Usage:
{
"name": "validate_domain_syntax",
"arguments": {
"domain": "my-domain.com"
}
}
Sample Response:
{
"valid": true,
"domain": "my-domain",
"tld": "com",
"full_domain": "my-domain.com",
"length": 13
}
š¦ Installation
Prerequisites
- Python 3.9 or higher
- pip (Python package manager)
Install from Source
# Clone the repository
git clone <repository-url>
cd namechecker-mcp
# Install in development mode
pip install -e ".[dev]"
Install Dependencies Only
pip install mcp httpx pydantic
š Usage
Command Line Options
# Run with default stdio transport
python main.py
# Run with SSE transport on port 8000
python main.py --transport sse --port 8000
# Run with custom settings
python main.py --transport stdio --log-level DEBUG --timeout 60
# Show help
python main.py --help
Available Arguments:
--transport: Transport protocol (stdioorsse, default:stdio)--port: Port number for SSE transport (default:8000)--log-level: Logging verbosity (DEBUG,INFO,WARNING,ERROR, default:INFO)--timeout: Request timeout in seconds (default:30)
MCP Client Configuration
To use this server with an MCP-compatible client (like Claude Desktop, Cline, or other AI assistants), add it to your MCP configuration file.
For Claude Desktop (`config.json`)
Location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"namechecker": {
"command": "python",
"args": ["/path/to/namechecker-mcp/main.py"],
"env": {
"LOG_LEVEL": "INFO"
}
}
}
}
For Cline VSCode Extension
Add to your Cline MCP settings:
{
"mcpServers": {
"namechecker": {
"command": "python",
"args": ["/absolute/path/to/main.py"],
"cwd": "/absolute/path/to/namechecker-mcp"
}
}
}
For Custom MCP Clients
Stdio Transport Configuration:
{
"name": "namechecker",
"transport": {
"type": "stdio",
"command": "python",
"args": ["/path/to/main.py"]
}
}
SSE Transport Configuration:
{
"name": "namechecker",
"transport": {
"type": "sse",
"url": "http://localhost:8000/messages"
}
}
š§ Development
Project Structure
namechecker-mcp/
āāā main.py # Main MCP server implementation
āāā pyproject.toml # Project configuration and dependencies
āāā tests/ # Unit tests
ā āāā __init__.py
ā āāā test_domain_checker.py
āāā details/ # Project documentation
ā āāā PRD.md # Product Requirements Document
āāā .cursor/ # Cursor IDE rules
ā āāā rules/
āāā README.md # This file
Running Tests
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run tests with coverage
pytest tests/ --cov=main --cov-report=html
Code Quality
# Format code
black .
# Lint code
ruff check .
# Type checking
mypy main.py
š Usage Examples
Example 1: Check Single Domain
# Through MCP client
result = await mcp_client.call_tool("check_domain_availability", {
"domain": "my-startup-idea"
})
# Returns: true or false
Example 2: Validate Domain Syntax
# Through MCP client
result = await mcp_client
Tools (2)
check_domain_availabilityChecks if a domain name is available for registration.validate_domain_syntaxValidates domain name syntax according to RFC standards.Environment Variables
LOG_LEVELLogging verbosity (DEBUG, INFO, WARNING, ERROR)Configuration
{"mcpServers": {"namechecker": {"command": "python", "args": ["/path/to/namechecker-mcp/main.py"], "env": {"LOG_LEVEL": "INFO"}}}}