io.github.saidutt46/domain-check MCP Server
io.github.saidutt46/domain-check
Fast domain availability checker with RDAP/WHOIS, batch checks, TLD presets, and AI-native MCP server.
What is the io.github.saidutt46/domain-check MCP server?
The domain-check MCP server exposes fast domain availability checking across 1,200+ TLDs to AI agents via the Model Context Protocol. It uses RDAP-first with automatic WHOIS fallback, supports batch checks, domain name generation with pattern expansion, and 11 curated presets for common naming strategies. Agents can check single domains, audit brands across all TLDs, generate names with prefix/suffix permutations, and retrieve registrar and expiration data.
domain-check is a universal domain exploration engine that lets AI agents (Claude, Cursor, Gemini, etc.) check domain availability at scale. It combines RDAP and WHOIS protocols for reliable lookups, supports concurrent checking up to 100 domains, includes smart presets for startups and brands, and can generate candidate names with pattern matching. Use it to validate startup names, audit trademark protection, pre-purchase domain research, or bulk pipeline automation—all from natural language prompts to your AI agent.
How to install io.github.saidutt46/domain-check
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
check_domain— Check availability of a single domaincheck_domains— Check availability of multiple domains in batchcheck_with_preset— Check domains using one of 11 curated presets (startup, tech, creative, finance, ecommerce, etc.)generate_names— Generate domain name candidates with pattern expansion (\w=letter, \d=digit, ?=either) and prefix/suffix permutationslist_presets— List all 11 built-in presets and their TLD configurationsdomain_info— Retrieve detailed domain info including registrar, creation/expiration dates, and status codes
Use cases
- Validate startup names across tech TLDs (com, io, dev, app, ai) in seconds
- Audit brand protection by checking your trademark across all 1,200+ TLDs
- Generate and check domain candidates with prefix/suffix patterns (e.g., 'get-', '-hub')
- Pre-purchase validation: confirm registrar, creation date, and expiration before buying
- Bulk pipeline automation: feed domain lists, export results as JSON/CSV for downstream processing
io.github.saidutt46/domain-check MCP server FAQ
It's an MCP server that exposes domain availability checking tools to AI agents like Claude and Cursor. You ask your agent 'Is coolstartup.com available?' or 'Check mybrand across the startup preset' and it uses the server's tools to query RDAP/WHOIS registries and return results.
Yes. domain-check is open-source under MIT or Apache 2.0 license. The MCP server and CLI are free to install and use. Domain lookups themselves use public RDAP/WHOIS registries (no API key required).
Install the MCP server binary (available for macOS, Linux, Windows from GitHub Releases or via `cargo install domain-check-mcp`), then add it to your agent's MCP configuration. For Claude Desktop, use `claude mcp add domain-check -- domain-check-mcp`. For Cursor, add the binary path to your MCP settings.
No. domain-check queries public RDAP and WHOIS registries directly. No API keys, credentials, or paid services needed.
Very fast. It supports up to 100 concurrent checks and streams results as they complete. A typical 8-domain check completes in under 1 second. The binary is only 2.7 MB.
1,200+ TLDs out of the box via IANA bootstrap. It includes 11 curated presets (startup, tech, creative, finance, ecommerce, etc.) and 32 hardcoded TLDs that work offline as fallback.
README (reference)
Source of truth, from the repository.
domain-check
Universal domain exploration engine: fast domain availability checks across the internet — as a CLI, Rust library, and MCP server for AI agents.
<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-runto 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/--csvto stdout,--yesto skip prompts,--forcefor 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), anddomain-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/--forceskip all confirmation prompts- Non-TTY environments (piped, CI) never prompt — scripts are never blocked
- Spinner writes to stderr; stdout stays clean for piping
--no-bootstrapfor 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.2"
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
UNKNOWNstates. - 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
- CLI reference: docs/CLI.md
- Library: domain-check-lib/README.md | docs.rs
- MCP server: domain-check-mcp/README.md
- Examples and workflows: docs/EXAMPLES.md
- Automation usage: docs/AUTOMATION.md
- FAQ: docs/FAQ.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Security policy: SECURITY.md
License
Licensed under either of
at your option.
Related MCP servers

AI design fidelity — compare Figma designs or screenshots against rendered UI. No API keys.

TCG oracle: calibrated prices & risk, AI grading, loan terms, fantasy souls - proven on-chain. 23 to

BondSeat
Snag hard-to-get Resy tables with automatic cancellation monitoring and scheduled release attempts.

Sandboxed AI-native bash with 70 agentic tools: run_bash, code edit/diff, WASM Python/JS.

Read the MindForge engine over MCP: knowledge graph, project health, and audit log.
Semantic code search for AI agents — hybrid BM25+vector, call-graph, 20+ languages.