Skip to main content
POST
Enregistrez un client public avec des URL de rappel exactes et un ensemble limité d’autorisations produit.

Authentification

Aucune. L’enregistrement ne connecte pas d’utilisateur et n’autorise pas de connexion à un compte.

Corps de la requête

array
requis
Entre 1 et 10 URL de rappel avant suppression des doublons.Nombre minimal d’éléments: 1. Nombre maximal d’éléments: 10.
string
Libellé facultatif du client ; les espaces en début et en fin sont supprimés avant l’enregistrement et il doit rester non vide.Longueur minimale: 1. Longueur maximale: 120. Motif: ^(?=.*\S)[^\u0000-\u001F\u007F]+$. Valeur par défaut: “MCP client”.
field
Clients publics uniquement.Valeur requise: “none”. Valeur par défaut: “none”.
union
Doit inclure authorization_code ; refresh_token est facultatif. Une valeur omise ou null sélectionne les deux. Les doublons sont supprimés.Valeur par défaut: [“authorization_code”,“refresh_token”].
array
Liste de valeurs. Consultez le schéma d’entrée complet pour connaître la structure de ses éléments.Nombre minimal d’éléments: 1. Nombre maximal d’éléments: 1. Valeur par défaut: [“code”].
string
Permissions de scopes_supported séparées par des espaces, pouvant inclure offline_access. Les noms non pris en charge et les valeurs composées uniquement d’espaces sont rejetés ; les doublons sont supprimés. Omettre scope ou ne fournir aucune permission produit, par exemple openid seul ou offline_access seul, enregistre toutes les permissions produit prises en charge. email nécessite openid ; email seul est rejeté. Quand OpenID Connect est disponible, l’enregistrement inclut openid et email comme capacités du client, même si scope est omis. L’enregistrement n’accorde aucun accès ; les permissions d’identité nécessitent une demande d’autorisation explicite et le consentement de l’utilisateur.Longueur minimale: 1. Longueur maximale: 2048. Motif: ^ *(?:account:read|usage:read|settings:read|settings:write|team:read|team:write|projects:read|projects:write|projects:delete|translations:write|transcription:read|transcription:write|subtitles:read|subtitles:write|tts:read|tts:write|voices:read|voices:write|images:read|images:write|thumbnails:read|thumbnails:write|folders:read|folders:write|glossary:read|glossary:write|webhooks:read|webhooks:write|publishing:read|publishing:write|offline_access|openid|email)(?: +(?:account:read|usage:read|settings:read|settings:write|team:read|team:write|projects:read|projects:write|projects:delete|translations:write|transcription:read|transcription:write|subtitles:read|subtitles:write|tts:read|tts:write|voices:read|voices:write|images:read|images:write|thumbnails:read|thumbnails:write|folders:read|folders:write|glossary:read|glossary:write|webhooks:read|webhooks:write|publishing:read|publishing:write|offline_access|openid|email))* *$.

Exemples de requêtes

Suivez l’encodage et l’authentification documentés pour cette route. L’enveloppe et les règles d’idempotence de l’API d’actions s’appliquent uniquement aux invocations d’actions.

Réponse

Métadonnées du client public enregistré. Conservez client_id et utilisez-le avec le redirect_uri exact enregistré. Aucun client_secret n’est émis.
HTTP 201

En-têtes de réponse

Notes de l’opération

  • Les paramètres scalaires reconnus doivent être fournis une seule fois, sous forme de chaînes non vides sans caractères de contrôle ASCII ni DEL. Les champs de requête ou de formulaire répétés sont décodés en tableaux et rejetés lorsqu’ils sont lus comme des scalaires.
  • Utilisez Content-Type application/json. Un corps d’enregistrement encodé en URL est rejeté avec la réponse OAuth invalid_request ; les types de média non pris en charge peuvent être rejetés en amont par l’analyseur de l’intégration.
  • Les URI de redirection sont conservées et comparées à l’identique. Toute modification de la casse, de l’écriture du port, du chemin, de la requête ou de la barre oblique finale nécessite l’enregistrement de cette URI exacte.
  • Les URL de rappel HTTP acceptent uniquement les noms de bouclage bruts localhost, 127.0.0.1 et [::1]. Les hôtes de réseau privé, les autres représentations d’adresses IP, *.localhost et LOCALHOST en majuscules ne sont pas admis.
  • La seule URL de rappel acceptée avec un schéma d’URI personnalisé est exactement cursor://anysphere.cursor-mcp/oauth/callback.
  • Chaque URL de rappel doit réussir la validation ; une seule URL de rappel invalide entraîne le rejet de l’enregistrement entier. Les identifiants de connexion dans l’URL, les espaces, les caractères de contrôle, les fragments et les barres obliques inverses sont refusés.
  • Le client peut enregistrer n’importe quelle portée produit prise en charge, mais l’utilisateur doit approuver séparément le sous-ensemble demandé lors de l’autorisation. L’enregistrement seul n’accorde aucun accès.
  • Seuls les types d’autorisation authorization_code et, facultativement, refresh_token sont pris en charge. Un client enregistré sans refresh_token ne reçoit aucun jeton d’actualisation.
  • Les champs de métadonnées inconnus au premier niveau sont ignorés par l’implémentation actuelle. Les champs connus conservent les contraintes indiquées dans le schéma.
  • La limite publique d’enregistrement est de 10 requêtes par 10 minutes et par adresse IP client, partagée entre les workers. Les corps JSON sont limités à 1 MiB.
  • Un enregistrement réussi renvoie HTTP 201.
  • openid et email sont des permissions d’identité, distinctes des permissions produit, acceptées uniquement lorsqu’elles sont annoncées. email nécessite openid. Lors de l’autorisation initiale, une demande contenant seulement des permissions d’identité utilise les permissions produit par défaut affichées sur l’écran de consentement.

Erreurs