For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

  1. Open your app and go to Settings.

  2. Find the MCP server domain card.

  3. 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 TXT record, 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:

Type
Name
Value

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.md URL) automatically switch to your domain, so the JSON you hand to AI clients targets https://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