Skip to main content

Custom Domain Setup

A custom domain lets you publish your MCP server under your own hostname (e.g. mcp.acme.com) and submit it as an independent OpenAI plugin. Instead of sending users to mcp.shredly.io/mcp/your-slug, you can use a URL you fully own.


Prerequisites

  • An MCP server already created on Shredly (you'll need its MCP ID)
  • A domain you control with access to its DNS settings
  • The Shredly MCP connected to your agent (Claude, Cursor, etc.)

Step 1: Register your custom domain

Use the setCustomDomain tool on the Shredly MCP:

setCustomDomain
id: <your-mcp-id>
hostname: mcp.acme.com

This calls Cloudflare to provision SSL for your hostname automatically. The tool returns the DNS record you need to add:

CNAME mcp.acme.com → mcp-proxy.shredly.io

If your MCP already has a custom domain, you'll get a 409 error. Run deleteCustomDomain first, then retry.


Step 2: Add the CNAME record

In your DNS provider, add:

TypeName / HostTargetTTL
CNAMEmcp (or the subdomain you chose)mcp-proxy.shredly.ioAuto / 3600

If your domain is on Cloudflare: set this record to DNS only (grey cloud icon) — proxying it will interfere with SSL provisioning on Shredly's side.

DNS propagation typically takes a few minutes but can take up to 48 hours.


Step 3: Wait for verification

Poll the verification status using the getCustomDomainStatus tool:

getCustomDomainStatus
id: <your-mcp-id>

You'll see one of:

StatusMeaning
activeCNAME verified, SSL cert live — you're ready
pendingDNS hasn't propagated yet — check back in a few minutes
cname_errorYour CNAME is pointing to the wrong target
errorSomething unexpected happened — contact support

Keep polling until you see verified: true.


Step 4: Test your domain

Once verified, your MCP server is live at:

https://mcp.acme.com/mcp/<your-slug>

Try connecting to it:

claude mcp add --transport http my-mcp https://mcp.acme.com/mcp/your-slug

Step 5: Submit to OpenAI (optional)

To list your MCP as an OpenAI plugin, OpenAI needs to verify that you own the domain.

  1. Start the plugin submission flow at platform.openai.com
  2. OpenAI will give you a challenge token that looks like openai-challenge-abc123xyz...
  3. Store the token using the setOpenAiChallengeToken tool:
setOpenAiChallengeToken
id: <your-mcp-id>
value: openai-challenge-abc123xyz...
  1. Tell OpenAI to verify. It will fetch:

    GET https://mcp.acme.com/.well-known/openai-apps-challenge

    Shredly serves your token automatically at this URL.

  2. Complete the OpenAI submission with your MCP URL:

    https://mcp.acme.com/mcp/<your-slug>

Removing a custom domain

To remove the custom domain from your MCP server:

deleteCustomDomain
id: <your-mcp-id>

This removes the Cloudflare custom hostname, clears your stored challenge token, and allows you to register a different domain.


Troubleshooting

SSL handshake error when connecting Your CNAME may have propagated before the SSL cert finished provisioning. Wait a few minutes and run getCustomDomainStatus — cert issuance completes automatically once Cloudflare sees the CNAME.

cname_error status Your DNS record is pointing somewhere other than mcp-proxy.shredly.io. Double-check the CNAME target and that there are no conflicting A or AAAA records on the same subdomain.

OpenAI challenge token not found (404) Make sure you've called setOpenAiChallengeToken with the correct token value before telling OpenAI to verify. The token is case-sensitive.

409 when setting a custom domain Your MCP already has a domain registered. Call deleteCustomDomain first to clear it, then set the new one.