Autenticación OAuth de MCP
Conecta Bob Shell a servidores MCP que requieren acceso delegado por el usuario con OAuth 2.1. Bob Shell gestiona el proceso de autenticación y renovación de tokens para que no necesites gestionarlos manualmente.
Para la configuración general de MCP, consulta Configurar servidores MCP.
Descripción general
Puedes conectar Bob Shell a servidores de Model Context Protocol (MCP) que actúan en tu nombre, como el acceso a tus repositorios, recursos en la nube o servicios empresariales. Estos servidores usan OAuth 2.1 para que puedas iniciar sesión y aprobar el acceso.
Bob Shell gestiona el flujo de autenticación directamente. Cuando configuras un servidor que requiere OAuth, Bob Shell abre una ventana de autorización en tu navegador predeterminado. Después de iniciar sesión y aprobar los permisos, Bob Shell almacena y renueva tus tokens de acceso sin necesidad de que gestiones las credenciales manualmente.
Usa OAuth cuando:
- Necesitas acceder a recursos asociados con tu cuenta de usuario personal o empresarial
- El servidor usa tokens de corta duración que requieren renovación automática
- Quieres mantener las credenciales estáticas y los secretos fuera de tus archivos de configuración
Cuando ya tienes un token API estático o un token de acceso personal que no caduca, puedes usar un token Bearer en headers en su lugar.
Cómo funciona el flujo de autenticación
- Añades la URL del servidor MCP remoto a tu archivo de configuración sin credenciales en
headersnienv. - Cuando Bob Shell se conecta al servidor, Bob Shell detecta los requisitos de OAuth.
- Bob Shell abre una ventana de inicio de sesión en el navegador donde revisas los permisos solicitados y apruebas el acceso.
- Bob Shell recibe los tokens de autorización y los almacena de forma segura entre tus sesiones.
- Bob Shell renueva automáticamente los tokens antes de que caduquen para que puedas trabajar sin interrupciones.
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
Puedes configurar tus servidores MCP en tu configuración global (~/.bob/mcp_settings.json) o en la configuración de proyecto (.bob/mcp.json).
Configuración mínima (descubrimiento automático)
Cuando tu servidor MCP proporciona descubrimiento automático de metadatos OAuth, solo necesitas especificar la url:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp"
}
}
}Bob Shell detecta los requisitos de OAuth al conectarse y te guía a través del proceso de inicio de sesión en el navegador.
Parámetros OAuth personalizados
Cuando tu proveedor de identidad requiere un ID de cliente preregistrado, ámbitos personalizados o un secreto de cliente, configura el objeto oauth:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp",
"oauth": {
"enabled": true,
"clientId": "your-client-id-from-idp",
"clientSecret": "your-client-secret-if-required",
"scope": "mcp:connect read:data"
}
}
}
}Propiedades de configuración
| Propiedad | Tipo | Descripción |
|---|---|---|
url | string | URL del endpoint MCP remoto (requerido). |
oauth.enabled | boolean | Establece false para deshabilitar OAuth, o true para requerir OAuth. Habilitado por defecto cuando no hay cabecera Authorization presente. |
oauth.clientId | string | ID de cliente OAuth preregistrado emitido por tu proveedor de identidad. |
oauth.clientSecret | string | Secreto de cliente OAuth, si tu servidor de autorización lo requiere para clientes confidenciales. |
oauth.scope | string | Lista de ámbitos OAuth separados por espacios que deseas solicitar. |
Añadir una cabecera Authorization estática a la configuración de un servidor MCP desactiva OAuth. Cuando hay una cabecera Authorization presente, Bob Shell no inicia el flujo OAuth. Cuando OAuth está activo, Bob Shell elimina las cabeceras Authorization estáticas antes de enviar solicitudes. Usa solo un método de autenticación por servidor.
Registrar Bob con tu proveedor de identidad
Cuando tu proveedor de identidad (IdP) requiere que registres Bob como aplicación cliente antes de conectarte, usa los siguientes ajustes de aplicación:
| Ajuste | Valor |
|---|---|
| Tipo de aplicación o cliente | Público, Nativo o Loopback (Authorization Code con PKCE) |
| URI de redirección | http://127.0.0.1:33418/callback |
| URIs de redirección adicionales | http://127.0.0.1:33419/callback hasta http://127.0.0.1:33427/callback (recomendado si el puerto 33418 está en uso) |
| Tipos de concesión | Authorization Code (authorization_code) y Refresh Token (refresh_token) |
| Ámbitos | Ámbitos especificados en la documentación de tu servidor MCP |
Copia el ID de cliente emitido en oauth.clientId en tu archivo de configuración.
Autenticar cuando se te solicite
Cuando te conectas 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 en tu cuenta y aprueba el acceso.
- Bob Shell guarda tus credenciales y se conecta a las herramientas del servidor automáticamente.
Resolución de problemas
La solicitud de autenticación no se abre
- Verifica que no hayas marcado el servidor como deshabilitado en tu configuración.
- Comprueba que tu archivo de configuración no incluya una cabecera
Authorizationestática enheaders. - Reinicia Bob Shell para reiniciar la conexión.
- Comprueba que tu navegador o firewall no bloquee las conexiones de loopback local en
127.0.0.1.
El proveedor de identidad devuelve un error de URI de redirección no coincidente
- Verifica que el registro de cliente de tu proveedor de identidad incluya
http://127.0.0.1:33418/callback. - Si el puerto 33418 está ocupado, registra puertos adicionales del
33419al33427.
La autenticación tiene éxito pero el servidor no logra conectarse
- Verifica que la URL del servidor sea correcta y accesible desde tu red.
- Comprueba que aprobaste todos los ámbitos requeridos durante el paso de inicio de sesión.
- Revisa los logs del servidor o la documentación para requisitos de roles o permisos previos.
Los tokens caducan con frecuencia y debes volver a autenticar
- Confirma que tu servidor de autorización emite tokens de actualización.
- Comprueba que el reloj de tu sistema esté sincronizado para evitar la expiración prematura de tokens.
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. Bob Shell la trata como un nuevo servidor y te solicita iniciar sesión en la próxima conexión.