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.

Um comando do Claude Code que adiciona o servidor MCP do Shager com uma chave de API no cabeçalho Authorization.
Um comando e depois /mcp para confirmar a conexão.

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.

Diagrama: um agente de IA (Claude, Codex ou Cursor) se conecta ao Shager pelo servidor MCP ou pela API REST, e o Shager distribui para Facebook, Instagram, YouTube, X, LinkedIn e TikTok.
O Shager cuida das conexões, das verificações, do escalonamento e da medição de cliques. Facebook e Instagram aguardam a aprovação da Meta; até lá, só contas de teste podem se conectar. No TikTok, os posts são publicados como privados ("só eu") até o TikTok aprovar o app.

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.

  1. per_channel dá 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.
  2. cta_url ganha um link curto e uma tag UTM separados para cada conta, com o utm_content identificando a conta. Os cliques voltam por conta via get_analytics.
  3. Informar width, height e duration_ms no 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.

Experimente nas suas próprias contas.

Grátis durante o lançamento, sem cartão. Conecte, escreva uma vez, e o Shager publica e mede.