OAuth is for MCP clients acting on behalf of a person. To call the REST API from your own code, use an account API key instead. See Authentication.
Authorization server metadata
The authorization server metadata follows RFC 8414. It lives at the domain root, not under/v1:
Example response:
scopes_supported. Read the live document for the full list rather than hardcoding it.
Protected resource metadata
Each OAuth-protected resource also publishes RFC 9728 metadata. It names the authorization server and the scopes that resource accepts. The path is the resource’s own path, appended to/.well-known/oauth-protected-resource:
401 response. The response’s WWW-Authenticate header carries a resource_metadata link to it.
How a client connects
- The client calls the resource without a token and gets a
401with aresource_metadatalink. - It reads the protected resource metadata to find the authorization server.
- It reads the authorization server metadata to find the endpoints.
- It registers itself at the
registration_endpoint. - It sends the person to the
authorization_endpointwith a PKCE challenge. The person approves the requested scopes on Guild’s consent screen. - It exchanges the returned code at the
token_endpoint, then sends the access token as a Bearer token.