domain-check

domain-check

Fast domain availability checker with RDAP/WHOIS lookup, batch checking, TLD presets, pattern generation, and detailed registration info. Built in Rust for native performance.

Category
访问服务器

README

domain-check

Universal domain exploration engine: fast domain availability checks across the internet — as a CLI, Rust library, and MCP server for AI agents.

Homebrew CLI Crate Library Crate MCP Server Downloads License: MIT OR Apache-2.0

<p align="center"> <img src="https://raw.githubusercontent.com/saidutt46/domain-check/main/assets/demo.svg" alt="domain-check demo" width="700"/> </p>

Quick Links: Installation | Quick Start | Use Cases | Output Formats | Presets | Configuration | Automation | Library | MCP Server | FAQ | Contributing

Why domain-check

  • 1,200+ TLDs out of the box — IANA bootstrap loads the full registry automatically. No config needed. 32 hardcoded TLDs work offline as fallback.
  • Dual-protocol engine — RDAP-first with automatic WHOIS fallback. IANA server discovery covers ~189 ccTLDs that lack RDAP (.es, .co, .eu, .jp).
  • Fast — up to 100 concurrent checks, streaming results as they complete. 2.7 MB release binary.
  • Domain generation — pattern expansion (\w=letter, \d=digit, ?=either), prefix/suffix permutations, and --dry-run to preview before checking.
  • 11 curated presets — startup, tech, creative, finance, ecommerce, and more. Or define your own in config.
  • Rich output — grouped pretty display, JSON, CSV. Registrar info, creation/expiration dates, and status codes with --info.
  • CI and automation friendly — --json/--csv to stdout, --yes to skip prompts, --force for large runs, automatic non-TTY detection.
  • Configurable — TOML config files, DC_* environment variables, custom presets, and clear precedence rules.
  • Agent-native — MCP server exposes all tools to AI coding agents (Claude, Codex, Gemini, Cursor, VS Code Copilot, and any MCP client).
  • CLI + library + MCP — same engine powers the CLI, domain-check-lib (Rust library), and domain-check-mcp (MCP server).

Installation

Method Command Notes
Homebrew (macOS) brew install domain-check Easiest install for macOS users
Cargo (CLI) cargo install domain-check Works on all Rust-supported platforms
Cargo (MCP) cargo install domain-check-mcp MCP server for AI agents
GitHub Releases Download binaries CLI + MCP binaries for macOS, Linux, Windows

Quick Start

# 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

# Check every known TLD
domain-check brand --all --batch

Pretty output:

domain-check v0.9.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

Use Cases

# 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

Output Formats

Default — one line per domain, colored status:

myapp.com TAKEN
myapp.io AVAILABLE
myapp.dev TAKEN

Pretty (--pretty) — grouped by status with summary:

── Available (1) ──────────────────────────────
  myapp.io

── Taken (2) ──────────────────────────────────
  myapp.com
  myapp.dev

3 domains in 0.4s  |  1 available  |  2 taken  |  0 unknown

JSON (--json) — structured, pipe to jq:

[
  {
    "domain": "myapp.com",
    "available": false,
    "method": "RDAP"
  },
  {
    "domain": "myapp.io",
    "available": true,
    "method": "RDAP"
  }
]

CSV (--csv) — import into spreadsheets or databases:

domain,status,method
myapp.com,TAKEN,RDAP
myapp.io,AVAILABLE,RDAP

Info (--info) — registrar, dates, and status codes:

myapp.com TAKEN
  Registrar: Example Registrar, Inc.
  Created: 2015-03-12  Expires: 2026-03-12
  Status: clientTransferProhibited

Full reference: docs/CLI.md

Smart Presets

11 built-in presets covering common domains strategies:

Preset TLDs Use case
startup com, org, io, ai, tech, app, dev, xyz Tech startups
popular com, net, org, io, ai, app, dev, tech, me, co, xyz General coverage
classic com, net, org, info, biz Traditional gTLDs
enterprise com, org, net, info, biz, us Business and government
tech io, ai, app, dev, tech, cloud, software, + 5 more Developer tools
creative design, art, studio, media, photography, + 5 more Artists and media
ecommerce shop, store, market, sale, deals, + 3 more Online retail
finance finance, capital, fund, money, investments, + 4 more Fintech
web web, site, website, online, blog, page, + 3 more Web services
trendy xyz, online, site, top, icu, fun, space, + 6 more New gTLDs
country us, uk, de, fr, ca, au, br, in, nl International
domain-check --list-presets                          # See all presets with full TLD lists
domain-check mybrand --preset creative --pretty      # Use a preset

Define custom presets in your config file:

[custom_presets]
my_stack = ["com", "io", "dev", "app"]

Configuration

Create domain-check.toml in your project directory:

[defaults]
concurrency = 25
preset = "startup"
pretty = true
timeout = "8s"
bootstrap = true

[custom_presets]
my_startup = ["com", "io", "ai", "dev", "app"]

[generation]
prefixes = ["get", "my"]
suffixes = ["hub", "ly"]

Config lookup order: ./domain-check.toml > ~/.domain-check.toml > ~/.config/domain-check/config.toml

Common environment variables:

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

Automation & 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-friendly behavior:

  • --yes / --force skip all confirmation prompts
  • Non-TTY environments (piped, CI) never prompt — scripts are never blocked
  • Spinner writes to stderr; stdout stays clean for piping
  • --no-bootstrap for deterministic, offline-safe checks against 32 hardcoded TLDs

Automation guide: docs/AUTOMATION.md

Library

Use domain-check-lib directly in Rust projects:

[dependencies]
domain-check-lib = "1.0.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(())
}

Library docs: domain-check-lib/README.md | docs.rs

MCP Server

domain-check-mcp exposes domain checking as tools for AI coding agents via the Model Context Protocol. Works with any MCP-compatible client.

# 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 tools available: check_domain, check_domains, check_with_preset, generate_names, list_presets, domain_info.

Then ask your agent naturally: "Is coolstartup.com available?" or "Check mybrand across the startup preset".

Supports: Claude Code, Claude Desktop, VS Code Copilot, Cursor, Windsurf, JetBrains, OpenAI Codex CLI, Gemini CLI, and any MCP stdio client.

Full setup: domain-check-mcp/README.md

Reliability Notes

  • Domain status is network- and registry-dependent. Temporary errors can produce UNKNOWN states.
  • WHOIS output is less standardized than RDAP; parsing quality varies by registry.
  • For repeatable CI workflows, pin behavior with explicit flags (--batch, --json, --no-bootstrap, --concurrency).

Troubleshooting and expected edge cases: docs/FAQ.md

Project Docs

License

Licensed under either of

at your option.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选