whoami reporta credential: oauth ou credential: api_token, e
reads_company_wide: true quando não há usuário para filtrar. Pergunte isso
quando você não tiver certeza de que tipo de conexão está olhando.
OAuth
É isso que os tutoriais de cliente percorrem. O cliente descobre o authorization server da Sailer, você entra com o seu email da Sailer, escolhe um workspace se pertencer a mais de um, aprova. Três telas, nesta ordem:- Auth0 sign-in — o email que é membro de um workspace da Sailer. Já está logado? Este passo é pulado.
- Consent — qual workspace, e quais permissões. Um workspace por conexão, pela vida do grant. Nada numa URL ou num argumento de tool pode mudar isso.
- Done — feche a aba. O cliente agora tem tokens.
A primeira conexão é só leituras
O primeiro consent pede identity (openid, profile, offline_access) mais
cada scope *:read que o seu papel realmente consegue conceder. Sem writes.
Ninguém deveria aprovar “atualiza o meu CRM” antes de ter lido um só
registro.
Se você pedir ao modelo para criar ou atualizar algo, a tool vai dizer que a
conexão está sem um scope e que tentar de novo não vai ajudar.
Desconecte, reconecte e aprove o write quando o consent pedir — contacts,
organizations, deals ou campaigns, o que a tarefa precisar.
Scopes são uma interseção
O consent mostra o que o seu papel naquele workspace consegue conceder. Permissões riscadas não são bug — o seu papel não pode ceder elas. Peça a um admin para ampliar o papel se você precisar delas. Um scope é<resource>:<access>. Tools que você não consegue chamar não
aparecem em tools/list. Uma conexão somente leitura não deveria ver
create_record de jeito nenhum.
Um servidor por grant
Um token OAuth é emitido para exatamente um resource:/mcp/crm ou
/mcp/studio. Usar um token de CRM no Studio é 401, não 403. Descompasso
de audience não é scope faltando. Reconecte no outro servidor; não tente de
novo.
Tokens de workspace
Um token estáticosk_live_… / sk_test_… é o caminho de máquina. O mesmo
formato da API REST. Envie como
Authorization: Bearer sk_live_….
Ele não tem usuário, então o ACL de visibilidade do CRM não se aplica: o
token lê cada registro do workspace que os seus scopes permitirem. Trate-o
como acesso a todo o workspace. Um token por integração, nunca no controle de
versão.