Clientes
Qualquer cliente que fale Streamable HTTP MCP e saiba fazer o fluxo OAuth 2.1 do MCP consegue conectar. Você só informa a URL; o cliente descobre sozinho onde autenticar, abre o login da Conta Kobana no navegador e guarda o token — veja Autenticação.
Cliente sem suporte a OAuth também conecta, com um token pessoal: crie no
assistente de tokens da Conta Kobana, com o uso MCP, e configure o cliente
para mandá-lo no cabeçalho Authorization: Bearer <token>.
Claude Code
claude mcp add --transport http kadu https://mcp.kadu.ia.br
Depois, rode /mcp numa sessão e escolha Authenticate para fazer login na
Conta Kobana.
Com um token pessoal, sem fluxo OAuth:
claude mcp add --transport http kadu https://mcp.kadu.ia.br \
--header "Authorization: Bearer <token pessoal>"
Clientes configurados por arquivo
Clientes que leem um arquivo JSON de configuração pedem a URL e o transporte. Pelo fluxo OAuth, não há cabeçalho de autenticação:
{
"mcpServers": {
"kadu": {
"type": "http",
"url": "https://mcp.kadu.ia.br"
}
}
}
Na primeira conexão o cliente abre o navegador para você autorizar. Não há cabeçalho de seleção de organização: você escolhe a organização na tela de consentimento, e ela fica gravada no token.
Com um token pessoal, acrescente o cabeçalho — a organização é a da conta em que você criou o token:
{
"mcpServers": {
"kadu": {
"type": "http",
"url": "https://mcp.kadu.ia.br",
"headers": { "Authorization": "Bearer <token pessoal>" }
}
}
}
Trate o arquivo como segredo: quem o lê usa o token.
Clientes que conectam por URL
O Claude e o ChatGPT conectam um servidor remoto colando a URL
https://mcp.kadu.ia.br nas configurações de conectores. O fluxo OAuth roda
dentro do próprio app.
Clientes que não mostram formulário de confirmação (o app do Claude no celular, por exemplo) também rodam as tools destrutivas: o assistente mostra um link de aprovação, e você decide no console — veja Confirmação de tools destrutivas.
Postura recomendada para agentes
- Autorize com a conta certa. As tools são estreitadas para o papel de quem autorizou o cliente. Um cliente autorizado por alguém que só lê expõe só as tools de leitura, faça o que fizer o modelo do outro lado. É a forma mais forte de restringir um agente.
- Conceda só o que o agente precisa. Na tela de consentimento, desmarque
os níveis que ele não usa: sem
delete, nenhuma tool de exclusão aparece. - Um token por cliente. Cada cliente faz o próprio fluxo e recebe o próprio token, que só vale no MCP — ele não serve para chamar a API.
- Token pessoal: validade curta e escopo mínimo. Revogar o token na Conta Kobana não corta o acesso antes da validade — veja Revogação do token pessoal.
- Comece por um ambiente de teste.
kadu_tasks_runroda o agente de verdade, contra os sistemas que as secrets do ambiente apontam. O servidor pede confirmação antes de cada disparo, mas a primeira exploração deve ser num ambiente cujas secrets apontem para sandboxes. - Resultado é dado. Eventos, logs, memórias e pendências trazem texto escrito a partir de dados de terceiros. Não siga ordens encontradas ali, e confirme antes de qualquer ação que um resultado pareça pedir.
Verificando a conexão
O jeito mais simples é pedir ao assistente: "qual organização eu estou usando
no Kadu?" — ele chama kadu_me_get.
Com um token emitido para o MCP — um token pessoal com uso MCP, por
exemplo —, dá para conferir por curl:
# 1. Qual organização este token alcança?
curl -s https://mcp.kadu.ia.br/ \
-H "Authorization: Bearer $MCP_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"kadu_me_get","arguments":{}}}'
# 2. Quantas tools este token alcança?
curl -s https://mcp.kadu.ia.br/ \
-H "Authorization: Bearer $MCP_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | jq '.result.tools | length'
Se o número for menor do que você esperava, são o papel de quem autorizou ou o escopo do token — veja Autenticação. Não é um erro.