
Domain Search Mcp
io.github.dorukardahanPublished by GitHub account dorukardahanv1.13.1Updated Nov 3, 2026
Naming engine with availability intelligence: score names, check domains, socials and registries.
Overview
Local MCP naming engine that scores model-generated name candidates and checks domain, social handle and npm availability.
- What you can do
- Generate and score names: two-phase naming engine with lane prompts, anti-slop scoring and ranking of candidates
- Check domains: single-name multi-TLD search, bulk checks up to 100 names, TLD metadata and restrictions
- Compare registrar pricing and detect premium or auction domains
- Check username availability across social platforms and package registries
- Suggest brandable names, analyze a local project or GitHub repo for naming ideas, and hunt expiring or investment-worthy domains
- Report AI inference and service health
- When to use it
- Useful when naming a project, product or brand and you want the assistant to generate candidates, rank them and confirm which domains and handles are still free. Also handy for bulk domain screening or quick registrar price comparison before registering.
- Requirements
- Runs locally via npx (Node.js) over stdio, or optionally as an HTTP/SSE server. Availability checks need no keys. Pricing needs either PRICING_API_BASE_URL (with optional PRICING_API_TOKEN) or Porkbun/Namecheap keys; Namecheap also requires an IP whitelist. Optional Redis and a self-hosted Qwen inference endpoint. Network access required.
Installation
In SourceWeft
- Open Domain Search Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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
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 (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
- Recommended:
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:
Option 2: From Source
Transport Options
stdio (Default)
For MCP clients like Claude Desktop, Cursor, VS Code - uses stdin/stdout:
HTTP/SSE (ChatGPT, Web Clients, LM Studio)
For ChatGPT Actions, web apps, and REST API clients:
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
- Start the HTTP server (see above)
- Expose via ngrok:
ngrok http 3000 - In ChatGPT, create a Custom GPT and add an Action
- Import the OpenAPI spec from
https://your-ngrok-url.ngrok-free.dev/openapi.json - Test the tools!
For production deployment, use a permanent domain with SSL instead of ngrok.
REST API Example:
MCP Client Config
Claude Code (.mcp.json in project root):
Claude Desktop (claude_desktop_config.json):
💡 Tip: Always use
@latestto 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 (
candidatespresent): scores + ranks candidates, then checks availability for the top 12 againsttargets.tlds/targets.platforms— omittargetsfor 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:
Phase 2 — resubmit the same arguments plus candidates:
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.
Optional BYOK (Local)
Used only if PRICING_API_BASE_URL is not set.
- Porkbun keys:
- Namecheap keys (IP whitelist required):
Redis Distributed Cache (Optional)
For horizontal scaling across multiple MCP instances, configure Redis:
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
AI Inference (bring your own endpoint)
AI-powered suggestions (suggest_domains_smart) use your own inference endpoint when configured. Point QWEN_INFERENCE_ENDPOINT at a llama.cpp/Qwen server you control. If it is unset, suggestions fall back to the built-in offline semantic engine (no external calls, no API keys needed).
Environment Variables
Output Format
Tool responses are returned as Markdown tables by default. If you need raw JSON for programmatic use, set:
Data Sources
Pricing Behavior
- Live price is attempted first for every available domain.
- If live quotes fail or are rate-limited, the result falls back to the catalog estimate and includes
price_note. - Always verify pricing via
price_check_urlbefore purchase.
Examples
Basic Search (No API Keys)
AI-Powered Suggestions
Bulk Check
Development
Release
See docs/RELEASE.md for the tag-triggered release flow. Version tags trigger
the GitHub Release, npm trusted publishing with provenance, and MCP Registry
publication through GitHub Actions.
Changelog
See CHANGELOG.md for release history.
Security Notes
- Do not commit API keys or
.mcpregistry_*files. - Without
PRICING_API_BASE_URL(or BYOK keys), pricing is not available (availability still works).
Upgrading
For npx Users
If you use npx domain-search-mcp (without @latest), npx may cache an old version.
Fix: Update your MCP config to use @latest:
Or clear the npx cache manually:
For Source/Git Users
Staying Updated
- Watch the repo: Click "Watch" → "Releases only" on GitHub to get notified of new versions.
- Check releases: See GitHub Releases for changelog and upgrade notes.
- npm page: npmjs.com/package/domain-search-mcp shows the latest version.
Architecture
For detailed system architecture diagrams, see docs/ARCHITECTURE.md:
- Transport layer (stdio vs HTTP/SSE)
- Tool execution flow
- Data source waterfall (RDAP → Pricing API → WHOIS)
- VPS deployment architecture
- AI suggestion flow
- MCP session lifecycle
Why This Tool?
FAQ
Q: Does this work without any API keys? A: Yes! Availability checking uses public RDAP and GoDaddy endpoints. Only pricing requires API keys.
Q: Which MCP clients are supported? A: Claude Desktop, Claude Code, VS Code, Cursor, Cline (stdio), and ChatGPT, LM Studio (HTTP/SSE).
Q: How accurate is premium domain detection? A: GoDaddy's public endpoint detects most premium and auction domains. Always verify on registrar checkout.
Q: Can I self-host the AI suggestions?
A: Yes! Set QWEN_INFERENCE_ENDPOINT to your llama.cpp server running the fine-tuned model.
Links
- npm: npmjs.com/package/domain-search-mcp
- MCP Registry: registry.modelcontextprotocol.io
- Glama: glama.ai/mcp/servers/@dorukardahan/domain-search-mcp
- Context7: context7.com/dorukardahan/domain-search-mcp
Documentation
- Architecture - System design and data flow
- API Reference - Tool schemas and responses
- Configuration - Environment variables
- Workflows - Common usage patterns
Source: README.md at commit d014d21
Tools
0Version history
1- v1.13.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts