Entrar con tu cuenta de SETTO
Conecta claude.ai, ChatGPT, Codex o Claude Code a SETTO con OAuth en lugar de un token. Apruebas seis permisos en app.setto.io, la aplicación actúa como tú, cada cambio queda en «Actividad» y «Conexiones» la desconecta.
claude.ai, ChatGPT y Codex solo se conectan a servidores MCP remotos con OAuth,
y Claude Code también lo admite. SETTO es su propio servidor de autorización
OAuth, así que estas aplicaciones se conectan al
servidor MCP en https://docs.setto.io/mcp con tu cuenta
de SETTO: no hay token que crear, copiar ni pegar. Apruebas lo que la
aplicación puede hacer en una pantalla de consentimiento en app.setto.io, y
puedes cortarle el acceso cuando quieras.
Cómo funciona
- Agregas
https://docs.setto.io/mcpen la aplicación. - La aplicación abre SETTO en tu navegador. Si todavía no iniciaste sesión en SETTO, inicias sesión primero y vuelves a la misma solicitud.
- La pantalla de consentimiento de SETTO nombra la aplicación, su dominio, la dirección a la que vas a volver y la cuenta con la que iniciaste sesión, y lista los seis permisos con todos los que pidió la aplicación ya marcados. Desmarca lo que no quieras permitir; «Leer» siempre va incluido.
- Eliges Permitir acceso. SETTO te regresa a la aplicación, que ya tiene un token de acceso de tu cuenta.
- Desde ese momento cada llamada de herramienta actúa como tú: alcanza los torneos que administras — los que creaste, los que te invitaron a administrar y los de cada organización a la que perteneces, hoy y más adelante — y solo con los permisos que diste. Cada cambio que haga queda registrado en «Actividad».
El token de acceso es un token de API de SETTO como cualquier otro: el mismo
prefijo setto_live_, la misma cabecera Authorization: Bearer, así que la
API REST también lo acepta. Nunca aparece en
«Tokens de API»; la aplicación aparece en «Conexiones».
¿Otra cuenta?
La pantalla de consentimiento muestra la cuenta con la que iniciaste sesión. Si no es la que quieres, elige ¿No eres tú? Cerrar sesión, inicia sesión con la cuenta correcta y la misma solicitud continúa ahí. Una solicitud dura 10 minutos.
Los seis permisos
| Permiso | id | Qué permite | Lo usa hoy |
|---|---|---|---|
| «Leer» | read | Ver torneos, categorías, equipos, resultados, horarios y la actividad. Siempre incluido | Todas las herramientas de lectura, search_tournament, y propose_pool_per_court_schedule, preview_team_withdrawal, preview_division_format, preview_pools y preview_draw (no escriben nada) |
| «Programar partidos» | schedule | Asignar y mover el día, la hora y la cancha de los partidos que no se han jugado | apply_schedule_placements |
| «Gestionar torneos» | manage | Crear y editar torneos, categorías, cabezas de serie, equipos y jugadores; inscribir equipos; sustituir a un jugador («Sustitución») o dar de baja a un equipo («Baja»); fijar el formato de una categoría, sus grupos y su cuadro | Las quince herramientas de configuración: create_tournament, update_tournament, publish_tournament, set_tournament_lifecycle, create_division, update_division, delete_division, set_division_seeds, register_team, register_teams, update_team, remove_team, update_player, substitute_player, withdraw_team; y las seis de cuadros: apply_division_format, append_elimination_round, apply_pools, apply_draw, confirm_draw, set_game_teams |
| «Cargar resultados» | results | Registrar, corregir y borrar resultados de partidos | record_game_result, clear_game_result |
| «Página pública» | landing | Cambiar el diseño, las secciones, los patrocinadores y la visibilidad de la página pública | Ninguna herramienta todavía |
| «Enviar comunicaciones» | communications | Enviar correos a los participantes de tus torneos | Ninguna herramienta todavía |
Ningún permiso cambia ningún precio, marca de pago, registro de pago ni reembolso; una baja cierra los enlaces de pago sin pagar del equipo. Además, cada permiso está limitado por lo que tú puedes hacer en el panel: una aplicación nunca hace más de lo que podrías hacer tú. Los tokens de API llevan los mismos seis permisos — consulta Qué puede cambiar un token.
Un permiso que desmarcas no se otorga, y la aplicación no puede agregarlo a mitad de una sesión. Para cambiar lo que una aplicación puede hacer, conéctala otra vez desde la aplicación: el nuevo consentimiento reemplaza los permisos que tenía (la pantalla de consentimiento te lo avisa cuando ya la habías conectado). O desconéctala primero en «Conexiones».
Conecta tu aplicación
La URL del servidor es la misma en todas: https://docs.setto.io/mcp.
- En claude.ai abre Personalizar → Conectores (Customize → Connectors), elige + Agregar y luego Agregar conector personalizado.
- Llámalo
SETTO, pegahttps://docs.setto.io/mcpy continúa. claude.ai encuentra el inicio de sesión de SETTO por sí solo, así que deja vacíos los campos de cliente OAuth. - Elige Agregar y luego inicia sesión cuando claude.ai te lo pida: se abre la pantalla de consentimiento de SETTO, apruebas los permisos y claude.ai lista las herramientas de SETTO.
Los conectores personalizados funcionan en todos los planes de Claude; en Free puedes agregar uno. En Team y Enterprise un propietario agrega el conector una vez, en la configuración de la organización (Organization settings → Connectors), y luego cada miembro elige Conectar en Personalizar → Conectores e inicia sesión con su propia cuenta de SETTO. Claude Desktop usa el mismo conector.
Otros clientes:
- Claude Desktop usa los conectores de tu cuenta de Claude: agrega SETTO como en la pestaña de claude.ai.
- VS Code también puede iniciar sesión: agrega el servidor sin su bloque
headersy VS Code abre el inicio de sesión de SETTO. - Cursor todavía no puede iniciar sesión en SETTO: vuelve a una dirección
cursor://, y el inicio de sesión de SETTO solo regresa a direccioneshttps://y locales (http://localhost). Conecta Cursor con un token de API, como en la página del servidor MCP.
«Conexiones»: ver y desconectar aplicaciones
En app.setto.io → Configuración → Conexiones ves cada aplicación conectada a tu cuenta: su nombre y dominio, los permisos que le diste, cuándo la conectaste y cuándo se usó por última vez. Una aplicación que publica sus propios metadatos de cliente muestra un dominio verificado; el nombre de cualquier otra es el que ella misma declaró.
Desconectar le corta el acceso de inmediato. Su siguiente llamada de herramienta falla, su siguiente petición se rechaza, y tiene que pedirte que inicies sesión otra vez. Puedes tener hasta 25 aplicaciones conectadas.
«Actividad»
Cada cambio que una aplicación o un token hace en SETTO queda registrado en
«Actividad»: quién actuó (tú, a través de qué aplicación o token), qué
cambió, cuándo, y si funcionó o se rechazó, con su código. Crear o revocar un
token, y conectar o desconectar una aplicación, también quedan registrados. La
encuentras en Configuración → Actividad (tus aplicaciones y tokens), en
la configuración de una organización (sus torneos y sus tokens) y en el menú de
cada torneo. Una aplicación conectada lee los cambios que las aplicaciones y los
tokens hicieron en los torneos que alcanza con la herramienta list_activity
(GET /v1/external/activity). Lo que editas a mano en un torneo desde el panel
no aparece ahí. Si guardar un renglón falla, el cambio ya hecho se conserva, ese
renglón falta y SETTO recibe un aviso.
Solución de problemas
| Lo que ves | Por qué | Qué hacer |
|---|---|---|
Un error de herramienta unauthorized, o la aplicación te pide iniciar sesión otra vez | Desconectaste la aplicación en «Conexiones», o su acceso expiró | Inténtalo una vez más: la aplicación renueva su acceso o abre el inicio de sesión de SETTO. Si sigue fallando, conecta SETTO otra vez desde la aplicación |
INSUFFICIENT_SCOPE | A la conexión le falta el permiso que necesita esa herramienta, por ejemplo «Programar partidos» | Conecta SETTO otra vez desde la aplicación y deja ese permiso marcado en la pantalla de consentimiento |
| «La solicitud expiró» en la pantalla de consentimiento | Una solicitud de inicio de sesión dura 10 minutos | Empieza a conectar otra vez desde la aplicación |
| «Tienes demasiadas aplicaciones conectadas» | Llegaste a 25 aplicaciones conectadas | Desconecta una en Configuración → Conexiones y vuelve a intentarlo |
| Cursor no puede iniciar sesión | Vuelve a una dirección cursor://, que SETTO todavía no acepta | Usa un token de API en Cursor |
Para desarrolladores
La api de SETTO es su propio servidor de autorización OAuth 2.1, y el servidor MCP es un recurso protegido de ella.
| Metadatos del servidor de autorización | https://api.setto.io/.well-known/oauth-authorization-server (RFC 8414; el mismo documento en /.well-known/openid-configuration) |
Emisor (issuer) | https://api.setto.io, enviado también como iss en cada respuesta de autorización que vuelve a la aplicación (RFC 9207) |
| Metadatos del recurso protegido | https://docs.setto.io/.well-known/oauth-protected-resource/mcp (RFC 9728), nombrados en resource_metadata de cada 401 de /mcp |
| Endpoints | https://api.setto.io/v1/oauth/authorize, /v1/oauth/token, /v1/oauth/register, /v1/oauth/revoke |
| Flujo | Código de autorización con PKCE, solo S256; solo clientes públicos (token_endpoint_auth_method: none) |
| Identidad del cliente | Un Client ID Metadata Document (un client_id https://, preferido) o Dynamic Client Registration |
| Redirect URIs | https://, o http:// de loopback (localhost, 127.0.0.1, [::1], cualquier puerto). Los esquemas privados como cursor:// se rechazan |
| Errores de autorización | Un cliente desconocido o una redirect URI sin registrar: un 400 JSON, nunca una redirección. Después de eso, una petición incorrecta es un 400 JSON sin Location si la redirect URI es https://, y un 302 con error, state e iss si es de loopback. Elegir No permitir en la pantalla de consentimiento siempre vuelve a la aplicación |
| Scopes | read schedule manage results landing communications, separados por espacios. read siempre se otorga; openid, offline_access, profile y email se ignoran |
| Recurso (RFC 8707) | https://docs.setto.io/mcp (el predeterminado) o https://api.setto.io/v1/external |
| Token de acceso | 30 días. Un token de API de SETTO (setto_live_…) |
| Refresh token | Rota en cada uso; la sesión de la aplicación termina 90 días después de iniciarse |
| Revocación | POST /v1/oauth/revoke (RFC 7009), o «Desconectar» en «Conexiones» |
El 401 de /mcp no lleva scope= a propósito: así los clientes piden lo que
listan los metadatos del recurso protegido — los seis permisos — y el
organizador decide en la pantalla de consentimiento.
Relacionado
- Servidor MCP — las herramientas, el flujo de programación y la conexión con un token de API.
- Autenticación — los tokens de API, los seis permisos y la diferencia entre 401 y 403.
- Agent Skills — la alternativa agnóstica al cliente.
Servidor MCP
Conecta claude.ai, ChatGPT, Codex, Claude Code, Claude Desktop, Cursor, VS Code o cualquier cliente MCP de Streamable HTTP a SETTO. Entra con tu cuenta de SETTO o usa un token de API personal o de organización; 38 herramientas leen tus torneos, los configuran, inscriben y sustituyen equipos, arman sus grupos y cuadros, cargan resultados, programan sus partidos y muestran qué cambió.
Agent Skills
Instala el Agent Skill setto-api para que Claude Code, Cursor o cualquier agente que lea AGENTS.md conozca los 38 endpoints de la API externa de SETTO (incluidas las escrituras de configuración de torneos, de cuadros, de resultados y de programación, y la «Actividad»), los flujos de configuración, cuadros y resultados, sus reglas de populate y sus códigos de error.