Custom domain
By default, your published MCP servers are served on FlowCP's host (https://runtime.flowcp.io/mcp/<server-id>). With a custom domain you can serve them on your own hostname instead — for example https://mcp.yourcompany.com/mcp/<server-id> — so the URL your customers configure in their AI client is fully branded as yours.
This is different from the Bubble Custom domain setting, which points at your app's upstream backend. The custom domain here is the public MCP endpoint that AI clients connect to.
How it works
You bring your own domain and point it at FlowCP with a CNAME record. FlowCP verifies you control the domain and provisions a TLS certificate for it automatically (via Cloudflare for SaaS). Once the domain is verified and its certificate is active, your app's published MCP servers are served on it.
One domain per app. The domain is bound to an app and serves every published branch of that app under the same
/mcp/<server-id>path.Verified + active before it serves. Until both ownership verification and certificate issuance complete, traffic continues on the default host. FlowCP never advertises your domain in OAuth metadata until it can terminate TLS.
Add a custom domain
Open your app and go to Settings.
Find the MCP server domain card.
Enter your hostname (for example
mcp.yourcompany.com) and click Add domain.
FlowCP shows the DNS records you need to publish:
A CNAME record pointing your hostname at FlowCP's target host.
One or more ownership / certificate validation records (a
TXTrecord, or an HTTP token) when required.
Publish the DNS records
Add the records shown in the card at your DNS provider. A typical setup is:
CNAME
mcp.yourcompany.com
mcp.flowcp.io
TXT
_cf-custom-hostname…
(value from FlowCP)
DNS propagation and certificate issuance usually take a few minutes. The card polls automatically while it's open, or you can click Refresh status. You don't have to keep the page open: a background job also re-checks still-provisioning domains periodically, so a domain that finishes verifying overnight flips to Active on its own.
When it's active
Once the status badge reads Active:
The card confirms the live host.
The Publish page's config snippet (and the
auth.mdURL) automatically switch to your domain, so the JSON you hand to AI clients targetshttps://mcp.yourcompany.com/mcp/<server-id>.
Already-connected clients pointed at the default host keep working; new configs use the custom domain.
Remove a custom domain
Click Remove on the card and confirm. Published servers immediately revert to the default host, and FlowCP de-registers the domain and its certificate. You can add the domain again later.
Troubleshooting
Stuck on Pending. Confirm the CNAME and any validation records exactly match what the card shows. Some DNS providers flatten or proxy CNAMEs at the apex — use a subdomain like
mcp.rather than the root domain.Failed status. Certificate provisioning failed (often a missing or proxied validation record). Fix the DNS records, then Remove and re-add the domain to retry.
That domain is reserved / already in use. A hostname can be bound to only one workspace, and platform hosts can't be claimed. Pick a hostname you control.
Last updated