Autenticação OAuth para MCP
Conecte o Bob Shell a servidores MCP que requerem acesso delegado pelo usuário com OAuth 2.1. O Bob Shell gerencia o processo de autenticação e renovação de tokens para que você não precise gerenciar tokens manualmente.
Para configuração geral do MCP, veja Configurar servidores MCP.
Visão geral
Você pode conectar o Bob Shell a servidores Model Context Protocol (MCP) que atuam em seu nome, como acessar seus repositórios, recursos de nuvem ou serviços empresariais. Esses servidores usam OAuth 2.1 para que você possa fazer login e aprovar o acesso.
O Bob Shell gerencia o fluxo de autenticação diretamente. Quando você configura um servidor que requer OAuth, o Bob Shell abre uma janela de autorização no seu navegador padrão. Após você fazer login e aprovar as permissões, o Bob Shell armazena e renova seus tokens de acesso sem exigir que você gerencie credenciais manualmente.
Use OAuth quando:
- Você precisa acessar recursos associados à sua conta de usuário pessoal ou empresarial
- O servidor usa tokens de curta duração que requerem renovação automática de tokens
- Você quer manter credenciais estáticas e segredos fora dos seus arquivos de configuração
Quando você já tiver um token de API estático ou token de acesso pessoal que não expira, você pode usar um Bearer token em headers em vez disso.
Como funciona o fluxo de autenticação
- Você adiciona a URL do servidor MCP remoto ao seu arquivo de configuração sem credenciais
headersouenv. - Quando o Bob Shell se conecta ao servidor, o Bob Shell detecta os requisitos OAuth.
- O Bob Shell abre uma janela de login no navegador onde você revisa as permissões solicitadas e aprova o acesso.
- O Bob Shell recebe os tokens de autorização e os armazena com segurança em suas sessões.
- O Bob Shell renova automaticamente os tokens antes de expirarem para que você possa trabalhar sem interrupção.
Bob Shell Servidor de Autorização Servidor MCP
| | |
|-- conectar ao servidor ------->| |
|<-- metadados OAuth (401) ------| |
|-- abrir prompt de auth ------->| |
| (usuário faz login e consente)| |
|<-- código de autorização ------| |
|-- trocar por tokens ---------->| |
|<-- tokens de acesso + renovação| |
|-- requisições autenticadas ----------------------------------> |
| (renovação automática quando necessário) |Configurar um servidor com OAuth
Você pode configurar seus servidores MCP na configuração global (~/.bob/mcp_settings.json) ou na configuração do projeto (.bob/mcp.json).
Configuração mínima (descoberta automática)
Quando seu servidor MCP fornece descoberta automática de metadados OAuth, você só precisa especificar a url:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp"
}
}
}O Bob Shell detecta os requisitos OAuth ao se conectar e guia você pelo processo de login no navegador.
Parâmetros OAuth personalizados
Quando seu provedor de identidade requer um client ID pré-registrado, escopos personalizados ou um client secret, configure o 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"
}
}
}
}Propriedades de configuração
| Propriedade | Tipo | Descrição |
|---|---|---|
url | string | URL do endpoint MCP remoto (obrigatório). |
oauth.enabled | boolean | Defina como false para desabilitar OAuth, ou true para exigir OAuth. Habilitado por padrão quando nenhum cabeçalho Authorization está presente. |
oauth.clientId | string | Client ID OAuth pré-registrado emitido pelo seu provedor de identidade. |
oauth.clientSecret | string | Client secret OAuth, se seu servidor de autorização exigir para clientes confidenciais. |
oauth.scope | string | Lista de escopos OAuth separados por espaço que você deseja solicitar. |
Adicionar um cabeçalho Authorization estático a uma configuração de servidor MCP desativa o OAuth. Quando um cabeçalho Authorization está presente, o Bob Shell não inicia o fluxo OAuth. Quando o OAuth está ativo, o Bob Shell remove cabeçalhos Authorization estáticos antes de enviar requisições. Use apenas um método de autenticação por servidor.
Registrar o Bob no seu provedor de identidade
Quando seu provedor de identidade (IdP) exige que você registre o Bob como um aplicativo cliente antes de se conectar, use as seguintes configurações de aplicativo:
| Configuração | Valor |
|---|---|
| Tipo de aplicativo ou cliente | Público, Nativo ou Loopback (Authorization Code com PKCE) |
| URI de redirecionamento | http://127.0.0.1:33418/callback |
| URIs de redirecionamento adicionais | http://127.0.0.1:33419/callback até http://127.0.0.1:33427/callback (recomendado se a porta 33418 estiver em uso) |
| Tipos de concessão | Authorization Code (authorization_code) e Refresh Token (refresh_token) |
| Escopos | Escopos especificados na documentação do seu servidor MCP |
Copie o client ID emitido para oauth.clientId no seu arquivo de configuração.
Autenticar quando solicitado
Quando você se conecta a um servidor habilitado para OAuth pela primeira vez:
- Uma janela do navegador abre com o prompt de autorização.
- Revise as permissões que o servidor solicita.
- Faça login na sua conta e aprove o acesso.
- O Bob Shell salva suas credenciais e conecta às ferramentas do servidor automaticamente.
Solução de problemas
O prompt de autenticação não abre
- Verifique se você não marcou o servidor como desabilitado na sua configuração.
- Verifique se o seu arquivo de configuração não inclui um cabeçalho
Authorizationestático emheaders. - Reinicie o Bob Shell para reiniciar a conexão.
- Verifique se o seu navegador ou firewall não bloqueia conexões de loopback local em
127.0.0.1.
O provedor de identidade retorna um erro de incompatibilidade de URI de redirecionamento
- Verifique se o registro do cliente no seu provedor de identidade inclui
http://127.0.0.1:33418/callback. - Se a porta 33418 estiver ocupada, registre portas adicionais de
33419a33427.
Autenticação bem-sucedida mas o servidor falha ao conectar
- Verifique se a URL do servidor está correta e acessível a partir da sua rede.
- Verifique se você aprovou todos os escopos necessários durante a etapa de login.
- Consulte os logs ou a documentação do servidor para funções ou permissões de usuário pré-requisitas.
Tokens expiram frequentemente e você precisa se reautenticar
- Confirme que seu servidor de autorização emite refresh tokens.
- Verifique se o relógio do seu sistema está sincronizado para evitar expiração prematura de tokens.
Você quer sair ou trocar de conta
Remova ou renomeie a entrada do servidor no arquivo de configuração e adicione-a novamente. O Bob Shell trata o servidor como novo e solicita que você faça login na próxima conexão.