Back to MCP Servers

Domain Search

Fast domain availability aggregator with pricing. Checks Porkbun, Namecheap, GoDaddy, RDAP & WHOIS. Includes bulk search, registrar comparison, AI-powered suggestions, and social media handle checking.

search-data-extractiongoai
By dorukardahan
257Updated 1 week agoTypeScriptMIT

Installation

npx -y domain-search-mcp

Configuration

{
  "mcpServers": {
    "domain-search-mcp": {
      "command": "npx",
      "args": ["-y", "domain-search-mcp"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

Domain Search MCP

npm downloads license node MCP Registry Glama Context7

Naming engine with availability intelligence β€” an MCP server that scores the names your model generates and runs availability checks against domains, socials, and package registries. Works with zero configuration using public RDAP/WHOIS, and optionally enriches results with registrar pricing via a backend you control.

πŸ†• v1.12.0: name_project β€” a two-phase naming engine. Call it once to get generation instructions for your model, call it again with candidates[] to get anti-slop scoring, ranking, and live availability checks across domains, socials, and npm. See name_project below.

πŸ†• 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-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.

Built on the Model Context Protocol for Claude, Codex, VS Code, Cursor, Cline, and other MCP-compatible clients.

Features

FeatureDescription
πŸ” Multi-TLD SearchCheck one name across .com, .io, .dev, .ai and 500+ TLDs
πŸ“¦ Bulk CheckValidate up to 100 domain names in a single call
πŸ’Ž Premium DetectionIdentify premium and auction domains via GoDaddy
πŸ€– AI SuggestionsGenerate brandable names with fine-tuned Qwen 7B-DPO
πŸ’° Price ComparisonCompare pricing across Porkbun, Namecheap
🌐 Social Handle CheckVerify username availability on GitHub, Twitter, etc.
πŸ”Œ Dual TransportWorks via stdio (Claude) or HTTP/SSE (ChatGPT Actions)
⚑ Zero ConfigWorks instantly - no API keys required for availability

What It Does

  • Check a single name across multiple TLDs.
  • Bulk-check up to 100 names for one TLD.
  • Compare registrar pricing (uses backend when configured).
  • Suggest names and validate social handles.
  • Detect premium/auction signals for search_domain.

How It Works

Availability and pricing are intentionally separated:

Availability Chain (zero-config):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  RDAP   β”‚ ──► β”‚ GoDaddy β”‚ ──► β”‚  WHOIS  β”‚
β”‚ (fast)  β”‚     β”‚(premium)β”‚     β”‚(fallbackβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Availability (default, no keys needed):
    • RDAP: Primary source - fast, unlimited, public registry data
    • GoDaddy: Secondary - adds premium/auction detection (30 req/min, circuit breaker protected)
    • WHOIS: Last resort fallback for edge cases
  • Pricing (optional):
    • Recommended: PRICING_API_BASE_URL (backend with Porkbun keys)
    • Optional BYOK: Porkbun/Namecheap only when backend is not configured

This keeps the server zero-config while letting power users enable pricing.

Pricing Verification

Responses include price_check_url (registrar checkout/search link) and may include price_note when a price is estimated. Always verify the final price on the registrar checkout page before purchase.

If an auction/premium signal is detected, results include an aftermarket block with links to marketplace pages when available. Taken domains may include Sedo auction hints (public feed) and nameserver-based marketplace hints (Sedo/Dan/Afternic).

Quick Start

Option 1: npx (Recommended)

No installation needed - run directly:

npx -y domain-search-mcp@latest

Option 2: From Source

git clone https://github.com/dorukardahan/domain-search-mcp.git
cd domain-search-mcp
npm install
npm run build
npm start

Transport Options

stdio (Default)

For MCP clients like Claude Desktop, Cursor, VS Code - uses stdin/stdout:

npx -y domain-search-mcp@latest

HTTP/SSE (ChatGPT, Web Clients, LM Studio)

For ChatGPT Actions, web apps, and REST API clients:

# Start HTTP server on port 3000
npx -y domain-search-mcp@latest --http

# Or with custom port
MCP_PORT=8080 npx -y domain-search-mcp@latest --http

Endpoints:

  • /mcp - MCP protocol (POST for messages, GET for SSE stream)
  • /api/tools/* - REST API for each tool (ChatGPT Actions compatible)
  • /openapi.json - OpenAPI 3.1 specification
  • /health - Health check
  • /metrics - Prometheus-compatible metrics (cache stats, request counts, AI inference health)

ChatGPT Custom GPT Integration

  1. Start the HTTP server (see above)
  2. Expose via ngrok: ngrok http 3000
  3. In ChatGPT, create a Custom GPT and add an Action
  4. Import the OpenAPI spec from https://your-ngrok-url.ngrok-free.dev/openapi.json
  5. Test the tools!

For production deployment, use a permanent domain with SSL instead of ngrok.

REST API Example:

curl -X POST https://your-domain/api/tools/search_domain \
  -H "Content-Type: application/json" \
  -d '{"domain_name":"vibecoding"}'

MCP Client Config

Claude Code (.mcp.json in project root):

{
  "mcpServers": {
    "domain-search": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "domain-search-mcp@latest"]
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "domain-search": {
      "command": "npx",
      "args": ["-y", "domain-search-mcp@latest"]
    }
  }
}

πŸ’‘ Tip: Always use @latest to ensure you're running the newest version with all features.

Tools

All 12 tools listed below are exposed to MCP clients by default. The 6-tool slim profile (name_project, search_domain, bulk_search, check_socials, tld_info, ai_health) is opt-in β€” set SLIM_TOOLS=true if you want a sharper tool-selection surface for simpler client integrations (see Environment Variables). A future 2.0 release may flip the default to slim.

ADVANCED_TOOLS=true is a deprecated alias that forces the full surface and overrides SLIM_TOOLS; it's a harmless no-op today since full is already the default.

name_project

Flagship two-phase naming engine. Call it once to get lane-by-lane generation instructions for your model; call it again with candidates[] to get anti-slop scoring, ranking, and live availability checks across domains, socials, and npm.

  • Modes: brief (describe what you're naming), auto (analyze the current workspace), from_name (find domains/variants for a name you already like), from_domain (fit a project/brand to a domain you found).
  • Phase 1 (no candidates): returns generation instructions + lane prompts.
  • Phase 2 (candidates present): scores + ranks candidates, then checks availability for the top 12 against targets.tlds / targets.platforms β€” omit targets for pure naming with no availability calls.

Scores are heuristic rankings for comparing candidates against each other β€” not objective, universal brandability truth. Availability results reflect a single source checked at one moment in time; re-verify before you register or rely on anything.

Phase 1 β€” call with no candidates:

{"mode": "brief", "brief": "an MCP naming engine"}
Brief: an MCP naming engine

Now generate between 30 and 50 name candidates spread across these lanes:
- [evocative] Real words borrowed for their feeling, not their meaning (like Slack, Notion, Bolt). Single dictionary words preferred.
- [invented] Coined words that do not exist but sound like they could (like Zapier, Klarna). Must be pronounceable on first read.
- [compound] Two short real words fused (like Facebook, Snapchat). Both halves must stay readable; no glue letters.
- [premium] Short, expensive-feeling names: 4-7 letters, strong single or double syllable (like Stripe, Vercel, Arc).

Rules: single words or tight compounds, no taglines, no explanations yet. Then call name_project again with the SAME arguments plus candidates:[...] to get scoring and availability.

Phase 2 β€” resubmit the same arguments plus candidates:

{"mode": "brief", "brief": "an MCP naming engine", "candidates": ["Nexify", "Corda"]}
| Name | Score | Verdict | Badges | Why |
| --- | --- | --- | --- | --- |
| Corda | 97 strong | - | - | no AI-slop patterns; clean pronunciation and typing |
| Nexify | 60 middling | - | - | slop: overused prefix "nex-"; slop: overused suffix "-ify" |
2 candidates received, 2 passed constraints, top 2 returned.
No availability-check targets - pure naming mode.

Badges: tldβœ“ free to register, tld$ for sale (aftermarket/premium - registered or priced, not free to register), tldβœ— taken, tld? unknown. ccTLD checks (.ai / .io / .sh / .ac) are cross-checked against native WHOIS/DNS ground truth, not taken on RDAP's word alone.

See docs/API.md for the full parameter/response schema.

Core Search

  • search_domain: Check a name across multiple TLDs, adds premium/auction signals.
  • bulk_search: Check up to 100 names for a single TLD.
  • compare_registrars: Compare pricing across registrars (backend when configured).

AI-Powered Suggestions

  • suggest_domains: Generate variations (prefix/suffix/hyphen).
  • suggest_domains_smart: πŸ€– AI-powered brandable name generation using fine-tuned Qwen 7B-DPO. Zero-config - works instantly!
  • analyze_project: Scan local project or GitHub repo to extract context and suggest matching domain names.

Domain Investment

  • hunt_domains: Find valuable domains for investment - scans Sedo auctions, generates patterns, calculates investment scores.
  • expiring_domains: Monitor domains approaching expiration (requires federated negative cache).

Utilities

  • tld_info: TLD metadata and restrictions.
  • check_socials: Username availability across platforms.
  • ai_health: Check status of AI inference services (VPS Qwen, circuit breakers, adaptive concurrency).

Configuration

Pricing Backend (Recommended)

Set a backend URL that owns registrar keys (Porkbun). The MCP will call /api/quote and /api/compare on that backend for pricing.

PRICING_API_BASE_URL=https://your-backend.example.com
PRICING_API_TOKEN=optional_bearer_token

Optional BYOK (Local)

Used only if PRICING_API_BASE_URL is not set.

PORKBUN_API_KEY=pk1_your_api_key
PORKBUN_API_SECRET=sk1_your_secret
NAMECHEAP_API_KEY=your_api_key
NAMECHEAP_API_USER=your_username
NAMECHEAP_CLIENT_IP=your_whitelisted_ip

Redis Distributed Cache (Optional)

For horizontal scaling across multiple MCP instances, configure Redis:

REDIS_URL=redis://:password@host:6379

Without Redis, the server uses in-memory caching (works fine for single instances). Redis enables:

  • Shared cache across multiple server instances
  • Persistent cache surviving restarts
  • Better cache hit rates in load-balanced deployments

…

View source on GitHub