Fast, local-first domain availability checks for MCP clients. Works with zero configuration using public RDAP/WHOIS, and optionally enriches results with registrar pricing via a backend you control. π v1.10.0: GoDaddy public endpoint integration! Enhanced fallback chain (RDAP β GoDaddy β WHOIS) with premium/auction domain detection. Circuit breaker pattern ensures resilience. π€ v1.9.0+: AI-power
Add this skill
npx mdskills install dorukardahan/domain-search-mcpComprehensive domain search with zero-config RDAP/WHOIS, AI suggestions, and optional pricing integrations
1# Domain Search MCP23[](https://www.npmjs.com/package/domain-search-mcp)4[](https://www.npmjs.com/package/domain-search-mcp)5[](LICENSE)6[](https://www.npmjs.com/package/domain-search-mcp)7[](https://registry.modelcontextprotocol.io)8[](https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp)9[](https://context7.com/dorukardahan/domain-search-mcp)1011Fast, local-first domain availability checks for MCP clients. Works with zero configuration using public RDAP/WHOIS, and optionally enriches results with registrar pricing via a backend you control.1213**π v1.10.0**: GoDaddy public endpoint integration! Enhanced fallback chain (RDAP β GoDaddy β WHOIS) with premium/auction domain detection. Circuit breaker pattern ensures resilience.1415**π€ v1.9.0+**: AI-powered domain suggestions work out of the box! No API keys needed - `suggest_domains_smart` uses our public fine-tuned Qwen 7B-DPO model. Plus: Redis distributed caching and `/metrics` endpoint for observability.1617Built on the [Model Context Protocol](https://modelcontextprotocol.io) for Claude, Codex, VS Code, Cursor, Cline, and other MCP-compatible clients.1819## Features2021| Feature | Description |22|---------|-------------|23| π **Multi-TLD Search** | Check one name across .com, .io, .dev, .ai and 500+ TLDs |24| π¦ **Bulk Check** | Validate up to 100 domain names in a single call |25| π **Premium Detection** | Identify premium and auction domains via GoDaddy |26| π€ **AI Suggestions** | Generate brandable names with fine-tuned Qwen 7B-DPO |27| π° **Price Comparison** | Compare pricing across Porkbun, Namecheap |28| π **Social Handle Check** | Verify username availability on GitHub, Twitter, etc. |29| π **Dual Transport** | Works via stdio (Claude) or HTTP/SSE (ChatGPT Actions) |30| β‘ **Zero Config** | Works instantly - no API keys required for availability |3132## What It Does3334- Check a single name across multiple TLDs.35- Bulk-check up to 100 names for one TLD.36- Compare registrar pricing (uses backend when configured).37- Suggest names and validate social handles.38- Detect premium/auction signals for `search_domain`.3940## How It Works4142Availability and pricing are intentionally separated:4344```45Availability Chain (zero-config):46βββββββββββ βββββββββββ βββββββββββ47β RDAP β βββΊ β GoDaddy β βββΊ β WHOIS β48β (fast) β β(premium)β β(fallbackβ49βββββββββββ βββββββββββ βββββββββββ50```5152- **Availability** (default, no keys needed):53 - **RDAP**: Primary source - fast, unlimited, public registry data54 - **GoDaddy**: Secondary - adds premium/auction detection (30 req/min, circuit breaker protected)55 - **WHOIS**: Last resort fallback for edge cases56- **Pricing** (optional):57 - Recommended: `PRICING_API_BASE_URL` (backend with Porkbun keys)58 - Optional BYOK: Porkbun/Namecheap only when backend is not configured5960This keeps the server zero-config while letting power users enable pricing.6162## Pricing Verification6364Responses include `price_check_url` (registrar checkout/search link) and may include65`price_note` when a price is estimated. Always verify the final price on the registrar66checkout page before purchase.6768If an auction/premium signal is detected, results include an `aftermarket` block with69links to marketplace pages when available. Taken domains may include Sedo auction70hints (public feed) and nameserver-based marketplace hints (Sedo/Dan/Afternic).7172## Quick Start7374### Option 1: npx (Recommended)7576No installation needed - run directly:7778```bash79npx -y domain-search-mcp@latest80```8182### Option 2: From Source8384```bash85git clone https://github.com/dorukardahan/domain-search-mcp.git86cd domain-search-mcp87npm install88npm run build89npm start90```9192## Transport Options9394### stdio (Default)9596For MCP clients like Claude Desktop, Cursor, VS Code - uses stdin/stdout:9798```bash99npx -y domain-search-mcp@latest100```101102### HTTP/SSE (ChatGPT, Web Clients, LM Studio)103104For ChatGPT Actions, web apps, and REST API clients:105106```bash107# Start HTTP server on port 3000108npx -y domain-search-mcp@latest --http109110# Or with custom port111MCP_PORT=8080 npx -y domain-search-mcp@latest --http112```113114**Endpoints:**115- `/mcp` - MCP protocol (POST for messages, GET for SSE stream)116- `/api/tools/*` - REST API for each tool (ChatGPT Actions compatible)117- `/openapi.json` - OpenAPI 3.1 specification118- `/health` - Health check119- `/metrics` - Prometheus-compatible metrics (cache stats, request counts, AI inference health)120121### ChatGPT Custom GPT Integration1221231. Start the HTTP server (see above)1242. Expose via ngrok: `ngrok http 3000`1253. In ChatGPT, create a Custom GPT and add an Action1264. Import the OpenAPI spec from `https://your-ngrok-url.ngrok-free.dev/openapi.json`1275. Test the tools!128129For production deployment, use a permanent domain with SSL instead of ngrok.130131**REST API Example:**132```bash133curl -X POST https://your-domain/api/tools/search_domain \134 -H "Content-Type: application/json" \135 -d '{"domain_name":"vibecoding"}'136```137138## MCP Client Config139140**Claude Code** (`.mcp.json` in project root):141```json142{143 "mcpServers": {144 "domain-search": {145 "type": "stdio",146 "command": "npx",147 "args": ["-y", "domain-search-mcp@latest"]148 }149 }150}151```152153**Claude Desktop** (`claude_desktop_config.json`):154```json155{156 "mcpServers": {157 "domain-search": {158 "command": "npx",159 "args": ["-y", "domain-search-mcp@latest"]160 }161 }162}163```164165> **π‘ Tip**: Always use `@latest` to ensure you're running the newest version with all features.166167## Tools168169### Core Search170- `search_domain`: Check a name across multiple TLDs, adds premium/auction signals.171- `bulk_search`: Check up to 100 names for a single TLD.172- `compare_registrars`: Compare pricing across registrars (backend when configured).173174### AI-Powered Suggestions175- `suggest_domains`: Generate variations (prefix/suffix/hyphen).176- `suggest_domains_smart`: **π€ AI-powered** brandable name generation using fine-tuned Qwen 7B-DPO. Zero-config - works instantly!177- `analyze_project`: Scan local project or GitHub repo to extract context and suggest matching domain names.178179### Domain Investment180- `hunt_domains`: Find valuable domains for investment - scans Sedo auctions, generates patterns, calculates investment scores.181- `expiring_domains`: Monitor domains approaching expiration (requires federated negative cache).182183### Utilities184- `tld_info`: TLD metadata and restrictions.185- `check_socials`: Username availability across platforms.186- `ai_health`: Check status of AI inference services (VPS Qwen, circuit breakers, adaptive concurrency).187188## Configuration189190### Pricing Backend (Recommended)191192Set a backend URL that owns registrar keys (Porkbun). The MCP will call193`/api/quote` and `/api/compare` on that backend for pricing.194195```bash196PRICING_API_BASE_URL=https://your-backend.example.com197PRICING_API_TOKEN=optional_bearer_token198```199200### Optional BYOK (Local)201202Used only if `PRICING_API_BASE_URL` is not set.203204- Porkbun keys:205 - https://porkbun.com/account/api206 - https://porkbun.com/api/json/v3/documentation207- Namecheap keys (IP whitelist required):208 - https://ap.www.namecheap.com/settings/tools/apiaccess/209 - https://www.namecheap.com/support/api/intro/210211```bash212PORKBUN_API_KEY=pk1_your_api_key213PORKBUN_API_SECRET=sk1_your_secret214NAMECHEAP_API_KEY=your_api_key215NAMECHEAP_API_USER=your_username216NAMECHEAP_CLIENT_IP=your_whitelisted_ip217```218219### Redis Distributed Cache (Optional)220221For horizontal scaling across multiple MCP instances, configure Redis:222223```bash224REDIS_URL=redis://:password@host:6379225```226227Without Redis, the server uses in-memory caching (works fine for single instances). Redis enables:228- Shared cache across multiple server instances229- Persistent cache surviving restarts230- Better cache hit rates in load-balanced deployments231232### AI Inference (Zero-Config)233234AI-powered suggestions (`suggest_domains_smart`) work out of the box using our public VPS running fine-tuned Qwen 7B-DPO. No API keys needed!235236For self-hosted setups, override the endpoint:237```bash238QWEN_INFERENCE_ENDPOINT=http://your-server:8000239QWEN_API_KEY=optional_if_secured240```241242### Environment Variables243244| Variable | Default | Description |245|----------|---------|-------------|246| `MCP_TRANSPORT` | stdio | Transport mode: `stdio` or `http` |247| `MCP_PORT` | 3000 | HTTP server port (when using HTTP transport) |248| `MCP_HOST` | 0.0.0.0 | HTTP server bind address |249| `CORS_ORIGINS` | * | Allowed CORS origins (comma-separated) |250| `PRICING_API_BASE_URL` | - | Pricing backend base URL |251| `PRICING_API_TOKEN` | - | Optional bearer token |252| `PRICING_API_TIMEOUT_MS` | 2500 | Backend request timeout |253| `PRICING_API_MAX_QUOTES_SEARCH` | 0 | Max pricing calls per search (0 = unlimited; backend rate limits apply) |254| `PRICING_API_MAX_QUOTES_BULK` | 0 | Max pricing calls per bulk search (0 = unlimited; backend rate limits apply) |255| `PRICING_API_CONCURRENCY` | 4 | Pricing request concurrency |256| `PORKBUN_API_KEY` | - | Porkbun API key |257| `PORKBUN_API_SECRET` | - | Porkbun API secret |258| `NAMECHEAP_API_KEY` | - | Namecheap API key |259| `NAMECHEAP_API_USER` | - | Namecheap username |260| `NAMECHEAP_CLIENT_IP` | - | Namecheap IP whitelist |261| `OUTPUT_FORMAT` | table | `table`, `json`, or `both` for tool output formatting |262| `LOG_LEVEL` | info | Logging level |263| `CACHE_TTL_AVAILABILITY` | 60 | Availability cache TTL (seconds) |264| `CACHE_TTL_PRICING` | 3600 | Pricing cache TTL (seconds) |265| `CACHE_TTL_SEDO` | 3600 | Sedo auctions feed cache TTL (seconds) |266| `CACHE_TTL_AFTERMARKET_NS` | 300 | Nameserver lookup cache TTL (seconds) |267| `SEDO_FEED_ENABLED` | true | Enable Sedo feed lookup for aftermarket hints |268| `SEDO_FEED_URL` | https://sedo.com/txt/auctions_us.txt | Sedo public feed URL |269| `AFTERMARKET_NS_ENABLED` | true | Enable nameserver-based aftermarket hints |270| `AFTERMARKET_NS_TIMEOUT_MS` | 1500 | Nameserver lookup timeout (ms) |271| `REDIS_URL` | - | Redis connection URL for distributed caching (e.g., `redis://:password@host:6379`) |272| `QWEN_INFERENCE_ENDPOINT` | (public VPS) | Override AI inference endpoint for self-hosted setups |273| `QWEN_TIMEOUT_MS` | 15000 | AI inference request timeout |274| `QWEN_MAX_RETRIES` | 2 | Retry count for AI inference failures |275276### Output Format277278Tool responses are returned as **Markdown tables by default**. If you need raw279JSON for programmatic use, set:280281```bash282OUTPUT_FORMAT=json283```284285## Data Sources286287| Source | Position in Chain | Usage | API Keys |288|--------|-------------------|-------|----------|289| **RDAP** | 1st (Primary) | Fast availability check | Not needed |290| **GoDaddy** | 2nd (Fallback) | Premium/auction detection | Not needed |291| **WHOIS** | 3rd (Last resort) | Legacy availability | Not needed |292| Pricing API | Parallel | Live pricing via backend | Backend token |293| Porkbun API | Parallel (BYOK) | Availability + pricing | API key + secret |294| Namecheap API | Parallel (BYOK) | Availability + pricing | API key + IP whitelist |295| Sedo Feed | Enrichment | Aftermarket auction hints | Not needed |296297## Pricing Behavior298299- Live price is attempted first for every **available** domain.300- If live quotes fail or are rate-limited, the result falls back to the catalog estimate and includes `price_note`.301- Always verify pricing via `price_check_url` before purchase.302303## Examples304305### Basic Search (No API Keys)306307```308search_domain("myproject", ["com", "io", "dev"])309310βββββββββββββββββββ¬ββββββββββββ¬ββββββββββ¬βββββββββ311β Domain β Available β Premium β Source β312βββββββββββββββββββΌββββββββββββΌββββββββββΌβββββββββ€313β myproject.com β β β No β rdap β314β myproject.io β β β - β rdap β315β myproject.dev β β β Yes β godaddyβ316βββββββββββββββββββ΄ββββββββββββ΄ββββββββββ΄βββββββββ317```318319### AI-Powered Suggestions320321```322suggest_domains_smart("coffee shop in seattle", { style: "brandable" })323324β seattlebrew.com, pugetperk.io, raincitycoffee.co, cascadiacafe.com325```326327### Bulk Check328329```330bulk_search(["startup", "launch", "begin", "init"], "io")331332β Checks startup.io, launch.io, begin.io, init.io in parallel333```334335## Development336337```bash338npm run dev # watch mode339npm test # run Jest340npm run build # compile to dist/341```342343## Release344345See `docs/RELEASE.md` for the canary -> latest publish flow. Tags like `v1.2.24`346trigger GitHub Releases + npm publish via CI.347348## Changelog349350See `CHANGELOG.md` for release history.351352## Security Notes353354- Do not commit API keys or `.mcpregistry_*` files.355- Without `PRICING_API_BASE_URL` (or BYOK keys), pricing is not available (availability still works).356357## Upgrading358359### For npx Users360361If you use `npx domain-search-mcp` (without `@latest`), npx may cache an old version.362363**Fix**: Update your MCP config to use `@latest`:364```json365"args": ["-y", "domain-search-mcp@latest"]366```367368Or clear the npx cache manually:369```bash370npx clear-npx-cache # then restart your MCP client371```372373### For Source/Git Users374375```bash376cd domain-search-mcp377git pull origin main378npm install379npm run build380```381382### Staying Updated383384- **Watch the repo**: Click "Watch" β "Releases only" on [GitHub](https://github.com/dorukardahan/domain-search-mcp) to get notified of new versions.385- **Check releases**: See [GitHub Releases](https://github.com/dorukardahan/domain-search-mcp/releases) for changelog and upgrade notes.386- **npm page**: [npmjs.com/package/domain-search-mcp](https://www.npmjs.com/package/domain-search-mcp) shows the latest version.387388## Architecture389390For detailed system architecture diagrams, see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md):391392- Transport layer (stdio vs HTTP/SSE)393- Tool execution flow394- Data source waterfall (RDAP β Pricing API β WHOIS)395- VPS deployment architecture396- AI suggestion flow397- MCP session lifecycle398399## Why This Tool?400401| Problem | Solution |402|---------|----------|403| Domain APIs require signup/keys | RDAP + GoDaddy = zero-config availability |404| Premium domains show as "available" | GoDaddy detects premium/auction status |405| Hard to check multiple TLDs | Single call checks .com, .io, .dev, etc. |406| No AI integration for naming | Built-in Qwen 7B for brandable suggestions |407| Only works with Claude | HTTP transport supports ChatGPT, LM Studio |408409## FAQ410411**Q: Does this work without any API keys?**412A: Yes! Availability checking uses public RDAP and GoDaddy endpoints. Only pricing requires API keys.413414**Q: Which MCP clients are supported?**415A: Claude Desktop, Claude Code, VS Code, Cursor, Cline (stdio), and ChatGPT, LM Studio (HTTP/SSE).416417**Q: How accurate is premium domain detection?**418A: GoDaddy's public endpoint detects most premium and auction domains. Always verify on registrar checkout.419420**Q: Can I self-host the AI suggestions?**421A: Yes! Set `QWEN_INFERENCE_ENDPOINT` to your llama.cpp server running the fine-tuned model.422423## Links424425- **npm**: [npmjs.com/package/domain-search-mcp](https://www.npmjs.com/package/domain-search-mcp)426- **MCP Registry**: [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io)427- **Glama**: [glama.ai/mcp/servers/@dorukardahan/domain-search-mcp](https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp)428- **Context7**: [context7.com/dorukardahan/domain-search-mcp](https://context7.com/dorukardahan/domain-search-mcp)429430### Documentation431432- [Architecture](docs/ARCHITECTURE.md) - System design and data flow433- [API Reference](docs/API.md) - Tool schemas and responses434- [Configuration](docs/CONFIGURATION.md) - Environment variables435- [Workflows](docs/WORKFLOWS.md) - Common usage patterns436
Full transparency β inspect the skill content before installing.