Fast, universal domain availability checker - 1,200+ TLDs, pattern generation, RDAP with WHOIS fallback. CLI + Rust library + MCP server for AI agents.
- ✓Actively maintained (<30d)
- ✓Healthy fork ratio
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
- ✓Documented (README)
- !Licence file present but not machine-readable
git clone https://github.com/saidutt46/domain-check{
"mcpServers": {
"domain-check": {
"command": "domain-check"
}
}
}MCP Servers overview
# domain-check
Universal domain exploration engine: fast domain availability checks across the internet — as a CLI, Rust library, and MCP server for AI agents.
[](https://formulae.brew.sh/formula/domain-check)
[](https://crates.io/crates/domain-check)
[](https://crates.io/crates/domain-check-lib)
[](https://crates.io/crates/domain-check-mcp)
[](https://crates.io/crates/domain-check)
[](#license)
<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](#installation) | [Quick Start](#quick-start) | [Use Cases](#use-cases) | [Output Formats](#output-formats) | [Presets](#smart-presets) | [Configuration](#configuration) | [Automation](#automation--ci) | [Library](#library) | [MCP Server](#mcp-server) | [FAQ](https://github.com/saidutt46/domain-check/blob/main/docs/FAQ.md) | [Contributing](https://github.com/saidutt46/domain-check/blob/main/CONTRIBUTING.md)
## Why domain-check
- **1,200+ TLDs out of the box** — IANA bootstrap loads the full registry automatically. No config needed. 34 hardcoded TLDs work offline as fallback.
- **Dual-protocol engine** — RDAP-first with automatic WHOIS fallback. IANA server discovery covers ~189 ccTLDs that lack RDAP (`.it`, `.co`, `.eu`, `.jp`). WHOIS is built in, so no system `whois` tool is needed on any platform.
- **Fast** — up to 100 concurrent checks, streaming results as they complete. 3.4 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.
- **For-sale detection** — `--for-sale` reads [RFC 10023](https://www.rfc-editor.org/info/rfc10023) `_for-sale` records, so you can see when a registered domain is actually on the market (asking price and contact, sanitized, never auto-opened).
- **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`](https://crates.io/crates/domain-check-lib) (Rust library), and [`domain-check-mcp`](https://crates.io/crates/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](https://github.com/saidutt46/domain-check/releases) | CLI + MCP binaries for macOS, Linux, Windows |
## Quick Start
```bash
# 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
```
Pretty output:
```text
domain-check v1.2.0 — 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
```bash
# 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:
```text
myapp.com TAKEN
myapp.io AVAILABLE
myapp.dev TAKEN
```
**Pretty** (`--pretty`) — grouped by status with summary:
```text
── 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`:
```json
[
{
"domain": "myapp.com",
"available": false,
"method": "RDAP"
},
{
"domain": "myapp.io",
"available": true,
"method": "RDAP"
}
]
```
**CSV** (`--csv`) — import into spreadsheets or databases:
```text
domain,status,method
myapp.com,TAKEN,RDAP
myapp.io,AVAILABLE,RDAP
```
**Info** (`--info`) — registrar, dates, and status codes:
```text
myapp.com TAKEN
Registrar: Example Registrar, Inc.
Created: 2015-03-12 Expires: 2026-03-12
Status: clientTransferProhibited
```
Full reference: [docs/CLI.md](https://github.com/saidutt46/domain-check/blob/main/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 |
```bash
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:
```toml
[custom_presets]
my_stack = ["com", "io", "dev", "app"]
```
## Configuration
Create `domain-check.toml` in your project directory:
```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"]
```
Config lookup order:
`./domain-check.toml` > `~/.domain-check.toml` > `~/.config/domain-check/config.toml`
Common environment variables:
```bash
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
```
## Automation & CI
```bash
# 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 34 hardcoded TLDs
Automation guide: [docs/AUTOMATION.md](https://github.com/saidutt46/domain-check/blob/main/docs/AUTOMATION.md)
## Library
Use `domain-check-lib` directly in Rust projects:
```toml
[dependencies]
domain-check-lib = "1.2.0"
```
```rust
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](https://github.com/saidutt46/domain-check/blob/main/domain-check-lib/README.md) | [docs.rs](https://docs.rs/domain-check-lib)
## MCP Server
`domain-check-mcp` exposes domain checking as tools for AI coding agents via the [Model Context Protocol](https://modelcontextprotocol.io). Works with any MCP-compatible client.
```bash
# Install
cargo install domain-check-mcp
# AWhat people ask about domain-check
What is saidutt46/domain-check?
+
saidutt46/domain-check is mcp servers for the Claude AI ecosystem. Fast, universal domain availability checker - 1,200+ TLDs, pattern generation, RDAP with WHOIS fallback. CLI + Rust library + MCP server for AI agents. It has 308 GitHub stars and its last recorded update is dated 2026-10-11.
How do I install domain-check?
+
You can install domain-check by cloning the repository (https://github.com/saidutt46/domain-check) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is saidutt46/domain-check safe to use?
+
Our security agent has analyzed saidutt46/domain-check and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains saidutt46/domain-check?
+
saidutt46/domain-check is maintained by saidutt46. The last recorded GitHub activity is dated 2026-10-11, with 4 open issues.
Are there alternatives to domain-check?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy domain-check to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/saidutt46-domain-check)<a href="https://claudewave.com/repo/saidutt46-domain-check"><img src="https://claudewave.com/api/badge/saidutt46-domain-check" alt="Featured on ClaudeWave: saidutt46/domain-check" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
Reverse engineer anything with agents, from app behavior down to native binaries.
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev