How do I serve my MCP on a custom domain?

Open the deployment → Settings → Custom domain. Enter the hostname you want to use (e.g. mcp.acme.com), add the CNAME record we show you at your DNS provider, and click Verify. Once DNS resolves, we provision a TLS certificate via Let's Encrypt and your MCP is reachable at that hostname within minutes. The mcp.commandplusk.com/<slug> URL keeps working as a fallback.

Step-by-step

  1. Pick a subdomain. Pick something like mcp.<your-domain> or api.<your-domain>. Apex/root domains aren't supported because we need CNAME-style routing.
  2. Add the CNAME at your DNS. Create a CNAME from your chosen hostname to ingress.commandplusk.com. TTL 300 is fine.
  3. Click Verify. We check DNS, then automatically issue a Let's Encrypt cert and bind it to your deployment.
  4. Update clients. Point your MCP clients at the new hostname. The old URL keeps redirecting.

The CNAME record

dns
mcp.acme.com.   IN CNAME   ingress.commandplusk.com.

Both URLs stay live

Even after you add a custom domain, the default mcp.commandplusk.com/<slug> URL keeps working. You can roll out the change to clients gradually.

Next steps

FAQ

Why a CNAME and not an A record?
Our edge IPs change. A CNAME lets us fail traffic over without you touching DNS. We don't currently support apex domains for this reason; use a subdomain.
How long does TLS provisioning take?
Usually under 60 seconds after DNS resolves. If DNS is slow to propagate (large TTL on the previous record), it can take longer.
Can one domain serve multiple deployments?
No — one custom hostname maps to exactly one deployment. Use path-based slugs on the default mcp.commandplusk.com if you want one host fronting many.