Pro. One custom domain is included.
https://amber-jetty.t.heymcp.dev/mcp, serve on:
Add a domain
1
Add it in the dashboard
Domains in app.heymcp.dev, then add your
hostname —
mcp.example.com.You get back two DNS records to create.2
Create the CNAME
Points traffic at HeyMCP’s edge.
3
Create the TXT record
Proves you own the hostname.
The full name is
_heymcp.mcp.example.com. Most DNS providers want just the
subdomain part relative to your zone, which is _heymcp.mcp.4
Wait for verification
HeyMCP checks both records and activates the domain once they’re present.
DNS propagation is the slow part — usually minutes, occasionally longer.
5
Use it
Why both records
The CNAME alone would be enough to route traffic. The TXT record is what stops subdomain takeover: without it, anyone who noticed a dangling CNAME pointing atedge.heymcp.dev could claim that hostname in their own HeyMCP account and
start serving from it.
Ownership before traffic. A domain with a CNAME and no TXT never routes.
Certificates
Handled for you. The certificate is obtained from Let’s Encrypt on the first connection to your domain and renewed automatically. There is nothing to upload and nothing to renew.CAA records
If your domain has a CAA record restricting which certificate authorities may issue for it, Let’s Encrypt must be allowed. HeyMCP checks this during verification and tells you which hostname carries the blocking record rather than leaving you with a silent certificate failure:A CAA record onexample.comonly allows certain certificate authorities, and Let’s Encrypt is not one of them. Add0 issue "letsencrypt.org"and we will try again.
Removing a domain
Delete it from the Domains page. Remove the DNS records too — a CNAME left pointing atedge.heymcp.dev for a domain nobody owns in HeyMCP just returns
404, but tidying up is the right habit.
Troubleshooting
Stuck waiting for DNS
Stuck waiting for DNS
Check both records resolve:The CNAME should return
edge.heymcp.dev. and the TXT should return your
token. If your provider appended your zone to a name that was already
fully-qualified, you’ll see _heymcp.mcp.example.com.example.com — a very
common mistake.CAA blocked
CAA blocked
Add
0 issue "letsencrypt.org" to the hostname named in the error. The
check walks up the domain, so the record may be on a parent, not on the
subdomain itself.--domain refused
--domain refused
The domain must be verified and active first, and custom domains are a Pro
feature. Check the Domains page and
heymcp whoami.404 on the custom domain
404 on the custom domain
Nothing is bound to it. Either verification hasn’t completed, or you’re
running
heymcp share without --domain — in which case your tunnel is on
your slug, not your domain.