README
🚀 Domain Search MCP
Domain Search MCP 为 MCP 客户端提供快速、以本地优先的域名可用性检查。它可以零配置使用公共 RDAP/WHOIS 进行查询,还可以通过你控制的后端获取注册商定价信息来丰富查询结果。
最新特性
- v1.9.0+:现在开箱即用 AI 驱动的域名建议功能!无需 API 密钥 -
suggest_domains_smart使用我们公开的微调 Qwen 7B - DPO 模型。 - 新增 Redis 分布式缓存、断路器和
/metrics端点以实现可观测性。
本项目基于 Model Context Protocol 构建,适用于 Claude、Codex、VS Code、Cursor、Cline 等 MCP 兼容客户端。
🚀 快速开始
选项 1:使用 npx(推荐)
无需安装,直接运行:
npx -y domain-search-mcp@latest
选项 2:从源代码运行
git clone https://github.com/dorukardahan/domain-search-mcp.git
cd domain-search-mcp
npm install
npm run build
npm start
✨ 主要特性
- 多 TLD 单域名检查:可检查单个名称在多个顶级域名(TLD)中的可用性。
- 单 TLD 批量检查:可批量检查多达 100 个名称在单个 TLD 中的可用性。
- 注册商定价比较:(配置后端时可用)比较不同注册商的定价。
- 域名建议与社交账号验证:建议域名并验证社交账号的可用性。
- 高级信号检测:在
search_domain中检测高级/拍卖信号。
📦 安装指南
选项 1:使用 npx(推荐)
npx -y domain-search-mcp@latest
选项 2:从源代码安装
git clone https://github.com/dorukardahan/domain-search-mcp.git
cd domain-search-mcp
npm install
npm run build
npm start
💻 使用示例
基础用法
# 无需 API 密钥的示例
search_domain("myproject", ["com", "io"])
myproject.com - available - price_first_year: null - source: rdap
myproject.io - taken - price_first_year: null - source: rdap
高级用法
# REST API 示例
curl -X POST https://your-domain/api/tools/search_domain \
-H "Content-Type: application/json" \
-d '{"domain_name":"vibecoding"}'
📚 详细文档
传输选项
stdio(默认)
适用于 Claude Desktop、Cursor、VS Code 等 MCP 客户端,使用标准输入/输出:
npx -y domain-search-mcp@latest
HTTP/SSE(ChatGPT、Web 客户端、LM Studio)
适用于 ChatGPT Actions、Web 应用和 REST API 客户端:
# 在端口 3000 启动 HTTP 服务器
npx -y domain-search-mcp@latest --http
# 或使用自定义端口
MCP_PORT=8080 npx -y domain-search-mcp@latest --http
端点说明:
/mcp- MCP 协议(POST 用于消息,GET 用于 SSE 流)/api/tools/*- 每个工具的 REST API(与 ChatGPT Actions 兼容)/openapi.json- OpenAPI 3.1 规范/health- 健康检查/metrics- 兼容 Prometheus 的指标(缓存统计、请求计数、AI 推理健康状况)
ChatGPT 自定义 GPT 集成
- 启动 HTTP 服务器(见上文)
- 通过 ngrok 暴露服务:
ngrok http 3000 - 在 ChatGPT 中创建自定义 GPT 并添加操作
- 从
https://your-ngrok-url.ngrok-free.dev/openapi.json导入 OpenAPI 规范 - 测试工具!
工具列表
核心搜索工具
search_domain:检查单个名称在多个 TLD 中的可用性,并添加高级/拍卖信号。bulk_search:检查多达 100 个名称在单个 TLD 中的可用性。compare_registrars:(配置后端时可用)比较不同注册商的定价。
AI 驱动的建议工具
suggest_domains:生成域名变体(前缀/后缀/连字符)。suggest_domains_smart:🤖 AI 驱动 使用微调 Qwen 7B - DPO 生成品牌化名称。零配置 - 立即生效!analyze_project:扫描本地项目或 GitHub 仓库以提取上下文并建议匹配的域名。
域名投资工具
hunt_domains:查找有投资价值的域名 - 扫描 Sedo 拍卖、生成模式、计算投资分数。expiring_domains:监控即将到期的域名(需要联合负缓存)。
实用工具
tld_info:TLD 元数据和限制信息。check_socials:检查用户名在多个平台上的可用性。ai_health:检查 AI 推理服务的状态(VPS Qwen、断路器、自适应并发)。
配置说明
定价后端(推荐)
设置拥有注册商密钥(Porkbun)的后端 URL。MCP 将调用该后端的 /api/quote 和 /api/compare 进行定价查询。
PRICING_API_BASE_URL=https://your-backend.example.com
PRICING_API_TOKEN=optional_bearer_token
可选的自带密钥(本地)
仅在未设置 PRICING_API_BASE_URL 时使用。
- Porkbun 密钥:
- https://porkbun.com/account/api
- https://porkbun.com/api/json/v3/documentation
- Namecheap 密钥(需要 IP 白名单):
- 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
Redis 分布式缓存(可选)
为了在多个 MCP 实例之间进行水平扩展,配置 Redis:
REDIS_URL=redis://:password@host:6379
如果不使用 Redis,服务器将使用内存缓存(适用于单个实例)。Redis 支持:
- 多个服务器实例之间的共享缓存
- 重启后持久化缓存
- 在负载均衡部署中提高缓存命中率
AI 推理(零配置)
AI 驱动的建议功能 (suggest_domains_smart) 开箱即用,使用我们公开的运行微调 Qwen 7B - DPO 的 VPS。无需 API 密钥!
对于自托管设置,覆盖端点:
QWEN_INFERENCE_ENDPOINT=http://your-server:8000
QWEN_API_KEY=optional_if_secured
环境变量
| 变量 | 默认值 | 描述 |
|------|--------|------|
| MCP_TRANSPORT | stdio | 传输模式:stdio 或 http |
| MCP_PORT | 3000 | HTTP 服务器端口(使用 HTTP 传输时) |
| MCP_HOST | 0.0.0.0 | HTTP 服务器绑定地址 |
| CORS_ORIGINS | * | 允许的 CORS 源(逗号分隔) |
| PRICING_API_BASE_URL | - | 定价后端基础 URL |
| PRICING_API_TOKEN | - | 可选的承载令牌 |
| PRICING_API_TIMEOUT_MS | 2500 | 后端请求超时时间 |
| PRICING_API_MAX_QUOTES_SEARCH | 0 | 每次搜索的最大定价调用次数(0 = 无限制;受后端速率限制) |
| PRICING_API_MAX_QUOTES_BULK | 0 | 每次批量搜索的最大定价调用次数(0 = 无限制;受后端速率限制) |
| PRICING_API_CONCURRENCY | 4 | 定价请求并发数 |
| PORKBUN_API_KEY | - | Porkbun API 密钥 |
| PORKBUN_API_SECRET | - | Porkbun API 密钥 |
| NAMECHEAP_API_KEY | - | Namecheap API 密钥 |
| NAMECHEAP_API_USER | - | Namecheap 用户名 |
| NAMECHEAP_CLIENT_IP | - | Namecheap IP 白名单 |
| OUTPUT_FORMAT | table | 工具输出格式:table、json 或 both |
| LOG_LEVEL | info | 日志级别 |
| CACHE_TTL_AVAILABILITY | 60 | 可用性缓存的 TTL(秒) |
| CACHE_TTL_PRICING | 3600 | 定价缓存的 TTL(秒) |
| CACHE_TTL_SEDO | 3600 | Sedo 拍卖源缓存的 TTL(秒) |
| CACHE_TTL_AFTERMARKET_NS | 300 | 名称服务器查找缓存的 TTL(秒) |
| SEDO_FEED_ENABLED | true | 启用 Sedo 源查找以获取二手市场拍卖提示 |
| SEDO_FEED_URL | https://sedo.com/txt/auctions_us.txt | Sedo 公共源 URL |
| AFTERMARKET_NS_ENABLED | true | 启用基于名称服务器的二手市场提示 |
| AFTERMARKET_NS_TIMEOUT_MS | 1500 | 名称服务器查找超时时间(毫秒) |
| REDIS_URL | - | 用于分布式缓存的 Redis 连接 URL(例如 redis://:password@host:6379) |
| QWEN_INFERENCE_ENDPOINT | (公共 VPS) | 自托管设置时覆盖 AI 推理端点 |
| QWEN_TIMEOUT_MS | 15000 | AI 推理请求超时时间 |
| QWEN_MAX_RETRIES | 2 | AI 推理失败时的重试次数 |
输出格式
工具响应默认以 Markdown 表格 形式返回。如果你需要用于编程的原始 JSON 数据,请设置:
OUTPUT_FORMAT=json
数据来源
| 来源 | 用途 | 定价 |
|------|------|------|
| 定价 API | 定价 + 高级信息(Porkbun) | 是(后端) |
| Porkbun API | 可用性 + 定价 | 是(需密钥) |
| Namecheap API | 可用性 + 定价 | 是(需密钥) |
| RDAP | 主要可用性检查 | 否 |
| WHOIS | 备用可用性检查 | 否 |
| GoDaddy 公共端点 | search_domain 的高级/拍卖信号 | 否 |
| Sedo 公共源 | 二手市场拍卖提示 | 否 |
定价行为
- 对于每个 可用 域名,首先尝试获取实时价格。
- 如果实时报价失败或受到速率限制,结果将回退到目录估计值,并包含
price_note。 - 在购买前,始终通过
price_check_url验证定价。
🔧 技术细节
工作原理
可用性和定价查询有意分开处理:
- 可用性(默认):
- 主要:RDAP
- 备用:WHOIS
- GoDaddy 公共端点仅用于在
search_domain中添加高级/拍卖信号
- 定价(可选):
- 推荐:
PRICING_API_BASE_URL(带有 Porkbun 密钥的后端) - 可选自带密钥:仅在未配置后端时支持 Porkbun/Namecheap
- 推荐:
这样可以保持服务器零配置,同时允许高级用户启用定价功能。
定价验证
响应中包含 price_check_url(注册商结账/搜索链接),当价格为估计值时可能包含 price_note。在购买前,始终在注册商结账页面验证最终价格。
如果检测到拍卖/高级信号,结果将包含 aftermarket 块,其中包含可用的市场页面链接。已占用的域名可能包含 Sedo 拍卖提示(公共源)和基于名称服务器的市场提示(Sedo/Dan/Afternic)。
📄 许可证
开发与发布
开发
npm run dev # 监听模式
npm test # 运行 Jest 测试
npm run build # 编译到 dist/
发布
发布流程请参考 docs/RELEASE.md。像 v1.2.24 这样的标签会通过 CI 触发 GitHub Releases 和 npm 发布。
更新日志
发布历史请查看 CHANGELOG.md。
安全注意事项
- 不要提交 API 密钥或
.mcpregistry_*文件。 - 未设置
PRICING_API_BASE_URL(或自带密钥)时,无法获取定价信息(可用性检查仍可正常工作)。
升级指南
npx 用户
如果你使用 npx domain-search-mcp(未使用 @latest),npx 可能会缓存旧版本。
解决方法:更新 MCP 配置以使用 @latest:
"args": ["-y", "domain-search-mcp@latest"]
或者手动清除 npx 缓存:
npx clear-npx-cache # 然后重启 MCP 客户端
源代码/Git 用户
cd domain-search-mcp
git pull origin main
npm install
npm run build
保持更新
- 关注仓库:在 GitHub 上点击“Watch” → “Releases only” 以获取新版本通知。
- 查看发布信息:查看 GitHub Releases 了解更新日志和升级说明。
- npm 页面:npmjs.com/package/domain-search-mcp 显示最新版本。
架构说明
详细的系统架构图请参考 docs/ARCHITECTURE.md:
- 传输层(stdio 与 HTTP/SSE)
- 工具执行流程
- 数据源瀑布式查询(RDAP → 定价 API → WHOIS)
- VPS 部署架构
- AI 建议流程
- MCP 会话生命周期
相关链接
- MCP 注册表:https://registry.modelcontextprotocol.io
- Glama 页面:https://glama.ai/mcp/servers/@dorukardahan/domain-search-mcp
- Context7 索引:https://context7.com/dorukardahan/domain-search-mcp
- 架构文档:docs/ARCHITECTURE.md
- API 参考:docs/API.md
- 配置文档:docs/CONFIGURATION.md
- 工作流程文档:docs/WORKFLOWS.md
微信扫一扫