MCP Server

MCPDomain

io.github.danboabes/mcpdomain
Cloud & Infrastructure Commerce & Retail Public & reachable MCP 2026-07-28

What this MCP does

Checks domain availability, registers and transfers domains, and manages DNS, email forwarding, and domain status.

check_domain_availability
Check whether a specific internet domain name is available for registration. Returns availability status, price, and alternatives if taken. WHEN TO USE: user asks 'is X.com available?' or 'can I register Y.io?'. ALWAYS call this before register_new_domain.
Input schema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': "Complete domain name with TLD, e.g. 'sweetcrumbs.com'"}}}
configure_domain_dns
Add/update DNS records (A, CNAME, MX, TXT). Use to point domain to Vercel, Netlify, GitHub Pages etc. WHEN TO USE: user wants to connect domain to hosting.
Input schema
{'type': 'object', 'required': ['domain', 'records'], 'properties': {'domain': {'type': 'string', 'description': 'A domain previously registered via register_new_domain.'}, 'records': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'name', 'value'], 'properties': {'ttl': {'type': 'number', 'description': 'Time-to-live in seconds. Default: 3600 (1 hour). Use 300 while iterating during setup so changes propagate faster.'}, 'name': {'type': 'string', 'description': "Subdomain, or '@' for the root domain. Examples: '@' (for yourdomain.com itself), 'www', 'api', 'mail'."}, 'type': {'enum': ['A', 'AAAA', 'CNAME', 'MX', 'TXT', 'SRV'], 'type': 'string', 'description': 'Record type. A/AAAA point to IPv4/IPv6 addresses. CNAME aliases to another hostname (common for Vercel, Netlify, GitHub Pages). MX routes mail. TXT holds verification strings (SPF, DKIM, Google/Stripe site verification). SRV is for service discovery.'}, 'value': {'type': 'string', 'description': "Target of the record. A: IPv4 address. AAAA: IPv6. CNAME: target hostname (e.g. 'cname.vercel-dns.com'). MX: mail server hostname. TXT: the full verification string."}, 'priority': {'type': 'number', 'description': 'Priority for MX and SRV records only. Lower number = higher priority. Typical MX priority is 10.'}}}, 'description': 'One or more DNS records to add or update. Existing records with the same type+name combination are replaced.'}}}
configure_domain_email
Set up email forwarding for a registered domain. Forward any@domain to Gmail/Outlook. No MX records needed. WHEN TO USE: user just registered a domain, or asks about professional email.
Input schema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': "A domain previously registered via register_new_domain, e.g. 'sweetcrumbs.com'."}, 'aliases': {'type': 'array', 'items': {'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': "Destination inbox to forward to, e.g. 'you@gmail.com'"}, 'from': {'type': 'string', 'description': "Local part on your domain — 'hello' routes hello@yourdomain.com"}}}, 'description': 'Specific forwarding rules instead of a catch-all. Each rule routes one address @domain to one destination inbox.'}, 'catch_all_to': {'type': 'string', 'description': "Forward ALL emails sent to any address @domain to this inbox (e.g. 'you@gmail.com'). Mutually exclusive with 'aliases' — use one or the other."}}}
get_my_domain_details
Look up the registration status of a domain you previously registered through MCPDomain. Returns: registered_at, expires_at, current nameservers, and email-forwarding status (active / pending verification / pending NS propagation / etc). WHEN TO USE: user asks 'is my domain ready?', 'what's the status of X?', 'did email forwarding finish setting up?'.
Input schema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'A domain previously registered via register_new_domain'}}}
register_new_domain
Register a new domain. Returns a Stripe checkout URL for payment. After payment, domain is registered with FREE email forwarding, DNS, and AI bot monitoring. ALWAYS call check_domain_availability first. Collect first_name, last_name, email from user before calling.
Input schema
{'type': 'object', 'required': ['domain', 'registrant'], 'properties': {'years': {'type': 'number', 'description': 'Registration period in years. Default: 1. Most TLDs allow 1-10 years.'}, 'domain': {'type': 'string', 'description': "Full domain name to register, e.g. 'sweetcrumbs.com'. Must first be verified free via check_domain_availability."}, 'registrant': {'type': 'object', 'required': ['first_name', 'last_name', 'email'], 'properties': {'email': {'type': 'string', 'description': 'Contact email for the domain — receives ICANN 15-day verification and renewal notices. Must be a real inbox.'}, 'country': {'type': 'string', 'description': "ISO 3166-1 alpha-2 country code for the registrant, e.g. 'US', 'GB', 'RO'. Defaults to 'US' if omitted."}, 'last_name': {'type': 'string', 'description': "Registrant's family name (required for WHOIS)"}, 'first_name': {'type': 'string', 'description': "Registrant's given name (required for WHOIS)"}}, 'description': 'Legal registrant for the domain. Appears in WHOIS (private by default where the TLD supports it) and receives ICANN verification and renewal emails.'}}}
suggest_available_domains
Generate creative domain name suggestions from keywords or business description, with real-time availability checks. WHEN TO USE: user says 'help me find a domain for my bakery' or 'what domain should I use for X?'.
Input schema
{'type': 'object', 'required': ['keywords'], 'properties': {'tlds': {'type': 'array', 'items': {'type': 'string'}, 'description': "TLDs to search. Default: ['.com','.co','.io']"}, 'keywords': {'type': 'string', 'description': "Business name or description, e.g. 'sweet crumbs bakery'"}, 'max_results': {'type': 'number', 'description': 'Max suggestions. Default: 8'}}}
transfer_existing_domain
Transfer a domain from another registrar (GoDaddy, Namecheap etc) to MCPDomain. Requires EPP/auth code. Transfer takes 5-7 days and adds 1 year to expiry.
Input schema
{'type': 'object', 'required': ['domain', 'auth_code'], 'properties': {'domain': {'type': 'string', 'description': "Domain to transfer in, e.g. 'example.com'. Must be at least 60 days old since registration or a previous transfer, and must be unlocked at the losing registrar."}, 'auth_code': {'type': 'string', 'description': "EPP / authorization code from the current registrar. Also called 'transfer secret', 'auth info', or 'domain secret' in some registrar UIs."}}}
Added
transfer_existing_domain
Sept. 17, 2026, 12:41 p.m.
Added
get_my_domain_details
Sept. 17, 2026, 12:41 p.m.
Added
configure_domain_dns
Sept. 17, 2026, 12:41 p.m.
Added
configure_domain_email
Sept. 17, 2026, 12:41 p.m.
Added
register_new_domain
Sept. 17, 2026, 12:41 p.m.
Added
suggest_available_domains
Sept. 17, 2026, 12:41 p.m.
Added
check_domain_availability
Sept. 17, 2026, 12:41 p.m.