Shager no Claude Code: um comando e você cria posts para 50 contas pelo terminal
Adicione o servidor MCP remoto do Shager ao Claude Code com claude mcp add e um header bearer, escolha o escopo certo, teste e crie o primeiro post multicontas.

Para conectar o Shager ao Claude Code, rode claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_..." e depois confira com /mcp dentro de uma sessão. Isso registra o servidor MCP remoto do Shager via streamable HTTP, e o Claude Code passa a listar na hora seus espaços de trabalho, contas conectadas e posts. Com a chave de API em mãos, o processo todo leva uns dois minutos.
Este guia mostra como obter a chave, escolher o escopo certo de configuração, manter o segredo fora do git e qual é a primeira tarefa de verdade que vale a pena rodar.
O que você precisa antes de começar?
Duas coisas: o Claude Code instalado e uma chave de API do Shager que comece com shgr_live_.
Há dois jeitos de conseguir a chave. Se você já tem uma conta no Shager, alguém da sua equipe cria a chave em https://app.shager.ai/dashboard/agents e escolhe os escopos (read, write e, se quiser, publish). Se ainda não tem conta, o próprio agente pode se cadastrar com uma única chamada HTTP e receber uma chave de ambiente de teste. Esse fluxo está explicado em autocadastro de agentes e a etapa de assumir a conta, e a versão resumida fica em /auth.md.
Uma palavra sobre escopos antes de colar qualquer coisa. Na primeira semana, dê ao Claude Code apenas read e write. Assim ele consegue criar espaços de trabalho, enviar mídia e montar rascunhos, mas não consegue agendar nem publicar nada. O publish entra depois, quando você já confiar nos rascunhos que ele produz.

Como adicionar o servidor com claude mcp add?
A documentação de MCP do Claude Code mostra o formato exato para um servidor HTTP remoto com bearer token: --transport http, um nome, a URL e --header. No caso do Shager, fica assim:
claude mcp add --transport http shager https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
A documentação avisa que o claude mcp add salva a configuração sem validar a credencial. Um erro de digitação na chave não vai falhar aqui. Vai falhar depois, quando o cliente tentar se conectar.
Qual escopo usar?
A flag --scope define onde a configuração fica guardada. Segundo a mesma página da documentação:
| Escopo | Onde fica guardado | Quando usar |
|---|---|---|
local (padrão) |
Na sua configuração de usuário, só para este projeto | Você está testando o Shager em um repositório |
project |
Em .mcp.json no repositório, compartilhado com a equipe |
A equipe inteira roda tarefas de conteúdo a partir deste repositório |
user |
Na sua configuração de usuário, para todos os projetos | Você quer o Shager disponível em qualquer lugar onde abrir o Claude Code |
Para uma agência, user costuma ser a escolha certa. A distribuição não está presa a uma base de código.
claude mcp add --transport http shager --scope user https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
Como compartilhar a configuração sem commitar a chave?
Se você quer o escopo project para que a equipe receba o servidor automaticamente, não coloque a chave fixa no .mcp.json. O Claude Code aceita expansão de variáveis de ambiente em url e headers de servidores HTTP, com ${VAR} ou ${VAR:-default}. Commite isto:
{
"mcpServers": {
"shager": {
"type": "http",
"url": "https://app.shager.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${SHAGER_API_KEY}"
}
}
}
}
Depois, cada pessoa exporta a própria chave no perfil do shell:
export SHAGER_API_KEY="shgr_live_your_key_here"
Dois detalhes da documentação importam aqui. Se a variável não estiver definida, o Claude Code carrega a configuração mesmo assim e envia o texto literal ${SHAGER_API_KEY}, com um aviso em claude mcp list. Além disso, alguns nomes de credencial reservados, como ANTHROPIC_API_KEY, são expandidos de propósito como vazios em headers remotos; por isso, use sempre um nome de variável seu. SHAGER_API_KEY funciona.
Ter uma chave por pessoa também torna útil o registro de auditoria em https://app.shager.ai/dashboard/agents. Cada chamada de agente fica registrada com a chave que a fez, então dá para saber de qual sessão saiu cada rascunho.
Como confirmar que funciona?
No shell:
claude mcp list
claude mcp get shager
Dentro de uma sessão, digite /mcp. Um servidor saudável aparece como conectado. Segundo a documentação, um servidor com credenciais inválidas aparece como falho, e o detalhe mostra o status HTTP. No Shager, um 401 significa que o header está ausente ou malformado. O servidor espera exatamente Authorization: Bearer shgr_..., com a palavra Bearer e um único espaço.
Em seguida, peça ao Claude algo barato e somente leitura:
Chame whoami no shager e depois liste meus espaços de trabalho com a quantidade de canais de cada um.
O whoami devolve a organização e os escopos da chave. Se aparecerem read e write, mas não publish, é sinal de que a configuração está funcionando como planejado.

