Your Cool community talks to Claude and to Codex. You ask "how did the month go?" in the terminal and get the numbers; you say "build a course about X" and it builds it; you ask "who is about to cancel?" and it brings the list with the reason.
It isn't a chat that answers questions about Cool. It's Cool operating from inside your assistant.
Connecting takes a minute
npm i -g cool-mcp
coolThat's it. On the first run, cool on its own opens your browser to approve — no second command to remember. (cool login does the same, if you prefer being explicit.)
Already using Claude? Once the MCP is wired up (below), you can just say "connect to my Cool community" inside Claude itself. It opens the browser, you approve, done — no terminal at all.
cool login shows a code in your terminal and opens your browser. You're already signed in to Cool, so you just check that the code on screen matches the one in your terminal, tick which communities this device may access, and click Connect. The terminal connects on its own.
No key to create, no secret to copy. Cool creates the key the moment you approve and sends it straight to your system keychain — it never passes through your hands, never shows on screen, never lands in your shell history.
Check the code before approving. If the code in the browser differs from the one in your terminal, the request isn't yours: click That wasn't me. That's what stops someone from sending you a link and having you connect *their* computer.
Wiring it into Claude Code, Claude Desktop or Codex
After cool login, the MCP server needs no secret in its configuration — it reads from the same keychain.
Claude Code:
claude mcp add-json cool '{"command":"npx","args":["-y","cool-mcp"]}' --scope userClaude Desktop (MCP config file):
{
"mcpServers": {
"cool": {
"command": "npx",
"args": ["-y", "cool-mcp"]
}
}
}Codex (~/.codex/config.toml):
[mcp_servers.cool]
command = "npx"
args = ["-y", "cool-mcp"]Note there's no COOL_API_KEY anywhere. That's deliberate: a key written into a config file is a plaintext key, in a file nobody treats as a secret, that ends up in every backup and every screenshot.
If your assistant was already open when you logged in, it connects on its own within seconds — no restart needed.
Several communities, different permissions
The approval screen lists all your communities. Tick the ones this device may access and choose, for each one, whether it can:
- Read only — metrics, members, finance, courses
- Read and act — on top of reading: create coupons, campaigns, automations
This is per community, not per device: you can let the assistant act in the smaller community and only observe the bigger one.
A community you create later won't be included automatically — connect again and tick it.
Nothing fires on its own
Actions that touch your base — sending a campaign, applying a discount, publishing a checkout — don't run straight away. They come back first with the impact calculated ("this will email 1,283 people") and wait for your confirmation.
That lock lives on Cool's server, not in the assistant's good manners: the confirmation is signed over the exact arguments, so it can't show you the impact of one thing and execute another.
Your members' emails and phone numbers always come back masked.
From the terminal, with no assistant at all
cool ferramentas
cool exec metricas_gerais --dias=30
cool exec membros_em_risco --limite=10
cool exec resumo_financeiro --dias=30 --comunidade=my-other-onecool status shows where the key is stored and whether the connection is alive. cool logout wipes the key from your machine.
On a server or in CI, with no browser
There a hand-made key is the right tool, from Settings → API keys inside the community:
COOL_API_KEY=cool_... cool exec metricas_gerais --dias=7Or cool login --chave to store it in the local vault.
Disconnecting
cool logout on the machine, and Settings → API keys to revoke it for good — from then on that device no longer talks to Cool, wherever it is.
All 114 tools, by area
Your assistant sees this list on its own — nothing to memorise. It is here so you know the reach before you ask.
_Tool names and descriptions are shown exactly as the assistant receives them (in Portuguese) — translating them here would create a second version that drifts from the one the model actually reads._
Overview and numbers · 9
Ask how the community is doing without opening the dashboard — and get numbers, not impressions.
metricas_gerais(reads) — Panorama da comunidade: membros, ativos, receita, posts, cursos e crescimento no período.resumo_financeiro(reads) — Receita paga, número de vendas e reembolsos no período.receita_por_origem(reads) — Quanto cada origem de tráfego gerou de receita — é o número central do Cool Reach.listar_vendas(reads) — As vendas PAGAS da comunidade, da mais recente pra mais antiga. Use status pra ver tentativas (FAILED, PENDING, REFUNDED).listar_checkouts(reads) — As páginas de checkout da comunidade, com status e produto.publicar_checkout(asks for confirmation) — Publica (ou despublica) uma página de checkout.saldo_repasse(reads) — Quanto está disponível pra sacar, o mínimo exigido, e se a chave Pix está cadastrada.pedir_repasse(asks for confirmation) — Solicita o repasse do saldo disponível pra conta cadastrada. Não dá pra cancelar depois.estornar_venda(asks for confirmation) — Devolve o dinheiro de uma venda paga e tira o acesso do comprador. Não tem desfazer.
Pricing, plans and offers · 20
Change what you charge: plans, entry price, upsells, coupons and promos — from create to switch off.
listar_planos(reads) — Lista os planos de assinatura da comunidade, com preço, intervalo e benefícios.criar_plano(writes) — Cria um plano de assinatura. Máximo de 6 por comunidade.editar_plano(writes) — Altera nome, preço, intervalo ou benefícios de um plano existente.excluir_plano(asks for confirmation) — Exclui um plano de assinatura. Afeta quem já assina.definir_precos(asks for confirmation) — Define o modelo de cobrança da comunidade e o preço de entrada.listar_upsells(reads) — Lista as ofertas de upsell — o que é oferecido a quem já comprou.criar_upsell(writes) — Cria uma oferta de upsell para quem já é membro.editar_upsell(writes) — Altera uma oferta de upsell existente.ativar_upsell(writes) — Liga (LIVE) ou pausa (PAUSED) uma oferta de upsell.excluir_upsell(asks for confirmation) — Exclui uma oferta de upsell.listar_cupons(reads) — Lista os cupons de desconto, com código, valor, usos e validade.criar_cupom(writes) — Cria um cupom de desconto PERCENTUAL. Para valor fixo, crie e depois use editar_cupom.editar_cupom(writes) — Altera código, tipo ou valor de um cupom.ativar_cupom(writes) — Liga ou desliga um cupom sem apagá-lo.excluir_cupom(asks for confirmation) — Exclui um cupom de desconto.listar_promocoes(reads) — As promoções e campanhas do Promo Studio, com período e resultado.criar_promocao(asks for confirmation) — Cria uma promoção que desconta os preços da comunidade por um período.editar_promocao(writes) — Altera uma promoção. O que você não informar continua como está.pausar_promocao(asks for confirmation) — Pausa ou retoma uma promoção que está no ar.excluir_promocao(asks for confirmation) — Exclui uma promoção.
Content: feed and courses · 24
Publish and organise. Your assistant writes and saves; the AI doing the work is yours, not ours.
listar_posts(reads) — Posts recentes do feed com curtidas e comentários — o que engajou e o que não.criar_post(asks for confirmation) — Publica um post no feed da comunidade. Aparece para todos os membros.editar_post(writes) — Corrige o título ou o texto de um post do feed.fixar_post(writes) — Fixa um post no topo do feed (ou desafixa).ocultar_post(writes) — Esconde um post do feed sem apagá-lo — dá pra voltar atrás.excluir_post(asks for confirmation) — Apaga um post do feed, com os comentários dele. Não tem desfazer.listar_categorias(reads) — As categorias do feed da comunidade, com quem pode postar em cada uma.criar_categoria(writes) — Cria uma categoria no feed da comunidade (teto de 10).editar_categoria(writes) — Renomeia uma categoria do feed ou troca o emoji dela.excluir_categoria(asks for confirmation) — Exclui uma categoria do feed.listar_cursos(reads) — Cursos da comunidade com módulos, aulas e quantos alunos têm acesso.criar_curso(writes) — Cria um curso vazio (sem módulos nem aulas). Nasce como rascunho, não publicado.editar_curso(writes) — Muda título, descrição ou se o curso está publicado.excluir_curso(asks for confirmation) — Apaga um curso, com todos os módulos e aulas dentro. Não tem desfazer.reordenar_cursos(writes) — Define a ordem em que os cursos aparecem. Passe os ids na ordem desejada.criar_modulo(writes) — Cria um módulo dentro de um curso.editar_modulo(writes) — Renomeia um módulo de curso.excluir_modulo(asks for confirmation) — Apaga um módulo e as aulas dentro dele. Não tem desfazer.reordenar_modulos(writes) — Define a ordem dos módulos de um curso. Passe os ids na ordem desejada.criar_aula(writes) — Cria uma aula dentro de um módulo.editar_aula(writes) — Altera título, conteúdo, vídeo ou publicação de uma aula.excluir_aula(asks for confirmation) — Apaga uma aula. Não tem desfazer.reordenar_aulas(writes) — Define a ordem das aulas de um módulo. Passe os ids na ordem desejada.conceder_acesso_curso(asks for confirmation) — Libera um curso pago para alguém sem que a pessoa pague.
People and pipeline · 15
Who joined, who is leaving and who is close to buying — contact data always masked.
listar_membros(reads) — Lista os membros da comunidade, do mais recente pro mais antigo.adicionar_membro(writes) — Adiciona alguém à comunidade manualmente, pelo e-mail.convidar_membro(writes) — Cria um link de convite pra comunidade. Devolve o link — não envia nada a ninguém.definir_cargo(asks for confirmation) — Muda o cargo de um membro (MEMBER, MODERATOR, ADMIN).moderar_membro(asks for confirmation) — Remove, bane, silencia, reativa ou dessilencia um membro.membros_em_risco(reads) — Quem está prestes a sair: sem entrar há tempo, engajamento caindo ou cobrança pendente.registrar_acao_de_risco(writes) — Registra o que foi feito por uma pessoa em risco de sair (lembrete, desconto, mensagem, ligação) e move ela pra 'em contato'.definir_boas_vindas(writes) — Define a mensagem de boas-vindas que todo membro novo recebe ao entrar.funil_crm(reads) — Quantas pessoas em cada estágio do funil, com receita por estágio.listar_contatos_crm(reads) — Contatos do CRM desta comunidade, com estágio e etiquetas.mover_contato_no_funil(writes) — Move um contato pra outro estágio do funil do CRM.anotar_no_contato(writes) — Registra uma anotação no histórico de um contato do CRM.criar_lead(writes) — Cria uma oportunidade manual no funil — pra quem chegou por fora da plataforma.mover_oportunidade(writes) — Move uma oportunidade de estágio no funil.criar_tarefa(writes) — Cria uma tarefa no CRM.
Email and WhatsApp · 11
Write, fix and send. Before sending, your assistant shows how many people will really get it.
listar_campanhas(reads) — Campanhas de e-mail já enviadas ou agendadas, com aberturas, cliques e receita.editar_campanha(writes) — Altera o assunto ou o corpo de uma campanha que ainda não foi enviada.duplicar_campanha(writes) — Copia uma campanha como rascunho novo — bom pra reaproveitar o que funcionou.excluir_campanha(asks for confirmation) — Exclui uma campanha.enviar_teste_email(writes) — Manda um e-mail de teste só pra você, sem gravar campanha nem tocar na lista.enviar_campanha(asks for confirmation) — Manda um e-mail pra um segmento inteiro de contatos.listar_campanhas_whatsapp(reads) — As campanhas de WhatsApp: rascunho, agendada ou enviada, com entrega e receita.rascunhar_whatsapp(writes) — Salva uma campanha de WhatsApp como rascunho. NÃO dispara — só guarda.editar_campanha_whatsapp(writes) — Altera o texto de uma campanha de WhatsApp que ainda não foi enviada.excluir_campanha_whatsapp(asks for confirmation) — Exclui uma campanha de WhatsApp.enviar_whatsapp(asks for confirmation) — Dispara uma campanha de WhatsApp pra audiência da comunidade. Chega no celular das pessoas.
Automation (Cool Reach) · 9
Build, test, switch on, pause and archive the automations that reply on their own.
listar_automacoes(reads) — As automações do Cool Reach, com o estado de cada uma.criar_automacao(writes) — Cria uma automação do Reach a partir de um objetivo. A Cool monta o fluxo inicial.ativar_automacao(writes) — Liga uma automação do Reach que estava pausada.pausar_automacao(writes) — Pausa uma automação do Reach. Ela para de responder na hora.excluir_automacao(asks for confirmation) — Arquiva uma automação do Cool Reach. Ela para de disparar e sai da lista.testar_automacao(reads) — Simula um comentário e mostra o que a automação faria. Não envia nada de verdade.desempenho_automacao(reads) — Resultado de uma automação do Reach: pessoas alcançadas, viraram contato e receita.listar_workflows(reads) — Automações de e-mail (boas-vindas, carrinho abandonado, reengajamento) e se estão ligadas.ligar_workflow(writes) — Liga ou desliga uma automação de e-mail.
Live and challenges · 12
Schedule a stream, tell the community, put an offer on screen — and run 7-to-30-day challenges.
listar_lives(reads) — As transmissões ao vivo — quando aconteceram, quanto duraram e quantos assistiram.agendar_live(writes) — Agenda uma transmissão ao vivo. A data tem que ser no futuro.cancelar_live(asks for confirmation) — Cancela uma transmissão agendada que ainda não começou. Se ela já transmitiu ou gravou, use encerrar_live.encerrar_live(asks for confirmation) — Encerra uma transmissão que está no ar ou já aconteceu.definir_banner_live(writes) — Põe uma faixa de texto (com link opcional) na tela da live.mostrar_oferta_live(asks for confirmation) — Coloca uma oferta de plano ou curso na tela de quem está assistindo à live.esconder_oferta_live(writes) — Tira a oferta da tela da live.avisar_comunidade_live(asks for confirmation) — Avisa a comunidade inteira que a live vai acontecer.criar_desafio(writes) — Cria um desafio de 7, 14, 21 ou 30 dias, com check-in diário e ranking.editar_desafio(writes) — Altera título ou descrição de um desafio.ativar_desafio(writes) — Liga ou pausa um desafio.excluir_desafio(asks for confirmation) — Exclui um desafio. O histórico de quem participou some junto.
Settings · 3
Name, privacy, language, tips and affiliates. Anything you leave out stays as it was.
definir_configuracoes(asks for confirmation) — Muda nome, descrição, privacidade, tema ou idioma da comunidade. O que você não informar fica como está.ativar_gorjetas(writes) — Liga ou desliga as gorjetas (tips) na comunidade.definir_aprovacao_afiliado(writes) — Define se virar afiliado é livre ou depende da sua aprovação. Voltar pra livre aprova todos os pendentes.
Platform blog · 11
Cool's own blog. Platform team only — a customer key cannot even see these names.
listar_artigos_blog(reads) — Os artigos do blog DESTA comunidade, com status e tráfego.listar_materias(reads) — Lista as matérias do blog da Cool, com status e data.criar_materia(writes) — Cria uma matéria no blog da Cool. Nasce como rascunho, fora do ar.editar_materia(writes) — Altera uma matéria. Se ela já está no ar, a alteração fica em rascunho até publicar de novo.publicar_materia(asks for confirmation) — Publica a matéria no site da Cool (ou agenda para uma data futura).despublicar_materia(writes) — Tira uma matéria do ar, voltando para rascunho.excluir_materia(asks for confirmation) — Exclui uma matéria do blog da Cool.listar_categorias_blog(reads) — Lista as categorias do blog da Cool, com quantas matérias cada uma tem.criar_categoria_blog(writes) — Cria uma categoria no blog da Cool.editar_categoria_blog(writes) — Renomeia ou redescreve uma categoria do blog da Cool.excluir_categoria_blog(asks for confirmation) — Exclui uma categoria do blog. As matérias dela NÃO somem — ficam sem categoria.
What the limits protect
The agent acts on your behalf, so it follows the same rules you do: publishing pace, sending volume and list consent. Limits start lower on new accounts and rise as the account builds history — that is how sending reputation works.
Drafts do not count. You may prepare as many articles, posts and campaigns as you like; what is measured is publishing and sending.
Read the Acceptable Use Policy — it explains what is allowed, what is not, and why.