Register a short-lived public OAuth client for interactive Admin MCP access.
curl --request POST \ --url https://auth.example.com/oauth/admin-agent/register \ --header 'Content-Type: application/json' \ --data '{ "redirect_uris": [ "http://127.0.0.1:49152/callback/random-id" ], "client_name": "Codex", "grant_types": [ "authorization_code", "refresh_token" ], "response_types": [ "code" ], "token_endpoint_auth_method": "none", "scope": "agent:read agent:user-data:read agent:write" }'Restricted RFC 7591 profile used by MCP hosts. No Initial Access Token is required. The endpoint accepts only public Authorization Code clients with PKCE, exact redirect URIs, and the three interactive Agent scopes. It never returns a client secret, cannot request trusted or skip-consent behavior, and does not issue an RFC 7592 registration management token. It is tenant scoped, rate limited, and expires after 30 days of inactivity.
Request Body required
Section titled “Request Body required ”object
Required and non-empty for redirect-based grants; omitted or empty for CIBA-only clients.
Space-separated subset of agent:read, agent:user-data:read, and agent:write. If present, agent:read is required. If omitted, the server registers all three as requestable ceilings; the Admin still selects the granted subset on the consent screen.
Optional request for sender-constrained tokens when the MCP host supports DPoP.
Example
{ "redirect_uris": [ "http://127.0.0.1:49152/callback/random-id" ], "client_name": "Codex", "grant_types": [ "authorization_code", "refresh_token" ], "response_types": [ "code" ], "token_endpoint_auth_method": "none", "scope": "agent:read agent:user-data:read agent:write"}Responses
Section titled “ Responses ”Restricted public Agent client registration without any secret.
object
Example
{ "token_endpoint_auth_method": "none", "require_pkce": true}OAuth error response.
object
Example generated
{ "error": "example", "error_description": "example"}OAuth error response.
object
Example generated
{ "error": "example", "error_description": "example"}OAuth error response.
object
Example generated
{ "error": "example", "error_description": "example"}OAuth error response.
object
Example generated
{ "error": "example", "error_description": "example"}