Qual deve ser a primeira tarefa de verdade?
Não comece com "publique alguma coisa". Comece com um rascunho que exercite as partes do Shager que importam em escala. Um bom primeiro prompt:
No espaço de trabalho "Northside Dental", liste os canais e os grupos de contas.
Envie este vídeo como mídia: https://example.com/clips/whitening-30s.mp4
(width 1080, height 1920, duration_ms 30000).
Depois crie um post em RASCUNHO (sem schedule_at) para o grupo "All locations" como REEL,
com uma legenda por canal que cite a cidade que aparece no nome de cada conta,
first_comment "Agende seu horário: " seguido da cta_url,
cta_url https://northsidedental.example/book, campaign "whitening-oct".
Mostre as legendas de cada canal antes de chamar create_post.
Por trás, o Claude encadeia list_channels, list_groups, upload_media_from_url e create_post. Três campos dessa chamada fazem o trabalho pesado.
per_channeldá a cada conta a própria legenda, em vez de cinquenta posts idênticos. Tanto as redes quanto o público percebem duplicatas, e é por isso que recomendamos esse recurso em como evitar bloqueios por spam ao publicar em escala.cta_urlganha um link curto e uma tag UTM separados para cada conta, com outm_contentidentificando a conta. Os cliques voltam por conta viaget_analytics.- Informar width, height e
duration_msno envio permite que o Shager valide o Reel contra as regras de cada rede antes de qualquer coisa entrar na fila.
Como nenhum schedule_at foi informado, o resultado é um rascunho. Você revisa no app do Shager ou pede ao Claude um get_post.
Como controlar o que o Claude Code pode fazer?
O Claude Code pede permissão antes de chamar ferramentas MCP, a menos que você as libere. As ferramentas MCP seguem o padrão mcp__<server>__<tool>; no Shager, você verá mcp__shager__create_post, mcp__shager__list_posts e assim por diante. Uma lista de permissões inicial sensata libera as ferramentas de leitura e deixa tudo o que escreve dependendo de confirmação. Junte isso a uma chave sem publish e você terá dois freios independentes: o cliente pergunta a você, e o servidor se recusa a agendar de qualquer jeito.
Quando estiver pronto para agendar, crie uma chave nova com publish, troque a variável de ambiente e guarde a chave antiga de leitura e escrita para sessões exploratórias. A API REST e o servidor MCP do Shager aplicam os mesmos escopos, então a regra vale seja qual for o caminho que um script tomar.
Checklist de solução de problemas
| Sintoma | Causa provável | Solução |
|---|---|---|
/mcp mostra falha, 401 |
Falta Bearer no header ou a chave foi digitada errado |
Adicione o servidor de novo ou confira se a variável foi exportada no shell que abriu o Claude |
As ferramentas aparecem, mas create_post com schedule_at devolve 403 |
A chave não tem publish ou o ambiente de teste ainda não foi assumido |
É o esperado. Crie um rascunho ou peça a uma pessoa para adicionar o escopo |
429 rate_limited |
Mais de 120 requisições por minuto em uma chave | Agrupe o trabalho; um único create_post cobre muitas contas |
422 rejected |
Uma regra da rede falhou, como um Reel longo demais | Leia a mensagem; ela indica a conta e a regra |
Perguntas frequentes
Preciso instalar mais alguma coisa além do Claude Code?
Não. O Shager roda como servidor MCP remoto, então não há processo local, contêiner Docker ou pacote npm para instalar. O Claude Code fala diretamente com https://app.shager.ai/api/mcp via streamable HTTP.
O Claude Code pode publicar sem que eu aprove cada post?
Só se a chave que ele usa tiver o escopo publish e a conta tiver sido assumida por uma pessoa. Sem esse escopo, as chamadas de agendamento e publicação devolvem 403, não importa o que o agente tente. Muitas equipes também ativam a aprovação do cliente em cada espaço de trabalho, o que acrescenta uma revisão humana antes do agendamento.
O Shager oferece login via OAuth para o Claude Code?
Sim. O servidor MCP do Shager aceita login via OAuth de qualquer cliente MCP que ofereça esse recurso. Adicione o servidor sem a flag --header, rode /mcp e escolha autenticar; depois entre no Shager e aprove no navegador. O header de chave de API mostrado acima continua funcionando, e é a melhor opção para scripts e máquinas em que ninguém consegue fazer login.
Próximo passo
Depois que o Claude Code enxergar seus espaços de trabalho, o passo natural é tornar a rotina repetível, em vez de digitar os prompts de novo. O guia sobre como criar uma skill do Claude para o Shager transforma o fluxo de rascunho acima em um comando /shager que toda a equipe pode rodar, e a página para agentes lista todas as ferramentas e endpoints, se você preferir ver o mapa completo primeiro.


