关于 domain-check
domain-check 是用于域名探索的命令行工具、Rust 库和 MCP 服务,面向需要批量检查可用性或生成名称的开发者和 Agent。它优先使用 RDAP,并在必要时回退到内置 WHOIS。
主要功能
- 01检查域名可用性并支持批量并发
- 02RDAP 优先并自动回退 WHOIS
- 03通过模式、前缀和后缀生成名称
- 04提供 11 种 TLD 预设并支持自定义
- 05输出文本、JSON、CSV及注册信息
适用场景
- 01为创业项目筛查多个 TLD 的名称
- 02检查品牌在各 TLD 的注册情况
- 03在购买前核查注册商和域名日期
- 04在 CI 中以 JSON 或 CSV 批量检查
MCP 相关
domain-check-mcp 通过 MCP 向兼容客户端提供域名检查、批量检查、预设检查、名称生成、预设列表和域名信息工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
domain-check
通用域名探索引擎:通过 CLI、Rust 库和面向 AI Agent 的 MCP 服务,快速检查互联网中的域名是否可用。
快速链接:安装 | 快速开始 | 用例 | 输出格式 | 预设 | 配置 | 自动化 | 库 | MCP 服务 | 常见问题 | 贡献
为什么选择 domain-check
- 开箱即用,支持 1,200 多种 TLD — IANA 引导程序会自动加载完整注册表。无需配置。34 种硬编码 TLD 可在离线时作为后备。
- 双协议引擎 — 优先使用 RDAP,自动回退到 WHOIS。IANA 服务发现涵盖约 189 种缺少 RDAP 的 ccTLD(
.it、.co、.eu、.jp)。内置 WHOIS,因此任何平台都无需安装系统级whois工具。 - 快速 — 最多支持 100 个并发检查,并在检查完成时实时流式输出结果。发布版二进制文件仅 3.4 MB。
- 域名生成 — 支持模式扩展(
\w=字母,\d=数字,?=二者皆可)、前缀/后缀排列,以及在检查前用--dry-run预览。 - 11 种精心整理的预设 — 包括
startup、tech、creative、finance、ecommerce等。也可以在配置中定义自己的预设。 - 检测待售域名 —
--for-sale会读取 RFC 10023_for-sale记录,让你了解已注册域名是否实际在售(显示经过清理的要价和联系方式,绝不会自动打开)。 - 丰富的输出 — 支持分组美观显示、JSON 和 CSV。使用
--info可获取注册商信息、创建/到期日期和状态码。 - 适合 CI 和自动化 — 使用
--json/--csv将结果输出到 stdout,使用--yes跳过提示,使用--force执行大规模查询,并自动检测非 TTY 环境。 - 可配置 — 支持 TOML 配置文件、
DC_*环境变量、自定义预设和清晰的优先级规则。 - 原生支持 Agent — MCP 服务向 AI 编码 Agent(Claude、Codex、Gemini、Cursor、VS Code Copilot 以及任何 MCP 客户端)提供所有工具。
- CLI + 库 + MCP — CLI、
domain-check-lib(Rust 库)和domain-check-mcp(MCP 服务)共用同一引擎。
安装
| 方法 | 命令 | 说明 |
|---|---|---|
| Homebrew(macOS) | brew install domain-check | macOS 用户最简便的安装方式 |
| Cargo(CLI) | cargo install domain-check | 适用于所有受 Rust 支持的平台 |
| Cargo(MCP) | cargo install domain-check-mcp | 面向 AI Agent 的 MCP 服务 |
| GitHub Releases | 下载二进制文件 | 适用于 macOS、Linux、Windows 的 CLI + MCP 二进制文件 |
快速开始
# Check a single domain
domain-check example.com
# Expand a base name across TLDs
domain-check mystartup -t com,org,io,dev
# Use a curated preset
domain-check myapp --preset startup --pretty
# Generate names with a pattern (preview only)
domain-check --pattern "app\d" -t com --dry-run
# Add prefixes and suffixes
domain-check myapp --prefix get,try --suffix hub,ly -t com,io
# Get registrar and date info
domain-check target.com --info
# Is a taken domain for sale? (RFC 10023)
domain-check example.nl --for-sale
# Check every known TLD
domain-check brand --all --batch
美观的输出:
domain-check v1.2.1 — Checking 8 domains
Preset: startup | Concurrency: 20
── Available (3) ──────────────────────────────
rustcloud.org
rustcloud.ai
rustcloud.app
── Taken (5) ──────────────────────────────────
rustcloud.com
rustcloud.io
rustcloud.tech
rustcloud.dev
rustcloud.xyz
8 domains in 0.8s | 3 available | 5 taken | 0 unknown
用例
# Startup naming — scan tech TLDs for your brand
domain-check coolname --preset startup --pretty
# Brand protection — audit every TLD for your trademark
domain-check mybrand --all --json > audit.json
# Pre-purchase validation — check registrar and expiry before buying
domain-check target.com --info
# Bulk pipeline — feed a list, export results
domain-check --file ideas.txt --preset tech --csv > results.csv
# Name generation — explore prefix/suffix combos
domain-check app --prefix get,my,try --suffix hub,ly -t com,io --dry-run
输出格式
默认 — 每个域名占一行,状态带颜色:
myapp.com TAKEN
myapp.io AVAILABLE
myapp.dev TAKEN
美化(--pretty)— 按状态分组并附带摘要:
── Available (1) ──────────────────────────────
myapp.io
── Taken (2) ──────────────────────────────────
myapp.com
myapp.dev
3 domains in 0.4s | 1 available | 2 taken | 0 unknown
JSON(--json)— 结构化输出,可通过管道传给 jq:
[
{
"domain": "myapp.com",
"available": false,
"method": "RDAP"
},
{
"domain": "myapp.io",
"available": true,
"method": "RDAP"
}
]
CSV(--csv)— 导入电子表格或数据库:
domain,status,method
myapp.com,TAKEN,RDAP
myapp.io,AVAILABLE,RDAP
信息(--info)— 注册商、日期和状态码:
myapp.com TAKEN
Registrar: Example Registrar, Inc.
Created: 2015-03-12 Expires: 2026-03-12
Status: clientTransferProhibited
完整参考:docs/CLI.md
智能预设
11 个内置预设,涵盖常见的域名策略:
| 预设 | TLD | 用途 |
|---|---|---|
startup | com, org, io, ai, tech, app, dev, xyz | 科技初创公司 |
popular | com, net, org, io, ai, app, dev, tech, me, co, xyz | 通用覆盖 |
classic | com, net, org, info, biz | 传统 gTLD |
enterprise | com, org, net, info, biz, us | 企业和政府 |
tech | io, ai, app, dev, tech, cloud, software, + 5 个 | 开发者工具 |
creative | design, art, studio, media, photography, + 5 个 | 艺术家和媒体 |
ecommerce | shop, store, market, sale, deals, + 3 个 | 在线零售 |
finance | finance, capital, fund, money, investments, + 4 个 | 金融科技 |
web | web, site, website, online, blog, page, + 3 个 | Web 服务 |
trendy | xyz, online, site, top, icu, fun, space, + 6 个 | 新 gTLD |
country | us, uk, de, fr, ca, au, br, in, nl | 国际 |
domain-check --list-presets # See all presets with full TLD lists
domain-check mybrand --preset creative --pretty # Use a preset
在配置文件中定义自定义预设:
[custom_presets]
my_stack = ["com", "io", "dev", "app"]
配置
在项目目录中创建 domain-check.toml:
[defaults]
concurrency = 25
preset = "startup"
pretty = true
timeout = "8s"
bootstrap = true
for_sale = false # set true to always check registered domains for RFC 10023 for-sale records
[custom_presets]
my_startup = ["com", "io", "ai", "dev", "app"]
[generation]
prefixes = ["get", "my"]
suffixes = ["hub", "ly"]
配置查找顺序:
./domain-check.toml > ~/.domain-check.toml > ~/.config/domain-check/config.toml
常用环境变量:
DC_CONCURRENCY=50 DC_PRESET=startup DC_TLD=com,io,dev
DC_PRETTY=true DC_TIMEOUT=10s DC_BOOTSTRAP=true
DC_PREFIX=get,my DC_SUFFIX=hub,ly DC_FILE=domains.txt
DC_FOR_SALE=true DC_DNS_SERVER=1.1.1.1
自动化与 CI
# Non-interactive structured output
domain-check --file required-domains.txt --json
# Pipe to jq
domain-check --pattern "app\d" -t com --yes --json | jq '.[] | select(.available==true)'
# Stream live results for long runs
domain-check --file large-list.txt --concurrency 75 --streaming
# Large batch with no prompts
domain-check --file huge-list.txt --all --force --yes --csv > results.csv
适用于 CI 的行为:
--yes/--force跳过所有确认提示- 在非 TTY 环境(管道、CI)中不会显示提示 — 脚本不会因此受阻
- 加载指示器写入 stderr;stdout 保持干净,可用于管道传输
- 使用
--no-bootstrap,针对 34 个硬编码 TLD 进行确定性、可离线的检查
自动化指南:docs/AUTOMATION.md
库
在 Rust 项目中直接使用 domain-check-lib:
[dependencies]
domain-check-lib = "1.2.1"
use domain_check_lib::DomainChecker;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let checker = DomainChecker::new();
let result = checker.check_domain("example.com").await?;
println!("{} -> {:?}", result.domain, result.available);
Ok(())
}
库文档:domain-check-lib/README.md | docs.rs
MCP 服务
domain-check-mcp 通过 Model Context Protocol 将域名检查作为工具提供给 AI 编码 Agent。兼容任何支持 MCP 的客户端。
# Install
cargo install domain-check-mcp
# Add to your agent (Claude Code example — works similarly for Codex, Gemini CLI, etc.)
claude mcp add domain-check -- domain-check-mcp
提供 6 个工具:check_domain、check_domains、check_with_preset、generate_names、list_presets、domain_info。
然后直接向 Agent 提问:“coolstartup.com 可以注册吗?” 或 “按 startup 预设检查 mybrand”。
检查工具接受可选参数 check_for_sale;如果持有人发布了相关信息,domain_info 始终会包含 RFC 10023 的待售信息。响应会将该数据标记为未经验证,并在 for_sale_errors 中报告查询失败情况。在 MCP 客户端的环境变量中设置 DC_DNS_SERVER,即可选择 DNS 服务器。
支持:Claude Code、Claude Desktop、VS Code Copilot、Cursor、Windsurf、JetBrains、OpenAI Codex CLI、Gemini CLI,以及任何 MCP stdio 客户端。
完整设置说明:domain-check-mcp/README.md
可靠性说明
- 域名状态取决于网络和注册局。临时错误可能导致状态为
UNKNOWN。 - WHOIS 输出的标准化程度不如 RDAP。domain-check 会读取 40 多个注册局的回复格式,并在无法确定时返回
UNKNOWN,而不是猜测。有些注册局(.es、.gr、.vn等)不提供公开的 WHOIS,因此 RDAP 无法提供答案时,这些域名会显示为UNKNOWN。 - 若要让 CI 工作流可重复,请使用显式标志固定行为(
--batch、--json、--no-bootstrap、--concurrency)。
故障排查和预期边缘情况:docs/FAQ.md
项目文档
- CLI 参考:docs/CLI.md
- 库:domain-check-lib/README.md | docs.rs
- MCP 服务:domain-check-mcp/README.md
- 示例和工作流:docs/EXAMPLES.md
- 自动化用法:docs/AUTOMATION.md
- 常见问题:docs/FAQ.md
- 更新日志:CHANGELOG.md
- 参与贡献:CONTRIBUTING.md
- 安全策略:SECURITY.md
许可证
可选择依据以下任一许可证授权:
由你选择。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。