Domain Search MCP
Fast domain availability checker that searches across multiple registrars (Porkbun, Namecheap) and protocols (RDAP, WHOIS) to find available domains, compare pricing, get suggestions, and check social media username availability.
README
Domain Search MCP
<a href="https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp/badge" alt="Domain Search MCP on Glama" /> </a>
Fast domain availability aggregator for AI assistants. Check domain availability across Porkbun, Namecheap, RDAP, and WHOIS. Compare pricing. Get suggestions.
Built with the Model Context Protocol (MCP) for seamless integration with Claude Desktop, Cursor, Cline, and other AI tools.
Get Started in 60 Seconds
1. Install
# Clone the repository
git clone https://github.com/dorukardahan/domain-search-mcp.git
cd domain-search-mcp
# Install dependencies
npm install
# Build
npm run build
2. Configure Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):
{
"mcpServers": {
"domain-search": {
"command": "node",
"args": ["/path/to/domain-search-mcp/dist/server.js"]
}
}
}
3. Start Searching
Open Claude Desktop and ask:
"Check if vibecoding is available as a domain"
Claude will use the MCP server to search .com, .io, and .dev by default:
vibecoding.com - Available - $8.95/year (Porkbun)
vibecoding.io - Available - $29.88/year (Porkbun)
vibecoding.dev - Available - $10.18/year (Porkbun)
ā
3 domains available! Best price: vibecoding.com at $8.95/year
š” .com is the classic, universal choice ā trusted worldwide
š” .io is popular with tech startups and SaaS products
Features
6 Powerful Tools
| Tool | What it does |
|---|---|
| search_domain | Check availability across multiple TLDs with pricing |
| bulk_search | Check up to 100 domains at once |
| compare_registrars | Find the best price across registrars |
| suggest_domains | Get available variations when your name is taken |
| tld_info | Learn about TLDs, restrictions, and typical pricing |
| check_socials | Verify if usernames are available on GitHub, Twitter, Instagram |
Works Without API Keys
The server uses RDAP and WHOIS as fallbacks, so you can start using it immediately without any API keys. However, for pricing information and faster results, we recommend configuring at least Porkbun:
# Copy the example environment file
cp .env.example .env
# Edit and add your keys
nano .env
Supported Registrars
| Registrar | API Type | Pricing | Notes |
|---|---|---|---|
| Porkbun | JSON | Free | Fast, includes WHOIS privacy |
| Namecheap | XML | Free | Requires IP whitelist |
Fallback Protocols
| Protocol | Speed | Pricing | Authentication |
|---|---|---|---|
| RDAP | Fast | No | None required |
| WHOIS | Slow | No | None required |
Tool Examples
search_domain
Check if a domain is available across multiple TLDs:
// Input
{
"domain_name": "vibecoding",
"tlds": ["com", "io", "dev"]
}
// Output
{
"results": [
{
"domain": "vibecoding.com",
"available": true,
"price_first_year": 8.95,
"price_renewal": 8.95,
"privacy_included": true,
"registrar": "porkbun",
"source": "porkbun_api"
},
// ... more results
],
"insights": [
"ā
3 domains available! Best price: vibecoding.com at $8.95/year",
"š” .com is the classic, universal choice ā trusted worldwide"
],
"next_steps": [
"Check social handle availability (GitHub, X, Instagram)",
"Register vibecoding.com at porkbun to secure it"
]
}
bulk_search
Check many domains at once:
// Input
{
"domains": ["vibecoding", "coolstartup", "myawesomeapp"],
"tld": "io"
}
// Output
{
"results": [/* array of domain results */],
"summary": {
"total": 3,
"available": 2,
"taken": 1,
"errors": 0
},
"insights": [
"ā
2 of 3 domains available",
"š° Best price: vibecoding.io at $29.88/year"
]
}
compare_registrars
Find the best deal:
// Input
{
"domain": "vibecoding",
"tld": "com",
"registrars": ["porkbun", "namecheap"]
}
// Output
{
"domain": "vibecoding.com",
"what_happened": "Compared pricing across 2 registrars",
"best_first_year": { "registrar": "namecheap", "price": 8.88 },
"best_renewal": { "registrar": "porkbun", "price": 8.95 },
"recommendation": "Namecheap for first year ($0.07 savings), Porkbun for renewal stability"
}
suggest_domains
Get variations when your preferred name is taken:
// Input
{
"base_name": "vibecoding",
"tld": "com",
"max_suggestions": 5
}
// Output
{
"suggestions": [
{ "domain": "getvibecoding.com", "price_first_year": 8.95 },
{ "domain": "vibecodingapp.com", "price_first_year": 8.95 },
{ "domain": "tryvibecoding.com", "price_first_year": 8.95 }
],
"insights": [
"ā
Found 5 available variations",
"ā Top suggestion: getvibecoding.com ($8.95/year)"
]
}
tld_info
Learn about a TLD:
// Input
{
"tld": "dev"
}
// Output
{
"tld": "dev",
"description": "Developer - for software developers and their projects",
"typical_use": "Developer portfolios, tools, documentation sites",
"price_range": { "min": 10.18, "max": 19.99, "currency": "USD" },
"restrictions": ["Requires HTTPS (HSTS preloaded)"],
"popularity": "medium",
"recommendation": "Ideal for developers and tech portfolios (requires HTTPS)"
}
check_socials
Verify username availability:
// Input
{
"name": "vibecoding",
"platforms": ["github", "twitter", "instagram"]
}
// Output
{
"name": "vibecoding",
"results": [
{ "platform": "github", "available": true, "confidence": "high" },
{ "platform": "twitter", "available": false, "confidence": "medium" },
{ "platform": "instagram", "available": true, "confidence": "low" }
],
"insights": [
"ā
vibecoding is available on: github",
"ā vibecoding is taken on: twitter",
"ā ļø Could not reliably check: instagram (check manually)"
]
}
Configuration
Environment Variables
Create a .env file based on .env.example:
# Porkbun API (optional, but recommended for pricing)
# Get your free key at: https://porkbun.com/account/api
PORKBUN_API_KEY=your_api_key_here
PORKBUN_API_SECRET=your_api_secret_here
# Namecheap API (optional, requires IP whitelist)
NAMECHEAP_API_KEY=your_api_key_here
NAMECHEAP_API_USER=your_username_here
# Logging
LOG_LEVEL=info # debug | info | warn | error
# Cache TTLs (in seconds)
CACHE_TTL_AVAILABILITY=300 # 5 minutes
CACHE_TTL_PRICING=3600 # 1 hour
# Rate limiting
RATE_LIMIT_PER_MINUTE=60
# TLD restrictions (comma-separated)
ALLOWED_TLDS=com,io,dev,app,co,net,org,xyz,ai,sh,me,cc
DENY_TLDS=localhost,internal,test,local
IDE Integration
Cursor
Add to .cursor/mcp.json:
{
"servers": {
"domain-search": {
"command": "node",
"args": ["/path/to/domain-search-mcp/dist/server.js"]
}
}
}
Cline
Add to your Cline settings to enable MCP servers.
Development
Setup
# Install dependencies
npm install
# Run in development mode (hot reload)
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Run tests with coverage
npm run coverage
Project Structure
domain-search-mcp/
āāā src/
ā āāā server.ts # MCP server entry point
ā āāā config.ts # Environment configuration
ā āāā types.ts # TypeScript interfaces
ā āāā tools/ # MCP tool implementations
ā ā āāā search_domain.ts
ā ā āāā bulk_search.ts
ā ā āāā compare_registrars.ts
ā ā āāā suggest_domains.ts
ā ā āāā tld_info.ts
ā ā āāā check_socials.ts
ā āāā registrars/ # Registrar adapters
ā ā āāā base.ts
ā ā āāā porkbun.ts
ā ā āāā namecheap.ts
ā āāā fallbacks/ # RDAP and WHOIS fallbacks
ā ā āāā rdap.ts
ā ā āāā whois.ts
ā āāā services/ # Business logic
ā ā āāā domain-search.ts
ā āāā utils/ # Utilities
ā āāā logger.ts
ā āāā cache.ts
ā āāā errors.ts
ā āāā validators.ts
āāā tests/
ā āāā unit/
ā āāā integration/
āāā examples/
āāā package.json
āāā tsconfig.json
āāā README.md
Error Handling
The server provides user-friendly error messages with suggested actions:
{
"error": true,
"code": "RATE_LIMIT",
"message": "Too many requests to porkbun. Please slow down.",
"retryable": true,
"suggestedAction": "Wait 30 seconds before trying again."
}
Error Codes
| Code | Description | Retryable |
|---|---|---|
INVALID_DOMAIN |
Domain name format is invalid | No |
UNSUPPORTED_TLD |
TLD is not supported | No |
RATE_LIMIT |
Too many requests | Yes |
AUTH_ERROR |
API credentials invalid | No |
REGISTRAR_API_ERROR |
Registrar API failed | Depends |
NO_SOURCE_AVAILABLE |
All sources failed | Yes |
TIMEOUT |
Request timed out | Yes |
Security
- API keys are never logged (automatic secret masking)
- Structured JSON logging for audit trails
- No PII stored or logged
- Rate limiting to prevent abuse
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
License
MIT License - see LICENSE for details.
Links
Built with care for the vibecoding community. Magic in under 60 seconds.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.