Autenticación OAuth de MCP
Bob Shell admite OAuth 2.1 para servidores MCP que requieren acceso delegado por el usuario. Bob gestiona el flujo de autenticación automáticamente, incluida la renovación del token, por lo que no necesitas gestionar los tokens manualmente.
Para la configuración general de MCP, consulta Configurar servidores MCP.
Descripción general
Algunos servidores MCP necesitan actuar en tu nombre como usuario, por ejemplo para leer tus repositorios de GitHub o acceder a tus archivos de Google Drive. Estos servidores usan OAuth 2.1 para solicitar tu consentimiento antes de acceder a cualquier dato.
Bob gestiona el flujo completo de OAuth automáticamente. Cuando te conectas a un servidor que requiere OAuth, Bob abre el flujo de autorización en tu navegador. Después de que autorizas, Bob gestiona el almacenamiento y la renovación del token sin necesidad de pasos manuales adicionales.
Esto es diferente de los métodos de autenticación estáticos, como un token Bearer en headers o una clave API en env, que son adecuados para cuentas de servicio o tokens que no caducan. Usa OAuth cuando:
- El servidor necesita acceso a recursos que pertenecen a tu cuenta de usuario
- El servidor de autorización emite tokens de corta duración que deben renovarse
- Quieres evitar almacenar secretos de larga duración en tus archivos de configuración de MCP
Cómo funciona el flujo de autenticación
- Añades un servidor MCP habilitado para OAuth a tu archivo de configuración (no se requieren credenciales en
headersni enenv) - Cuando Bob se conecta al servidor por primera vez, detecta los metadatos de autorización OAuth del servidor
- Bob abre una solicitud de autenticación en el navegador pidiéndote que inicies sesión y otorgues consentimiento
- Después de autorizar, Bob almacena los tokens de acceso y actualización de forma segura entre sesiones
- Bob renueva automáticamente los tokens antes de que caduquen. No se te vuelve a solicitar a menos que la renovación falle.
Bob Shell Servidor de autorización Servidor MCP
| | |
|-- conectar al servidor ------->| |
|<-- metadatos OAuth (401) ------| |
|-- abrir solicitud auth ------->| |
| (usuario inicia sesión) | |
|<-- código de autorización -----| |
|-- intercambiar por tokens ---->| |
|<-- tokens de acceso y refresco-| |
|-- solicitudes autenticadas ---------------------------------> |
| (renovación automática) |Configurar un servidor habilitado para OAuth
Los servidores MCP habilitados para OAuth anuncian sus requisitos de autorización automáticamente. En la mayoría de los casos solo necesitas la URL del servidor — los campos de OAuth son opcionales. Bob también admite las siguientes propiedades opcionales de OAuth:
oauth: Establecefalsepara deshabilitar OAuth en un servidor, otruepara habilitarlo explícitamenteclientId: ID de cliente OAuth, si lo requiere el servidor de autorizaciónclientSecret: Secreto de cliente OAuth, si lo requiere el servidor de autorizaciónscope: Lista de alcances OAuth separados por espacios para solicitar
Ejemplo de configuración en ~/.bob/mcp_settings.json (global) o .bob/mcp.json (proyecto):
{
"mcpServers": {
"mi-servidor-oauth": {
"url": "https://tu-url-de-servidor.com/mcp"
}
}
}Bob detecta el requisito de OAuth cuando se conecta e inicia el flujo. No se necesitan credenciales en headers ni en env.
Añadir un encabezado Authorization estático a un servidor habilitado para OAuth deshabilita completamente el OAuth automático. Bob no intenta el flujo OAuth. A la inversa, cuando OAuth está activo, Bob elimina cualquier encabezado Authorization estático antes de enviar solicitudes. Usa solo un método.
Autenticar cuando se te solicite
Cuando Bob se conecta a un servidor habilitado para OAuth por primera vez:
- Se abre una ventana del navegador con la solicitud de autorización
- Revisa los permisos que solicita el servidor
- Inicia sesión con la cuenta requerida y otorga el consentimiento
- Bob almacena los tokens y completa la conexión automáticamente
La solicitud se abre en tu navegador predeterminado. Después de completar la autorización, Bob Shell reanuda la conexión automáticamente.
Resolución de problemas
La solicitud de autenticación no aparece
- Confirma que el servidor no está marcado como deshabilitado en tu configuración
- Reinicia Bob Shell para reiniciar la conexión al servidor
- Comprueba que tu navegador no esté bloqueando la página de autorización
La autenticación tiene éxito pero el servidor no logra conectarse
- Verifica que la URL del servidor sea correcta y accesible
- Comprueba que concediste todos los permisos requeridos durante el paso de consentimiento
- Revisa la documentación del servidor para conocer los requisitos de configuración adicionales
Los tokens caducan con frecuencia y se requiere reautenticación
- Confirma que el servidor de autorización admite tokens de actualización. Algunos servidores emiten solo tokens de acceso con tiempos de vida cortos.
- Comprueba que el reloj de tu sistema sea preciso, ya que la diferencia horaria puede causar la caducidad prematura del token
Quieres cerrar sesión o cambiar de cuenta
Elimina o cambia el nombre de la entrada del servidor en tu archivo de configuración y vuelve a añadirla. Esto hace que Bob la trate como un nuevo servidor y active una nueva solicitud de autenticación en la próxima conexión.