-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
github-actions edited this page Jul 20, 2026
·
1 revision
MCP client (Claude, Cursor, …)
│ stdio
▼
┌───────────────────┐
│ domain-mcp │
│ FastMCP tools │
└─────────┬─────────┘
│
▼
┌───────────────────┐
│ DomainChecker │ normalize → cache → RDAP → WHOIS
└─────────┬─────────┘
│
┌────┴────┐
▼ ▼
RDAP WHOIS :43
(HTTPS) (IANA + registry)
| Module | Role |
|---|---|
server.py |
MCP tool definitions (FastMCP) |
checker.py |
Bootstrap, cache, RDAP orchestration, bulk pool |
whois_fallback.py |
Minimal WHOIS client + free/taken heuristics |
normalize.py |
Validation, URL stripping, IDNA/punycode |
models.py |
DomainCheckResult and status enums |
- Library: whoisit
- Bootstrap: IANA
dns.json+ community overrides -
ResourceDoesNotExist(HTTP 404) → treated as available
- Query
whois.iana.orgfor the TLD →whois:server - Query registry WHOIS for the domain
- Optional one-hop referral (thin registries)
- Regex heuristics for free vs registered
- In-process
TTLCache(default 300s, max 2048 entries) - Errors / invalid inputs are not cached as success
-
clear_domain_cacheflushes the map
check_domains uses a thread pool (default 8 workers). Prefer modest batch sizes to avoid registry rate limits.
- No auth secrets in the default path
- Runs as non-root in the official Docker image
- Outbound network only; no inbound ports required for stdio mode
domain-mcp
Links