Pre-written prompts and workflow patterns for using domain-suite-mcp with AI coding agents.
Add to your project's CLAUDE.md or pass as system prompt context:
You have access to the domain-suite-mcp MCP server, which provides 21 tools for managing
domains and DNS. Use list_providers first to see which providers are configured and what
they support. Use check_availability to check if a domain is available before registering.
When performing DNS operations, prefer specifying the provider explicitly to avoid an
auto-detection round-trip.
Add to claude_desktop_config.json:
{
"mcpServers": {
"domain": {
"command": "npx",
"args": ["-y", "domain-suite-mcp"],
"env": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_API_KEY": "sk1_...",
"CLOUDFLARE_API_TOKEN": "..."
}
}
}
}Check if myapp.com is available on Porkbun, then register it for 1 year with privacy
protection, then create an A record pointing @ to 1.2.3.4 and a CNAME pointing www to @.
For myapp.com using Cloudflare DNS:
1. Set up Google Workspace MX records
2. Add an SPF record for Google
3. Add a DKIM record — selector "google", public key: <paste key>
4. Add a DMARC record with policy "none" and report email dmarc@myapp.com
I'm moving myapp.com to Cloudflare for DNS management. The domain is registered on Porkbun.
List the current DNS records from Porkbun, then recreate each one on Cloudflare.
Check if "myapp" is available as .com, .io, .dev, and .co using Porkbun — show pricing for each.
List all SSL certificates for myapp.com on Porkbun. If none exist, provision one.
Then show me the certificate chain and private key.
Get the current WHOIS contact for myapp.com on Namecheap, then update the email to
admin@myapp.com and phone to +1.4155551234.
Initiate an inbound transfer of myapp.com to Porkbun. The auth code is: XXXX-XXXX-XXXX.
Check the transfer status after initiating.
When an agent is deploying a new project end-to-end, domain steps fit naturally into the pipeline:
Phase 1: Infrastructure
- check_availability { domain: "myapp", tlds: ["com", "io"], provider: "porkbun" }
- register_domain { domain: "myapp.com", provider: "porkbun", contact: {...} }
Phase 2: DNS
- create_dns_record { domain: "myapp.com", provider: "cloudflare", type: "A", name: "@", content: "<server-ip>" }
- create_dns_record { domain: "myapp.com", provider: "cloudflare", type: "CNAME", name: "www", content: "@" }
Phase 3: Email
- setup_mx { domain: "myapp.com", provider: "cloudflare", mailProvider: "google" }
- setup_spf { domain: "myapp.com", provider: "cloudflare", mailProvider: "google" }
- setup_dmarc { domain: "myapp.com", provider: "cloudflare", policy: "none", reportEmail: "dmarc@myapp.com" }
Phase 4: SSL
- create_certificate { domain: "myapp.com", provider: "porkbun" }
When you don't know which provider holds a domain, omit provider from any tool call.
The server will fan out across all configured providers and auto-detect the correct one.
Specifying provider explicitly skips this and saves one network round-trip per call.
When a tool returns an error, the action field tells the agent exactly what to do next.
Common errors and responses:
| Error code | Meaning | Action |
|---|---|---|
IP_NOT_WHITELISTED |
Namecheap IP not whitelisted | Add server IP in Namecheap dashboard |
AUTH_FAILED |
Invalid API credentials | Check the environment variable values |
DOMAIN_NOT_FOUND |
Domain not in this provider | Try a different provider, or omit provider to auto-detect |
FEATURE_NOT_SUPPORTED |
Provider doesn't support this feature | Use a different provider (see list_providers) |
RATE_LIMITED |
Too many requests | Wait and retry; server handles backoff automatically on DNS calls |
MISSING_PARAMETER |
Required field not supplied | Add the missing field shown in the error |
- Call
list_providersfirst in any new session to understand what's configured - Specify
providerexplicitly whenever you know which provider manages a domain - For email setup: do MX first, then SPF, DKIM, DMARC — order matters for deliverability testing
- SPF, DKIM, and DMARC tools are idempotent: safe to call multiple times, they update in place
- DNS propagation is not instant — the tools confirm the record was created, not that it has propagated