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.

Nota:

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

  1. Añades un servidor MCP habilitado para OAuth a tu archivo de configuración (no se requieren credenciales en headers ni en env)
  2. Cuando Bob se conecta al servidor por primera vez, detecta los metadatos de autorización OAuth del servidor
  3. Bob abre una solicitud de autenticación en el navegador pidiéndote que inicies sesión y otorgues consentimiento
  4. Después de autorizar, Bob almacena los tokens de acceso y actualización de forma segura entre sesiones
  5. 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: Establece false para deshabilitar OAuth en un servidor, o true para habilitarlo explícitamente
  • clientId: ID de cliente OAuth, si lo requiere el servidor de autorización
  • clientSecret: Secreto de cliente OAuth, si lo requiere el servidor de autorización
  • scope: 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.

Advertencia:

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:

  1. Se abre una ventana del navegador con la solicitud de autorización
  2. Revisa los permisos que solicita el servidor
  3. Inicia sesión con la cuenta requerida y otorga el consentimiento
  4. 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.

¿Cómo es este tema?