mck_ bearer the /mcp
path already understands, so both hosted clients converge on one credit-account
model.
Discovery
GET /.well-known/oauth-protected-resource(RFC 9728)GET /.well-known/oauth-authorization-server(RFC 8414)
CIMD (no client registration)
The metadata advertises:client_id_metadata_document_supported: truenoneintoken_endpoint_auth_methods_supportedauthorization_response_iss_parameter_supported: true(RFC 9207)
registration_endpoint is intentionally
absent.
Flow
1
Authorize
GET /authorize — PKCE S256 required; client_id is the client’s HTTPS
metadata-document URL, and redirect_uri is validated against it.2
Exchange the code
A single-use code →
POST /token →
{access_token: "mck_…", token_type: "Bearer"}.Connecting mints a 0-credit account.
search works right away; fetch and
index_org return the checkout link until the account is topped up. The 100
free credits stay tied to a real Stripe checkout, so connecting can’t farm
them.Static bearer
For non-interactive clients (curl, scripts), skip OAuth and sendAuthorization: Bearer <mck_…> from a Stripe checkout. It resolves to the same
credit account as the OAuth flow.
