Autenticação OAuth para MCP
O Bob Shell suporta OAuth 2.1 para servidores MCP que exigem acesso delegado pelo usuário. O Bob gerencia o fluxo de autenticação automaticamente, incluindo a renovação de tokens, sem necessidade de gerenciamento manual.
Para configuração geral do MCP, veja Configurar servidores MCP.
Visão geral
Alguns servidores MCP precisam agir em seu nome como usuário — por exemplo, para ler seus repositórios do GitHub ou acessar seus arquivos no Google Drive. Esses servidores utilizam OAuth 2.1 para solicitar seu consentimento antes de acessar qualquer dado.
O Bob gerencia todo o fluxo OAuth automaticamente. Quando você se conecta a um servidor que exige OAuth, o Bob abre o fluxo de autorização no seu browser. Após a autorização, o Bob gerencia o armazenamento e a renovação dos tokens sem etapas manuais adicionais.
Isso é diferente de métodos de autenticação estáticos, como um Bearer token em headers ou uma chave de API em env, que são adequados para contas de serviço ou tokens que não expiram. Use OAuth quando:
- O servidor precisar acessar recursos pertencentes à sua conta de usuário
- O servidor de autorização emitir tokens de curta duração que precisam ser renovados
- Você quiser evitar armazenar segredos de longa duração nos arquivos de configuração do MCP
Como funciona o fluxo de autenticação
- Você adiciona um servidor MCP habilitado para OAuth ao seu arquivo de configuração (sem credenciais em
headersouenv) - Quando o Bob se conecta ao servidor pela primeira vez, ele detecta os metadados de autorização OAuth do servidor
- O Bob abre um prompt de autenticação no browser solicitando login e consentimento
- Após a autorização, o Bob armazena os tokens de acesso e renovação com segurança entre sessões
- O Bob renova os tokens automaticamente antes de expirarem. Você não será solicitado novamente, a menos que a renovação falhe.
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
Servidores MCP habilitados para OAuth anunciam seus requisitos de autorização automaticamente. Na maioria dos casos, você precisa apenas da URL do servidor — os campos OAuth são opcionais. O Bob também suporta as seguintes propriedades OAuth opcionais:
oauth: Defina comofalsepara desabilitar o OAuth para um servidor, outruepara habilitá-lo explicitamenteclientId: ID do cliente OAuth, se exigido pelo servidor de autorizaçãoclientSecret: Segredo do cliente OAuth, se exigido pelo servidor de autorizaçãoscope: Lista de escopos OAuth separados por espaço para solicitar
Exemplo de configuração em ~/.bob/mcp_settings.json (global) ou .bob/mcp.json (projeto):
{
"mcpServers": {
"meu-servidor-oauth": {
"url": "https://sua-url-de-servidor.com/mcp"
}
}
}O Bob detecta o requisito OAuth ao se conectar e inicia o fluxo. Não são necessárias credenciais em headers ou env.
Adicionar um header Authorization estático a um servidor habilitado para OAuth desabilita completamente o OAuth automático. O Bob não tentará o fluxo OAuth. Por outro lado, quando o OAuth está ativo, o Bob remove qualquer header Authorization estático antes de enviar requisições. Use apenas um método.
Autenticar quando solicitado
Quando o Bob se conecta a um servidor habilitado para OAuth pela primeira vez:
- Uma janela do browser é aberta com o prompt de autorização
- Revise as permissões que o servidor está solicitando
- Faça login com a conta necessária e conceda o consentimento
- O Bob armazena os tokens e completa a conexão automaticamente
O prompt é aberto no browser padrão. Após a autorização, o Bob Shell retoma a conexão automaticamente.
Solução de problemas
O prompt de autenticação não aparece
- Confirme que o servidor não está marcado como desabilitado na configuração
- Reinicie o Bob Shell para reiniciar a conexão com o servidor
- Verifique se o browser não está bloqueando a página de autorização
A autenticação é bem-sucedida, mas o servidor falha ao conectar
- Verifique se a URL do servidor está correta e acessível
- Confirme que você concedeu todas as permissões necessárias durante o passo de consentimento
- Consulte a documentação do servidor para requisitos de configuração adicionais
Os tokens expiram frequentemente e é necessária reautenticação
- Confirme se o servidor de autorização suporta tokens de renovação. Alguns servidores emitem apenas tokens de acesso com tempos de vida curtos.
- Verifique se o relógio do sistema está correto, pois diferenças de horário podem causar 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. Isso faz com que o Bob trate o servidor como novo e acione um novo prompt de autenticação na próxima conexão.