Skip to main content
POST
Registra un cliente público con URL de callback exactas y un conjunto limitado de permisos de producto.

Autenticación

Ninguna. El registro no inicia la sesión de un usuario ni autoriza una conexión de cuenta.

Cuerpo de la solicitud

array
requerido
Entre 1 y 10 URL de retorno antes de eliminar los duplicados.Número mínimo de elementos: 1. Número máximo de elementos: 10.
string
Etiqueta opcional del cliente; se eliminan los espacios de los extremos antes de guardarla y debe seguir sin estar vacía.Longitud mínima: 1. Longitud máxima: 120. Patrón: ^(?=.*\S)[^\u0000-\u001F\u007F]+$. Valor predeterminado: “MCP client”.
field
Solo clientes públicos.Valor obligatorio: “none”. Valor predeterminado: “none”.
union
Debe incluir authorization_code; refresh_token es opcional. Si se omite o es null, se seleccionan ambos. Se eliminan los valores duplicados.Valor predeterminado: [“authorization_code”,“refresh_token”].
array
Lista de valores. Consulta la estructura de sus elementos en el esquema completo de entrada.Número mínimo de elementos: 1. Número máximo de elementos: 1. Valor predeterminado: [“code”].
string
Permisos de scopes_supported separados por espacios, que pueden incluir offline_access. Se rechazan los nombres no admitidos y los valores que solo contienen espacios en blanco; se eliminan los duplicados. Si se omite scope o no se indican permisos de producto, por ejemplo solo openid o solo offline_access, se registran todos los ámbitos de producto admitidos. email requiere openid; email solo se rechaza. Cuando OpenID Connect está disponible, el registro incluye openid y email como capacidades del cliente aunque se omita scope. El registro no concede acceso; los permisos de identidad requieren una solicitud de autorización explícita y el consentimiento del usuario.Longitud mínima: 1. Longitud máxima: 2048. Patrón: ^ *(?: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))* *$.

Ejemplos de solicitud

Sigue la codificación y la autenticación documentadas para esta ruta. El formato envolvente y las reglas de idempotencia de la API de acciones solo se aplican a las invocaciones de acciones.

Respuesta

Metadatos del cliente público registrado. Guarda client_id y úsalo con el redirect_uri exacto registrado. No se emite ningún client_secret.
HTTP 201

Cabeceras de respuesta

Notas de la operación

  • Los parámetros escalares reconocidos deben proporcionarse una sola vez como cadenas no vacías, sin caracteres de control ASCII ni DEL. Los campos repetidos de consulta o formulario se decodifican como arrays y se rechazan al leerse como escalares.
  • Usa Content-Type application/json. Un cuerpo de registro codificado como URL se rechaza con la respuesta OAuth invalid_request; el analizador de la integración puede rechazar antes los tipos de contenido no compatibles.
  • Las URI de redirección se conservan y se comparan de forma exacta. Los cambios en mayúsculas y minúsculas, representación del puerto, ruta, consulta o barra final requieren registrar esa URI exacta.
  • Los callbacks HTTP solo aceptan los nombres de bucle local literales localhost, 127.0.0.1 y [::1]. No se admiten hosts de redes privadas, representaciones alternativas de IP, *.localhost ni LOCALHOST en mayúsculas.
  • El único callback aceptado con un esquema de URI personalizado es exactamente cursor://anysphere.cursor-mcp/oauth/callback.
  • Cada URL de retorno debe superar la validación; una sola URL de retorno no válida rechaza todo el registro. Se rechazan las credenciales en la URL, los espacios en blanco, los caracteres de control, los fragmentos y las barras invertidas.
  • El cliente puede registrar cualquier ámbito de producto compatible, pero el usuario debe aprobar por separado el subconjunto solicitado durante la autorización. El registro por sí solo no concede acceso.
  • Solo se admiten los tipos de concesión authorization_code y, opcionalmente, refresh_token. Un cliente registrado sin refresh_token no recibe ningún token de actualización.
  • La implementación actual ignora los campos de metadatos de nivel superior desconocidos. Los campos conocidos mantienen las restricciones mostradas en el esquema.
  • El límite público de registro es de 10 solicitudes cada 10 minutos por IP de cliente, compartido entre los workers. Los cuerpos JSON están limitados a 1 MiB.
  • Un registro correcto devuelve HTTP 201.
  • openid y email son permisos de identidad, distintos de los permisos del producto, y solo se aceptan cuando se anuncian. email requiere openid. Durante la autorización inicial, una solicitud que solo contiene permisos de identidad usa los permisos predeterminados del producto mostrados en la pantalla de consentimiento.

Errores