OAuth y permisos
Cómo un agente obtiene acceso a un negocio con OAuth 2.1, qué permite cada permiso y cómo se revoca.
El acceso al MCP de Restoman es OAuth 2.1 con PKCE. El servidor de autorización es https://api.restoman.com.ar; el recurso protegido, https://api.restoman.com.ar/mcp. El mismo flujo, paso a paso y para agentes, está en https://api.restoman.com.ar/auth.md.
Descubrir
- Una llamada al MCP sin token responde
401conWWW-Authenticate: Bearer resource_metadata="https://api.restoman.com.ar/.well-known/oauth-protected-resource/mcp". - Ese documento (RFC 9728) nombra el servidor de autorización y los permisos.
- Los datos del servidor están en
https://api.restoman.com.ar/.well-known/oauth-authorization-server(RFC 8414) y en/.well-known/openid-configuration.
Registrarse
No hay claves para pedir. El agente se registra solo, de una de dos formas:
- Client ID Metadata Document, la forma que prefiere MCP: el
client_ides una dirección https que sirve los datos del cliente. - Registro dinámico (RFC 7591) en
https://api.restoman.com.ar/api/auth/oauth2/register, sin autenticarse. Mandá"token_endpoint_auth_method": "none"para registrarte como cliente público; si no, el registro te da un secreto (client_secret_basic), que tenés que guardar y mandar.
Un cliente que no pide permisos recibe los de lectura y offline_access.
Autorizar
- Mandá a la persona a
https://api.restoman.com.ar/api/auth/oauth2/authorizeconresponse_type=code, tuclient_idyredirect_uri, uncode_challengeconS256, los permisos enscopeyresource=https://api.restoman.com.ar/mcp. - La persona ingresa al panel de Restoman con el código que le llega por email.
- Si es parte de más de un negocio, elige a cuál te conecta. Cada permiso es para un solo negocio.
- Marca qué te deja hacer: lo que solo lee viene marcado; lo que cambia cosas, no.
- Vuelve a tu
redirect_uricon uncode, que cambiás por los tokens enhttps://api.restoman.com.ar/api/auth/oauth2/token.
Pedí offline_access para recibir un token de refresco. Los tokens de acceso son JWT para ese recurso y ese negocio, duran 10 minutos, y el de refresco cambia en cada uso. Se aceptan tokens atados a DPoP.
El soporte de Restoman, mientras ve el panel como otra persona, no puede conectar agentes por ella.
Permisos
| Permiso | Qué permite | Al conectar |
|---|---|---|
menu:read |
Leer las cartas y lo que está agotado | marcado |
orders:read |
Leer los pedidos para llevar | marcado |
reports:read |
Leer las ventas | marcado |
menu:availability |
Marcar platos agotados, o volver a ofrecerlos | sin marcar |
orders:pause |
Pausar y reanudar los pedidos para llevar | sin marcar |
menu:translate |
Traducir los textos de la carta a otro idioma | sin marcar |
Cada permiso es un techo sobre lo que el rol de la persona ya le deja hacer en ese negocio: con reports:read, un mozo igual no ve las ventas, y la herramienta responde por qué.
Revocar
- La persona te desconecta en Asistentes, en el panel: el permiso termina al instante y la próxima llamada responde
401. - Vos podés revocar un token de refresco en
https://api.restoman.com.ar/api/auth/oauth2/revoke(RFC 7009). Los tokens de acceso son JWT: no se revocan uno por uno (ese endpoint respondeunsupported_token_type) y dejan de servir cuando vencen, en 10 minutos como mucho.