Skip to main content
Glama

MCP Domain Availability Server

by OriShmila
README.md5.61 kB
# MCP Domain Availability Server A Model Context Protocol (MCP) server for checking domain availability and pricing using the GoDaddy OTE (Operational Test Environment) API. ## Features - Check domain availability and pricing via GoDaddy OTE sandbox - Support for multiple TLD suffixes - Fast and Full check modes - Support for bulk domain checking - Rate limiting (60 calls per minute) - Normalized pricing in dollars with 2 decimal places - Consistent field naming and data structures - Period normalization (stored in months, displayed in years) ## Installation ### Using uv (Recommended) ```bash # Install dependencies uv add "mcp[cli]" # Run with MCP Inspector for testing DOMAIN_API_KEY="your-key:your-secret" mcp dev domain_availability/server.py ``` ### Manual Installation ```bash pip install -e . ``` ## Configuration ### Environment Variables - `DOMAIN_API_KEY`: Your GoDaddy OTE API credentials in format `"key:secret"` (required) **Note**: The server uses GoDaddy OTE (sandbox) API by default: `https://api.ote-godaddy.com` ### GoDaddy OTE Setup 1. Sign up for GoDaddy Developer account 2. Get OTE (sandbox) API credentials 3. Set the environment variable: `DOMAIN_API_KEY="your-ote-key:your-ote-secret"` ### MCP Configuration Add this to your MCP client configuration (e.g., Claude Desktop's `claude_desktop_config.json`): ```json { "mcpServers": { "domain-availability": { "command": "uv", "args": ["run", "mcp-domain-availability"], "env": { "DOMAIN_API_KEY": "your-ote-key:your-ote-secret" } } } } ``` ## Usage ### Development & Testing ```bash # Start MCP Inspector for testing DOMAIN_API_KEY="your-key:your-secret" mcp dev domain_availability/server.py ``` This will start the MCP Inspector at `http://localhost:6274` for interactive testing. ### Tools Available The server provides one tool: `check_domain_availability` #### Parameters **Option 1: Direct domain list** - `domains`: Array of domain names to check (e.g., `["example.com", "example.org"]`) **Option 2: Base name with TLD suffixes** - `base_name`: Base domain name (e.g., `"example"`) - `tld_suffixes`: Array of TLD suffixes (e.g., `[".com", ".org", ".net", ".io"]`) **Optional** - `checkType`: `"FAST"` or `"FULL"` (default: `"FAST"`) - `FAST`: Optimized for speed - `FULL`: Optimized for accuracy ### Examples #### Check specific domains ```json { "domains": ["example.com", "example.org", "example.net"], "checkType": "FAST" } ``` #### Check base name with multiple TLDs ```json { "base_name": "myawesomesite", "tld_suffixes": [".com", ".org", ".net", ".io", ".dev", ".app"], "checkType": "FULL" } ``` ### Response Format **Text Response:** ``` Domain Availability Check Results: ✅ AVAILABLE DOMAINS: • example.com - $12.99 USD for 1 year (Definitive) • example.org - $8.99 USD for 2 years (Preliminary) ❌ UNAVAILABLE DOMAINS: • example.net - Not available - Domain already registered ``` **JSON Response (normalized fields):** ```json { "domains": [ { "domain_name": "example.com", "is_available": true, "price_dollars": 12.99, "currency_code": "USD", "is_definitive": true, "registration_period_months": 12 }, { "domain_name": "example.net", "is_available": false, "price_dollars": 0.00, "currency_code": "USD", "is_definitive": true, "registration_period_months": 12, "error_message": "Domain already registered" } ], "errors": [] } ``` ## Data Normalization ### Price Normalization - **Input**: GoDaddy API returns prices in micro-units (1/1,000,000 of currency) - **Output**: Converted to dollars with 2 decimal places - **Example**: `12000000` micro-units → `$12.00 USD` ### Period Normalization - **Storage**: Period stored in months for consistency - **Display**: Converted to years for user-friendly display - **Example**: `12 months` → `"1 year"`, `24 months` → `"2 years"` ### Field Naming Consistent, explicit field names: - `domain_name` (instead of `domain`) - `is_available` (instead of `available`) - `price_dollars` (instead of `price`) - `currency_code` (instead of `currency`) - `is_definitive` (instead of `definitive`) - `registration_period_months` (instead of `period`) - `error_message` (instead of `error`) ## API Integration This server integrates with GoDaddy OTE API: - **Base URL**: `https://api.ote-godaddy.com` - **Endpoint**: `GET /v1/domains/available?domain={domain}` - **Headers**: `Authorization: sso-key {key}:{secret}` - **Rate Limit**: 60 requests per minute ### Authentication Format ``` Authorization: sso-key your-key:your-secret ``` ## Error Handling The server handles various error conditions: - Missing API key - Invalid domains - API rate limits (429) - with retry guidance - Partial responses (203) - Authentication errors (401, 403) - Server errors (500) - Network timeouts ## Development ### Setup Development Environment ```bash # Clone and setup git clone <repository> cd mcp-free-domain uv add "mcp[cli]" # Run tests pytest # Start development server DOMAIN_API_KEY="test-key:test-secret" mcp dev domain_availability/server.py ``` ### Testing with MCP Inspector 1. Set your OTE credentials: `DOMAIN_API_KEY="your-key:your-secret"` 2. Run: `mcp dev domain_availability/server.py` 3. Open browser at `http://localhost:6274` 4. Use the session token displayed in terminal if prompted 5. Test the `check_domain_availability` tool ## License MIT License ## Support For issues and questions, please create an issue in the repository.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OriShmila/mcp-domain-availability'

If you have feedback or need assistance with the MCP directory API, please join our Discord server