Skip to main content

MCP Connect Auth: Publish MCP Servers with OAuth Clients Can Actually Use

· 4 min read
MCPBundles

TL;DR

  • MCP Connect Auth gives every published /skills listing a tenant authorization server — DCR, PKCE, protected-resource metadata, and federation to your existing sign-in.
  • Path B (bundle URL): publish, configure federation, point Claude/Cursor/ChatGPT at https://mcp.mcpbundles.com/bundle/{slug}/ — no pip install on your MCP server.
  • Path A (vendor origin): add mcpbundles-mcp-connect when clients hit your own MCP URL.
  • Full reference: MCP Connect Auth integration doc.

If you've tried to publish a remote MCP server and stalled on OAuth, you're not alone. Certified MCP clients expect dynamic client registration, PKCE, protected-resource metadata, and a coherent authorization server. Rolling that stack while also shipping tools is a common reason listings sit at /skills with zero connections.

The problem

Publishing to the MCPBundles directory is straightforward: HTTPS URL, tool discovery, metadata, done.

Connecting from a real MCP client is a different bar. Clients probe RFC 9728 protected-resource documents, register via DCR, run PKCE, and expect token endpoints that match the metadata they fetched. Vendors who already operate app login still need a separate MCP-client OAuth surface — or clients fail before the first initialize.

That gap shows up as:

  • Listings live on /skills but Claude/Cursor never complete OAuth
  • Custom OAuth stacks that work for your web app but not for MCP DCR
  • Protected-resource URLs that don't line up with where clients actually connect

The solution: MCPBundles MCP client authentication

When you publish with MCPBundles handles MCP client authentication, we provision a tenant authorization server per listing slug. Your upstream JSON-RPC stays unchanged. You configure:

  1. Federation sign-in URL — where users land to sign in on your app
  2. Federation secret — server-side only; used after login to complete OAuth

Two connect URLs share one tenant AS:

PathClient connects toVendor MCP code
Bundle URLhttps://mcp.mcpbundles.com/bundle/{slug}/Federation only
Vendor originYour public MCP base URLmcpbundles-mcp-connect / @mcpbundles/mcp-connect-auth

Path B is the fastest route to real client traffic: publish, federation, bundle URL. Path A adds origin hosting and optional client telemetry when you need clients on your domain.

Vendor checklist

  1. Publish your MCP server to the public directory with MCP Connect Auth enabled.
  2. Open the Connect Auth section in your maintainer dashboard — set federation sign-in URL and copy the secret once.
  3. (Path A only) Install mcpbundles-mcp-connect or @mcpbundles/mcp-connect-auth on your MCP server.
  4. After user login, call completeFederation from your backend with the OAuth state and your subject id.
  5. Ship — point clients at the bundle URL or your origin; run mcpbundles connect doctor --listing {slug} --surface bundle until green.

What you get in the dashboard

  • Connect Readiness — same probe ladder as the CLI (public-config, JWKS, tenant AS, protected-resource)
  • Connections — which MCP clients connected via bundle proxy or origin telemetry
  • Install snippets — copy-paste FastMCP setup for Path A

Optional add-ons

Origin client telemetry — when clients hit your origin (Path A), handshake middleware reports client name, protocol negotiation, and capability summaries into Connections. Path B gets full proxy telemetry with zero vendor code.

Claude / ChatGPT publishing assist — connector URLs and registry export from listing metadata when you're ready to submit to external directories.

Positioning

MCP Connect Auth is not a replacement for WorkOS, Scalekit, or your app login stack. It is the MCP-client OAuth layer for published remote servers — the part vendors routinely underestimate before /skills traffic arrives.

We built it because directory listings without connectable OAuth don't compound. Connect Auth makes "published and connectable" the default.

Get started

Publish with MCP Connect Auth or read the full integration reference.

mcpbundles connect doctor --listing your-slug --env staging --surface bundle

When readiness is green, connect from your certified MCP host using the bundle URL — federation loop complete, no custom AS required.