关于 domainavail
domainavail 面向注册域名前需要筛选候选名称的人群。它通过 DNS、RDAP 和 WHOIS 批量检查域名,还可确认看似可用的名称并显示注册商报价;不会注册域名。
主要功能
- 01批量检查域名列表
- 02使用 DNS、RDAP 和 WHOIS
- 03报告可用状态及检查依据
- 04显示注册商报价和价格
- 05支持 TLD 扩展和已保存名称
适用场景
- 01按配置的 TLD 筛选名称构想
- 02比较可注册名称的购买选项
MCP 相关
MCP 服务提供 `check_domains` 工具,用于批量检查域名,并支持设置 TLD、注册商确认、详细依据和已保存域名。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tlds | array | 否 | 此调用的 tlds。 |
| saved | array | 否 | 此调用的已保存内容。 |
| confirm | boolean | 否 | 此调用的确认标志。 |
| details | boolean | 否 | 此调用的详细信息。 |
| domains | array | 是 | 此调用的域名。 |
详细介绍
domainavail
你有一组心仪的名称,想知道其中哪些实际上可以注册?domainavail 可一次性检查整组名称:提交候选名称后,它会逐一进行一系列公开检查,告诉你哪些名称看起来可以注册、哪些已被注册;对于看起来可以注册的名称,还会告知价格和购买渠道。它严格只读:绝不会注册、预留或更改任何内容。
如何检查名称
首先会规范化名称(去掉 scheme 和路径,并转换为小写)。不含点的名称会扩展为每个已配置的 TLD;完整域名则按原样检查。随后,每个扩展后的名称都会经过以下检查:
- DNS 委派 — 如果名称有 NS 记录,则表示已委派,因此状态为
taken。ENOTFOUND/ENODATA表示未委派;其他 DNS 错误会使名称进入未知状态流程。 - RDAP — 返回 200 表示名称已注册(
taken);会报告到期事件expires,待删除状态则会添加备注being deleted; may become available soon。返回 404 表示名称看起来可以注册。 - WHOIS 回退 — 当 TLD 不支持 RDAP 或 RDAP 失败时使用。匹配
No match/NOT FOUND/No Data Found的文本表示看起来可以注册;存在记录则表示taken;WHOIS 失败则表示unknown。 - 注册商确认 — 看起来可以注册的名称会保持
likely_available,除非有已配置的注册商确认其状态。系统会按 Name.com → Cloudflare → Spaceship → Porkbun 的顺序向注册商查询,直到有一家给出明确答复:之后名称状态会变为available(若注册商表示为溢价域名,则premium: true,并在提供价格时附上价格)、reserved或taken。
可能的状态:available、likely_available、taken、reserved、unknown。
输出为一个 JSON 对象:summary 按状态统计数量;results 按输入顺序排列(saved 域名除外,它们会标记为 saved: true 并列在最前);skipped 列出不是域名名称或超出扩展上限的输入;另有 warnings。启用 details: true 后,每个结果还会包含 evidence,记录 DNS、RDAP、WHOIS 和注册商各步骤的结果。
配置
所有配置都通过 DOMAINSCOUT_* 环境变量完成:
DOMAINSCOUT_TLDS— 用于扩展不带 TLD 的名称的 TLD(默认为com,net,ai)。每次调用的tlds参数会覆盖此设置。DOMAINSCOUT_REGISTRARS— 用于筛选参与报价和确认的注册商的逗号分隔列表。DOMAINSCOUT_MAX_CONCURRENCY— 并行检查数(默认为 10)。DOMAINSCOUT_PER_HOST_CONCURRENCY— 默认为 2。会解析此设置,但在本次重构中不会单独执行限制(这是已标注的简化处理)。DOMAINSCOUT_TIMEOUT_MS— 每个请求的超时时间(默认为 10000)。DOMAINSCOUT_MAX_DOMAINS— 扩展上限(默认为 500,硬上限为 10000)。超出上限的名称会放入skipped,原因是over DOMAINSCOUT_MAX_DOMAINS。DOMAINSCOUT_CONFIRM_MAX— 每次调用中向注册商确认的名称数量上限(默认为 50)。DOMAINSCOUT_DNS— 开启/关闭 DNS 步骤(默认开启);DOMAINSCOUT_DNS_SERVERS— 自定义 DNS 服务器。DOMAINSCOUT_PRICES— 开启/关闭价格报价(默认开启)。DOMAINSCOUT_AFFILIATE— 已接受(默认开启);此处的购买链接为普通链接,不包含任何联盟营销模板。- 注册商密钥:
DOMAINSCOUT_NAMECOM_USERNAME/DOMAINSCOUT_NAMECOM_TOKEN、DOMAINSCOUT_CLOUDFLARE_ACCOUNT_ID/DOMAINSCOUT_CLOUDFLARE_API_TOKEN、DOMAINSCOUT_SPACESHIP_API_KEY/DOMAINSCOUT_SPACESHIP_API_SECRET、DOMAINSCOUT_PORKBUN_API_KEY/DOMAINSCOUT_PORKBUN_SECRET_KEY。每家注册商的密钥只会发送给对应的注册商。
价格来自 Porkbun 公共定价 API 和 Cloudflare 定价镜像,并按价格从低到高排序。报价格式为 {registrar, price, renewal?, url}。
端点来源
RDAP 查询使用 https://rdap.org/domain/<domain>
(端点选择已标注)。注册商确认端点和两个价格来源
URL 均为重构内容,并已注明;Cloudflare 搜索
URL https://www.cloudflare.com/domains/search/?q=<domain>
是有文档记录的示例,Porkbun 结账 URL 则是我们对同一思路的呈现。
工具
check_domains— 检查域名是否可以注册,并提供价格以及可注册域名的购买渠道。参数:domains(必填字符串数组,包含 1–1,000 个条目)、tlds(可选字符串数组)、confirm(可选布尔值,默认 true)、details(可选布尔值,默认 false)、saved(可选字符串数组)。验证失败时会显示domains must be an array of 1 to 1000 names;规范化后为空的条目会放入skipped,原因是not a domain name。
命令行
npx @reneturcios/domainavail check_domains '{"domains":["example","widget.com"],"details":true}'
npx @reneturcios/domainavail --version
输出为工具的结果文本(即上文所述的 JSON)。退出代码:成功时为 0,运行时错误(包括验证错误)时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/domainavail mcp
MCP 客户端配置:
{
"mcpServers": {
"domainavail": {
"command": "npx",
"args": ["-y", "@reneturcios/domainavail", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/domainavail
docker run --rm ghcr.io/cloudcorprecords/domainavail check_domains '{"domains":["widget.com"]}'
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (injected fakes only, no network)
npm run dev # run the CLI from source
许可证
MIT — 版权所有 (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。