-
Notifications
You must be signed in to change notification settings - Fork 496
Open
Description
Context
MCP clients apps self-register at connection time and do not pre-configure a client_id.
We need to implement POST endpoint where a client sends its name and redirect URIs and gets a client_id back.
Registration alone grants zero access. A real user must still log in and consent before any token is issued.
- Create a view at
POST /o/register/ - The view accepts a JSON body with:
client_name(required)redirect_uris(required, array of strings)grant_types(optional, default["authorization_code", "refresh_token"])response_types(optional, default["code"])token_endpoint_auth_method(optional, default"none")
- The view creates a DOT
Applicationobject withclient_type="public",authorization_grant_type="authorization_code" - Returns
201 Createdwith the generatedclient_idand submitted metadata - Rate limiting: per-IP and global limits to prevent abuse -> Re-use login throttle
- Redirect URI validation:
- HTTPS required for all redirect URIs
- No wildcards, exact match only
localhostexception:http://localhost:*andhttp://127.0.0.1:*permitted (standard for native/CLI OAuth clients, required by MCP clients)
- No authentication required on this endpoint
Definition of done
-
POST /o/register/creates a DOT Application and returns aclient_id - Only public clients are created (no client secret issued)
- Redirect URI validation enforced (HTTPS, no wildcards, localhost exception)
- Rate limiting active
- Invalid requests return error response
- The
client_idcan be used to start an Authorization Code + PKCE flow - Monitor the registration of new applications and potential abuses / Recurring Tasks
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels