{"issuer":"https://www.rubenmarcus.dev","authorization_endpoint":"https://www.rubenmarcus.dev/oauth/authorize","token_endpoint":"https://www.rubenmarcus.dev/oauth/token","registration_endpoint":"https://www.rubenmarcus.dev/oauth/register","jwks_uri":"https://www.rubenmarcus.dev/oauth/jwks.json","response_types_supported":["code"],"grant_types_supported":["authorization_code"],"scopes_supported":["portfolio:read"],"code_challenge_methods_supported":["S256"],"token_endpoint_auth_methods_supported":["none"],"agent_auth":{"skill_uri":"https://www.rubenmarcus.dev/auth.md","register_uri":"https://www.rubenmarcus.dev/oauth/register","identity_types_supported":["anonymous"],"credential_types_supported":["oauth2_bearer"],"anonymous":{"credential_types_supported":["oauth2_bearer"],"request_shape":{"description":"Dynamic client registration (RFC 7591) at register_uri, then authorization-code + PKCE. Tokens are compatibility artifacts; the API does not require them.","steps":["POST register_uri","GET authorization_endpoint with code_challenge","POST token_endpoint"]}}}}