Cache-Control: public, max-age=300).
Authorization server metadata (RFC 8414)
PKCE is mandatory —
code_challenge_methods_supported is ["S256"] only, and response_types_supported is ["code"]. There is no implicit grant. See PKCE.MCP server metadata
mcp_version field tracks the MCP authorization spec version HASP currently implements. Tokens are opaque (token_format: "opaque") — validate them with token introspection rather than parsing them.
authorization_details JSON Schema
authorization_details array — the same schema the in-console scope-grant builder validates against. Fetch it to validate authorization_details client-side before requesting a credential.
The response supports conditional requests: it returns an ETag and honors If-None-Match, replying 304 Not Modified when your cached copy is current.
authorization_details types: hasp.data.read, hasp.data.write, external.tool.invoke, agent.delegate, and human.escalate. See the consent screen for how a requested grant is presented to the approving user.
Token revocation (RFC 7009)
200 with an empty body {}, even for an unknown or already-revoked token. Revocation is immediate: the credential cannot be used on any surface after the call returns.