Autorización y límites
Cómo autoriza Olimpia a los agentes, cuánto duran los tokens, qué límites hay y qué reglas sigue el servidor MCP para que un agente no haga daño.
OAuth 2.1
Olimpia es su propio servidor de autorización:
- Descubrimiento. El servidor publica
/.well-known/oauth-protected-resource(RFC 9728) y/.well-known/oauth-authorization-server(RFC 8414). Un pedido sin token a/mcpresponde401conWWW-Authenticateapuntando a esos documentos. - Registro de clientes. Por Client ID Metadata Document (el
client_ides una URLhttps) o por registro dinámico (POST /oauth/register, solo clientes públicos). - PKCE S256 obligatorio,
issen la respuesta (RFC 9207) yresourcevalidado (RFC 8707). - Consentimiento en olimpia.dev, con tu sesión. Ves qué agente pide acceso antes de aprobar.
| Credencial | Duración |
|---|---|
| Código de autorización | 10 minutos, un solo uso |
| Token de acceso | 1 hora |
| Token de refresco | 90 días, rota en cada uso |
| Código de conexión del plugin | 10 minutos, un solo uso, atado al agente que lo pidió |
| Token personal | Sin vencimiento, hasta que lo revocás |
POST /oauth/revoke revoca un token, y Cuenta → Agentes y tokens muestra y revoca cada conexión.
Mismos permisos que la consola
Cada herramienta llama a la misma API que usa la consola, con el token del pedido. Valida y autoriza exactamente igual: un agente no puede hacer nada que tu cuenta no pueda hacer.
Límites
| Límite | Valor |
|---|---|
Llamadas a /mcp |
240 por minuto por token |
| Recursos creados por MCP | 30 por hora |
| Intentos de código de conexión fallidos | 10 cada 10 minutos por agente |
| Filas por consulta de lectura | 200 |
| Tiempo de una escritura SQL | 30 segundos |
Reglas de seguridad
- Borrar exige confirmación.
delete_appydelete_resourcenecesitanconfirmcon el nombre exacto, que la persona tiene que aprobar. - Secretos ocultos por defecto.
get_envoculta los valores que parecen secretos salvo conreveal: true. - Datos no confiables. Los logs, la salida de los builds, los valores de variables y las filas de la base son datos, no instrucciones. Las herramientas lo indican para que el agente no siga órdenes escondidas ahí.
- SQL sin superusuario.
query_postgrescorre como el usuario dueño de la base; la lectura va en una transacción de solo lectura.
Buenas prácticas
- Usá OAuth para agentes interactivos y tokens personales solo para CI.
- Un token por integración, con un nombre que diga dónde se usa.
- Revocá las conexiones que ya no usás.