Autenticação
Fluxo seguro OAuth 2.0 Device Authorization Grant (RFC 8628) para o GitScrum MCP Server. Aprovação no navegador com gerenciamento automático de tokens.
Código Aberto — O GitScrum MCP Server é código aberto sob a licença MIT. Disponível no npm e no GitHub. Servidor Model Context Protocol para GitScrum — Claude, GitHub Copilot, Cursor e qualquer cliente compatível com MCP têm acesso operacional completo à sua stack de gerenciamento de projetos.
O GitScrum MCP Server usa OAuth 2.0 Device Authorization Grant (RFC 8628) para autenticação. Este é o mesmo fluxo usado por smart TVs e ferramentas CLI — você aprova o acesso no seu navegador, e o servidor MCP recebe um token sem nunca ver sua senha.
Esta abordagem foi escolhida especificamente para MCP porque assistentes de IA nunca devem manipular credenciais de usuário diretamente. A aprovação via navegador garante que sua senha fica entre você e o GitScrum.
Como o Device Authorization Funciona
O OAuth 2.0 Device Authorization Grant é projetado para dispositivos e aplicações que não podem abrir um navegador diretamente. No contexto MCP, o "dispositivo" é o servidor MCP rodando como um processo local, e a aprovação no navegador acontece na sua máquina.
Por que este fluxo para MCP
Fluxos OAuth tradicionais requerem uma URI de redirecionamento — o serviço redireciona o navegador de volta para a aplicação após o login. Servidores MCP se comunicam via stdio (entrada/saída padrão) e não têm um servidor web para receber redirecionamentos. O Device Authorization Grant resolve isso desacoplando o dispositivo de login (seu navegador) do dispositivo da aplicação (o servidor MCP).
Propriedades de segurança principais:
- Sua senha é digitada apenas no navegador, na página de login do GitScrum
- O servidor MCP nunca vê, armazena ou transmite suas credenciais
- O assistente de IA recebe apenas um token de acesso com escopo definido
- As permissões do token correspondem ao papel da sua conta GitScrum
Fluxo de Autenticação
O fluxo completo de autenticação envolve quatro ferramentas e dois atores: o assistente de IA (que chama ferramentas MCP) e você (que aprova no navegador).
Etapa 1: Iniciar login
Diga ao seu assistente de IA para fazer login no GitScrum. O assistente chama a ferramenta auth_login.
Você: "Fazer login no GitScrum"
IA: Chama a ferramenta auth_loginO servidor MCP entra em contato com o servidor de autorização do GitScrum e recebe:
- Uma URL de verificação onde você aprovará o acesso
- Um código de usuário que identifica esta solicitação específica de login
- Um tempo de expiração para o código (tipicamente 15 minutos)
O assistente de IA exibe esta informação para você:
Abra esta URL no seu navegador: https://gitscrum.com/device
Digite este código: ABCD-1234
O código expira em 15 minutos.Etapa 2: Aprovação no navegador
Abra a URL de verificação em qualquer navegador em qualquer dispositivo. Você verá uma página pedindo o código de usuário.
- Digite o código de usuário exatamente como mostrado (incluindo o hífen)
- Faça login na sua conta GitScrum se ainda não estiver logado
- Revise as permissões solicitadas pelo servidor MCP
- Clique em Aprovar para autorizar o acesso
Após a aprovação, o navegador mostra uma página de confirmação. Você pode fechar a aba do navegador.
Etapa 3: Completar autenticação
Diga ao seu assistente de IA que você aprovou o acesso:
Você: "Aprovei o acesso" ou "Completar o login do GitScrum"
IA: Chama a ferramenta auth_completeO servidor MCP troca o código de dispositivo por um token de acesso e um token de atualização. Ambos são armazenados localmente na sua máquina.
Etapa 4: Sessão ativa
O assistente de IA confirma que a sessão está ativa:
IA: "Você está autenticado como john@acme.com. Você tem acesso a 3 workspaces."A partir deste ponto, todas as chamadas de ferramentas MCP são autenticadas automaticamente. Você não precisará fazer login novamente nesta sessão.
Gerenciamento de Tokens
Armazenamento de tokens
Após autenticação bem-sucedida, os tokens são armazenados localmente em:
~/.gitscrum/auth.json- macOS/Linux:
/Users/seuusuario/.gitscrum/auth.json - Windows:
C:\Users\seuusuario\.gitscrum\auth.json
O arquivo contém o token de acesso e o token de atualização. Ele é criado com permissões de arquivo restritas (legível apenas pelo usuário atual).
Atualização automática
Tokens de acesso expiram após um período definido. Quando um token expira, o servidor MCP usa automaticamente o token de atualização para obter um novo token de acesso — nenhuma interação do usuário é necessária.
Isso acontece de forma transparente. Você não verá prompts de autenticação durante o uso normal. O ciclo de atualização continua até que o próprio token de atualização expire ou você faça logout explicitamente.
Persistência de sessão
Sua autenticação persiste entre reinicializações do servidor MCP. Quando você reinicia seu cliente de IA (Claude Desktop, VS Code, Cursor), o servidor MCP lê o token armazenado de ~/.gitscrum/auth.json e retoma a sessão automaticamente.
Isso significa que você autentica uma vez e permanece logado enquanto o token de atualização for válido.
Ferramentas de Autenticação
auth_login
Inicia o fluxo de Device Authorization Grant.
Quando usar: Configuração inicial, ou após fazer logout.
O que retorna:
verification_url— URL para abrir no seu navegadoruser_code— Código para digitar na página de verificaçãoexpires_in— Segundos até o código expirar
Exemplo de interação:
Você: "Fazer login no GitScrum"
IA: "Abra https://gitscrum.com/device e digite o código ABCD-1234.
O código expira em 15 minutos."auth_complete
Completa o fluxo de autenticação após aprovação no navegador.
Quando usar: Após você ter digitado o código e aprovado o acesso no navegador.
O que retorna:
- Status de autenticação (sucesso ou pendente)
- Informações do usuário (nome, e-mail)
- Workspaces acessíveis
Exemplo de interação:
Você: "Aprovei"
IA: "Autenticado como john@acme.com. 3 workspaces disponíveis."Se a aprovação no navegador ainda não aconteceu, auth_complete retorna um status "pendente" e o assistente de IA informará você.
auth_status
Verifica o estado atual da autenticação sem iniciar um login.
Quando usar: Sempre que quiser verificar se sua sessão está ativa.
O que retorna:
- Se uma sessão válida existe
- Detalhes do usuário autenticado
- Status de validade do token
Exemplo de interação:
Você: "Estou logado no GitScrum?"
IA: "Sim, autenticado como john@acme.com. Sessão ativa."auth_logout
Limpa todos os tokens de autenticação armazenados.
Quando usar: Ao trocar de conta, compartilhar uma máquina ou encerrar uma sessão.
O que faz:
- Exclui o arquivo de token local (
~/.gitscrum/auth.json) - Limpa qualquer estado de token em memória
- A próxima chamada MCP que exigir autenticação disparará um novo fluxo de login
Exemplo de interação:
Você: "Sair do GitScrum"
IA: "Logout realizado. Tokens limpos."Considerações de Segurança
Credenciais nunca alcançam a IA
O Device Authorization Grant impede especificamente que o assistente de IA acesse suas credenciais. Veja o que cada ator vê:
| Informação | Assistente de IA | Servidor MCP | Seu Navegador |
|---|---|---|---|
| Sua senha | Nunca | Nunca | Sim (página de login do GitScrum) |
| Código de usuário | Sim (exibe para você) | Sim (troca por token) | Sim (você digita) |
| Token de acesso | Nunca | Sim (faz chamadas à API) | Nunca |
| Token de atualização | Nunca | Sim (armazenado localmente) | Nunca |
O assistente de IA sabe que a autenticação foi bem-sucedida e a quais workspaces você tem acesso, mas nunca manipula tokens diretamente. Os tokens existem apenas no processo do servidor MCP e no arquivo de armazenamento local.
Armazenamento apenas local
Os tokens são armazenados exclusivamente no sistema de arquivos local em ~/.gitscrum/auth.json. Eles nunca são:
- Enviados para provedores de modelos de IA (Anthropic, OpenAI, etc.)
- Registrados no console ou saída
- Incluídos no contexto de conversa da IA
- Transmitidos para terceiros
Escopo do token
O token de acesso herda as permissões da sua conta GitScrum. Se sua conta tem acesso somente leitura a certos projetos, o servidor MCP tem as mesmas restrições. O servidor MCP não solicita permissões elevadas além do que sua conta já possui.
Rate limiting na autenticação
Para prevenir ataques de força bruta, o endpoint de autenticação aplica rate limiting:
- Múltiplas tentativas falhas de código de dispositivo disparam bloqueio automático
- A duração do bloqueio aumenta com falhas repetidas
- Autenticação bem-sucedida reseta o contador
Uso com Múltiplas Contas
Trocar de conta
Para trocar para uma conta GitScrum diferente:
- Diga ao seu assistente de IA para sair:
"Sair do GitScrum" - Os tokens armazenados são limpos
- Diga ao seu assistente de IA para fazer login:
"Fazer login no GitScrum" - Complete o fluxo no navegador com a nova conta
Máquinas compartilhadas
Em máquinas compartilhadas, sempre faça logout quando terminar. A ferramenta authlogout limpa o arquivo de token local completamente. Verifique com authstatus que nenhuma sessão permanece ativa.
Solução de Problemas
Erro "Code expired"
Os códigos de dispositivo expiram após 15 minutos. Se você vir este erro:
- Peça ao assistente de IA para executar
auth_loginnovamente - Um novo código é gerado
- Complete o fluxo no navegador rapidamente
"Authorization pending" após aprovação
Se auth_complete retorna "pendente" mesmo após você ter aprovado no navegador:
- Verifique se digitou o código correto (confira erros de digitação)
- Certifique-se de que clicou no botão Aprovar na página de confirmação
- Aguarde alguns segundos e tente
auth_completenovamente — pode haver um breve atraso na propagação
Erros "Unauthorized" durante o uso
Se você vir erros 401 durante operação normal:
- O token de acesso pode ter expirado e a atualização automática falhou
- Execute
authlogoutseguido deauthloginpara reautenticar - Verifique se sua conta GitScrum ainda está ativa
Permissões do arquivo de token
Se a autenticação tem sucesso mas as requisições subsequentes falham, verifique as permissões do arquivo de token:
# macOS/Linux
ls -la ~/.gitscrum/auth.json
# Windows (PowerShell)
Get-Acl "$env:USERPROFILE\.gitscrum\auth.json"O arquivo deve ser legível apenas pela sua conta de usuário. Se as permissões forem muito restritivas (não legível por você) ou muito permissivas (legível por outros), ajuste conforme necessário.
O navegador não abre automaticamente
O servidor MCP exibe a URL para você abrir manualmente. Ele não tenta abrir seu navegador. Copie a URL e cole-a em qualquer navegador.
Substituição por Variável de Ambiente
Para ambientes CI/CD ou automatizados onde a aprovação via navegador não é prática, você pode contornar o fluxo Device Grant definindo um token diretamente:
export GITSCRUM_TOKEN=seu-token-de-apiQuando GITSCRUM_TOKEN está definido, o servidor MCP o usa diretamente em vez do arquivo de token armazenado. Isto é destinado a cenários de desenvolvimento e automação — não para uso interativo regular.
Nota de segurança: Certifique-se de que o ambiente onde GITSCRUM_TOKEN está definido é seguro. Variáveis de ambiente podem ser visíveis para outros processos na mesma máquina.
Próximos Passos
- Segurança: Modelo de segurança completo incluindo HTTPS, rate limiting e tratamento de erros.
- Configuração: Configuração específica por cliente para Claude Desktop, GitHub Copilot, Cursor e mais.
- Início Rápido: Tutorial completo de configuração se você ainda não instalou.
- Visão Geral do MCP: Todas as 29 ferramentas e mais de 160 operações disponíveis após autenticação.