npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

domain-search-mcp

v1.2.28

Published

Fast domain availability MCP server. RDAP/WHOIS availability with backend pricing (Porkbun) and smart suggestions.

Downloads

3,537

Readme

Domain Search MCP

npm downloads license node MCP Registry Glama Context7

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.

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

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):
    • Primary: RDAP
    • Fallback: WHOIS
    • GoDaddy public endpoint is used only to add premium/auction signals in search_domain
  • 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

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

Run locally:

npm start

Or via the CLI entrypoint:

npx domain-search-mcp

MCP Client Config (Claude Desktop example)

{
  "mcpServers": {
    "domain-search": {
      "command": "node",
      "args": ["/path/to/domain-search-mcp/dist/server.js"]
    }
  }
}

Tools

  • 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).
  • suggest_domains: Generate variations (prefix/suffix/hyphen).
  • suggest_domains_smart: AI-assisted suggestions using the semantic engine plus GoDaddy suggestions.
  • tld_info: TLD metadata and restrictions.
  • check_socials: Username availability across platforms.

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 keys:
    • https://porkbun.com/account/api
    • https://porkbun.com/api/json/v3/documentation
  • Namecheap keys (IP whitelist required):
    • https://ap.www.namecheap.com/settings/tools/apiaccess/
    • https://www.namecheap.com/support/api/intro/
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

Environment Variables

| Variable | Default | Description | |----------|---------|-------------| | PRICING_API_BASE_URL | - | Pricing backend base URL | | PRICING_API_TOKEN | - | Optional bearer token | | PRICING_API_TIMEOUT_MS | 2500 | Backend request timeout | | PRICING_API_MAX_QUOTES_SEARCH | 0 | Max pricing calls per search (0 = unlimited; backend rate limits apply) | | PRICING_API_MAX_QUOTES_BULK | 0 | Max pricing calls per bulk search (0 = unlimited; backend rate limits apply) | | PRICING_API_CONCURRENCY | 4 | Pricing request concurrency | | PORKBUN_API_KEY | - | Porkbun API key | | PORKBUN_API_SECRET | - | Porkbun API secret | | NAMECHEAP_API_KEY | - | Namecheap API key | | NAMECHEAP_API_USER | - | Namecheap username | | NAMECHEAP_CLIENT_IP | - | Namecheap IP whitelist | | OUTPUT_FORMAT | table | table, json, or both for tool output formatting | | LOG_LEVEL | info | Logging level | | CACHE_TTL_AVAILABILITY | 60 | Availability cache TTL (seconds) | | CACHE_TTL_PRICING | 3600 | Pricing cache TTL (seconds) | | CACHE_TTL_SEDO | 3600 | Sedo auctions feed cache TTL (seconds) | | CACHE_TTL_AFTERMARKET_NS | 300 | Nameserver lookup cache TTL (seconds) | | SEDO_FEED_ENABLED | true | Enable Sedo feed lookup for aftermarket hints | | SEDO_FEED_URL | https://sedo.com/txt/auctions_us.txt | Sedo public feed URL | | AFTERMARKET_NS_ENABLED | true | Enable nameserver-based aftermarket hints | | AFTERMARKET_NS_TIMEOUT_MS | 1500 | Nameserver lookup timeout (ms) |

Output Format

Tool responses are returned as Markdown tables by default. If you need raw JSON for programmatic use, set:

OUTPUT_FORMAT=json

Data Sources

| Source | Usage | Pricing | |--------|-------|---------| | Pricing API | Pricing + premium (Porkbun) | Yes (backend) | | Porkbun API | Availability + pricing | Yes (with keys) | | Namecheap API | Availability + pricing | Yes (with keys) | | RDAP | Primary availability | No | | WHOIS | Fallback availability | No | | GoDaddy public endpoint | Premium/auction signal for search_domain | No | | Sedo public feed | Aftermarket auction hints | No |

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_url before purchase.

Example (No API Keys)

search_domain("myproject", ["com", "io"])

myproject.com - available - price_first_year: null - source: rdap
myproject.io  - taken     - price_first_year: null - source: rdap

Development

npm run dev       # watch mode
npm test          # run Jest
npm run build     # compile to dist/

Release

See docs/RELEASE.md for the canary -> latest publish flow. Tags like v1.2.24 trigger GitHub Releases + npm publish via CI.

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).

Links

  • MCP Registry: https://registry.modelcontextprotocol.io
  • Glama page: https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp
  • Context7 index: https://context7.com/dorukardahan/domain-search-mcp
  • API reference: docs/API.md
  • Configuration: docs/CONFIGURATION.md
  • Workflows: docs/WORKFLOWS.md