Ferramentas
Cada ferramenta do servidor MCP, com a rota REST equivalente, parâmetros e escopo.
O assistente descobre estas ferramentas sozinho. Cada uma é a mesma operação de uma rota da API REST, com o mesmo escopo e as mesmas regras; os parâmetros são os da rota: os ids do caminho (id, tag_id…), limit e cursor nas listas, os filtros e os campos do corpo em snake_case. Toda lista devolve { data, next_cursor }. O servidor não oferece prompts nem recursos, só ferramentas.
Contatos
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_contacts | GET /v1/contacts | limit, cursor | contacts:read | Os contatos do workspace, do mais novo ao mais antigo. |
create_contact | POST /v1/contacts | name, phone, email | contacts:write | Cria um contato pelo telefone (E.164, ex.: +5511999990000). |
get_contact | GET /v1/contacts/{id} | id | contacts:read | Um contato, com suas tags e campos. |
update_contact | PATCH /v1/contacts/{id} | id, name, phone, email, owner_id | contacts:write | Edita o nome, telefone, e-mail ou responsável de um contato (o id de um membro de list_members, ou null); o que você deixa de fora fica como está. |
tag_contact | POST /v1/contacts/{id}/tags | id, tag_ids | contacts:write | Coloca tags (ids de list_tags) em um contato. |
untag_contact | DELETE /v1/contacts/{id}/tags/{tag_id} | id, tag_id | contacts:write | Tira uma tag de um contato. |
set_contact_fields | PUT /v1/contacts/{id}/fields | id, values | contacts:write | Preenche os campos personalizados de um contato (ids de list_fields); cada valor tem que caber no tipo do campo. |
opt_out_contact | POST /v1/contacts/{id}/opt-out | id | contacts:write | Registra que o contato pediu para não receber mais mensagens: campanhas e automações o deixam de fora. |
list_tags | GET /v1/tags | — | contacts:read | As tags do workspace. |
create_tag | POST /v1/tags | name | contacts:write | Cria uma tag (Owner ou Admin). |
list_fields | GET /v1/fields | — | contacts:read | Os campos personalizados de contato do workspace e seus tipos. |
create_field | POST /v1/fields | name, type, options | contacts:write | Cria um campo personalizado de contato (Owner ou Admin); um select lista suas opções, um campo social a sua única rede. |
get_contacts_report | GET /v1/reports/contacts | period, from, to, number, team, agent, automation, campaign, pipeline, origin | contacts:read | Contatos: novos contatos, suas origens e descadastros. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Conversas
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_conversations | GET /v1/conversations | limit, cursor, status | conversations:read | As conversas que você pode ver, da mais nova à mais antiga; status filtra abertas (open) ou fechadas (closed). |
get_conversation | GET /v1/conversations/{id} | id | conversations:read | Uma conversa: seu contato, número, equipe, responsável e status. |
close_conversation | POST /v1/conversations/{id}/close | id | conversations:write | Fecha uma conversa. |
reopen_conversation | POST /v1/conversations/{id}/reopen | id | conversations:write | Reabre uma conversa fechada. |
transfer_conversation | POST /v1/conversations/{id}/transfer | id, team_id, member_id | conversations:write | Transfere uma conversa para uma equipe (de list_teams) e, opcionalmente, para um dos seus membros. |
get_service_report | GET /v1/reports/service | period, from, to, number, team, agent, automation, campaign, pipeline, origin | conversations:read | Atendimento: conversas, tempos de primeira resposta e de resolução, SLA e atendentes. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Mensagens
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
start_conversation | POST /v1/conversations | number_id, contact_id, phone | messages:write | Abre a conversa com um contato (contact_id) ou um telefone em um número (number_id de list_numbers), criando-a quando não existe; depois send_message escreve nela. |
list_messages | GET /v1/conversations/{id}/messages | id, limit, cursor | messages:read | As mensagens de uma conversa, da mais nova à mais antiga. |
send_message | POST /v1/conversations/{id}/messages | id, text | messages:write | Envia um texto de WhatsApp na conversa de um contato, como a pessoa que autorizou você. Chega ao contato de verdade. |
add_note | POST /v1/conversations/{id}/notes | id, text, mention_member_ids | messages:write | Adiciona uma nota interna a uma conversa, vista pela equipe e nunca pelo contato; mention_member_ids avisa membros. |
list_saved_replies | GET /v1/saved-replies | — | messages:read | As respostas salvas do workspace: respostas prontas com atalho e texto. |
Números
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_numbers | GET /v1/numbers | limit, cursor | numbers:read | Os números de WhatsApp do workspace e seu status. |
get_number | GET /v1/numbers/{id} | id | numbers:read | Um número de WhatsApp, com suas equipes e horários. |
update_number | PATCH /v1/numbers/{id} | id, name, team_ids, default_team_id, stage_id, hours | numbers:write | Renomeia um número ou muda suas equipes, equipe padrão, etapa e horários; nunca a sua conexão. |
get_numbers_report | GET /v1/reports/numbers | period, from, to, number, team, agent, automation, campaign, pipeline, origin | numbers:read | Números de WhatsApp: mensagens por número e por que envios falharam. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Grupos
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_groups | GET /v1/groups | limit, cursor | groups:read | Os grupos de WhatsApp em que os números estão. |
get_group | GET /v1/groups/{id} | id | groups:read | Um grupo de WhatsApp e seus membros. |
send_group_message | POST /v1/groups/{id}/messages | id, text | groups:write | Envia um texto de WhatsApp em um grupo. Chega ao grupo de verdade. |
Pipelines
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_pipelines | GET /v1/pipelines | limit, cursor | pipelines:read | Os pipelines e suas etapas. |
list_pipeline_items | GET /v1/pipelines/{id}/items | id, limit, cursor | pipelines:read | Os itens (negócios) de um pipeline, do mais novo ao mais antigo. |
add_pipeline_item | POST /v1/pipelines/{id}/items | id, contact_id, stage_id, title, value, owner_member_id | pipelines:write | Adiciona um contato a uma etapa do pipeline como item (negócio). |
move_pipeline_item | PATCH /v1/pipeline-items/{id} | id, stage_id | pipelines:write | Move um item para outra etapa do seu pipeline. |
get_sales_report | GET /v1/reports/sales | period, from, to, number, team, agent, automation, campaign, pipeline, origin | pipelines:read | Vendas: negócios ganhos e perdidos, valor e o funil por etapa e vendedor. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Lembretes
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_reminders | GET /v1/reminders | limit, cursor | reminders:read | Os lembretes de WhatsApp agendados, do mais novo ao mais antigo. |
create_reminder | POST /v1/reminders | target, contact_id, group_id, segment_id, phone, field_id, conversation_id, title, text, messages, number_id, repeat, date, time, weekday, month_day | reminders:write | Agenda um lembrete de WhatsApp para um contato, grupo, segmento ou telefone; date AAAA-MM-DD e time HH:MM no fuso do workspace. |
Automações
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_automations | GET /v1/automations | limit, cursor | automations:read | As automações e se cada uma está ativa. |
create_automation_draft | POST /v1/automations | name, steps | automations:write | Cria uma automação inativa: primeiro o gatilho, depois as ações em ordem, cada uma com sua configuração real (a mensagem exata do send_text, uma etapa, tags, uma espera). Os nomes são os do workspace (números, etapas, tags). activate_automation a liga. |
get_automation_report | GET /v1/reports/automation | period, from, to, number, team, agent, automation, campaign, pipeline, origin | automations:read | Automações: execuções, falhas e respostas de formulário. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Webhooks
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_webhooks | GET /v1/webhooks | limit, cursor | webhooks:read | Os endpoints de webhook de saída do workspace. |
create_webhook | POST /v1/webhooks | name, url, events | webhooks:write | Cria um endpoint de webhook de saída para eventos como message.received; o segredo de assinatura volta uma única vez. |
Campanhas
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_campaigns | GET /v1/campaigns | limit, cursor | campaigns:read | As campanhas (disparos), da mais nova à mais antiga. |
create_campaign | POST /v1/campaigns | name, number_id, target, segment_id, contact_ids, group_ids, text, when, pace | campaigns:write | Cria um rascunho de campanha; nunca envia. pace é a velocidade de envio. |
get_campaign | GET /v1/campaigns/{id} | id | campaigns:read | Uma campanha, com seu público e resultados. |
pause_campaign | POST /v1/campaigns/{id}/pause | id | campaigns:send | Pausa uma campanha em envio; nada mais sai até resume_campaign. |
resume_campaign | POST /v1/campaigns/{id}/resume | id | campaigns:send | Retoma uma campanha pausada. |
unschedule_campaign | POST /v1/campaigns/{id}/unschedule | id | campaigns:send | Volta uma campanha agendada para rascunho, para editar e enviar de novo. |
get_campaigns_report | GET /v1/reports/campaigns | period, from, to, number, team, agent, automation, campaign, pipeline, origin | campaigns:read | Campanhas: enviadas, entregues, lidas e respondidas, por campanha. period é today, 7d, 30d (padrão), 90d ou custom com from e to. |
Formulários
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_forms | GET /v1/forms | limit, cursor | forms:read | Os formulários e se cada um está publicado. |
create_form_draft | POST /v1/forms | title, description, fields, thanks, tag, automation | forms:write | Cria um formulário não publicado: título, campos (save_to diz qual campo do contato a resposta preenche), texto de agradecimento, uma tag para quem envia e uma automação que cada resposta inicia. publish_form o coloca no ar. |
list_form_submissions | GET /v1/forms/{id}/submissions | id, limit, cursor | forms:read | As respostas de um formulário, da mais nova à mais antiga. |
publish_form | POST /v1/forms/{id}/publish | id | forms:write | Publica um formulário. |
Segmentos
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_segments | GET /v1/segments | limit, cursor | segments:read | Os segmentos e listas de contatos. |
create_list | POST /v1/segments | name | segments:write | Cria uma lista estática de contatos. |
list_segment_contacts | GET /v1/segments/{id}/contacts | id, limit, cursor | segments:read | Os contatos de um segmento ou lista. |
add_to_list | POST /v1/segments/{id}/contacts | id, contact_ids | segments:write | Adiciona contatos a uma lista estática. |
create_segment | POST /v1/segments/rules | name, match_all, rules | segments:write | Salva um segmento de contatos por regras (uma tag que têm ou não têm, atividade recente, uma etapa do pipeline, descadastro, o valor ou a data de um campo); match_all exige todas as regras. Campanhas e lembretes podem então mirar nele. |
Membros
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
list_members | GET /v1/members | limit, cursor | members:read | Os membros do workspace e seus papéis. |
list_teams | GET /v1/teams | limit, cursor | members:read | As equipes do workspace. |
Pedem confirmação
As ferramentas abaixo apagam ou alcançam pessoas de verdade. O assistente deve perguntar antes e só mandar confirm: true depois do sim de quem usa. Pela API REST, confirm não existe: o seu sistema decide.
| Ferramenta | REST | Parâmetros | Escopo | O que faz |
|---|---|---|---|---|
delete_contact | DELETE /v1/contacts/{id} | id, confirm: true | contacts:write | Exclui um contato de vez, com suas conversas e histórico. |
delete_tag | DELETE /v1/tags/{id} | id, confirm: true | contacts:write | Exclui uma tag, tirando-a de todos os contatos (Owner ou Admin). |
remove_pipeline_item | DELETE /v1/pipeline-items/{id} | id, confirm: true | pipelines:write | Remove um item (negócio) do seu pipeline. |
cancel_reminder | DELETE /v1/reminders/{id} | id, confirm: true | reminders:write | Cancela um lembrete. |
send_reminder_now | POST /v1/reminders/{id}/send | id, confirm: true | reminders:write | Envia um lembrete agora, em até 30 segundos; um recorrente depois retoma a sua agenda. Chega às pessoas de verdade. |
activate_automation | POST /v1/automations/{id}/activate | id, confirm: true | automations:write | Publica o rascunho de uma automação e a liga. |
deactivate_automation | POST /v1/automations/{id}/deactivate | id, in_progress, confirm: true | automations:write | Desliga uma automação; as execuções em andamento (in_progress) terminam (finish) ou são canceladas (cancel). |
delete_webhook | DELETE /v1/webhooks/{id} | id, confirm: true | webhooks:write | Exclui um endpoint de webhook. |
send_campaign | POST /v1/campaigns/{id}/send | id, confirm: true | campaigns:send | Envia agora uma campanha em rascunho, para todos os destinatários, de verdade. |
cancel_campaign | POST /v1/campaigns/{id}/cancel | id, confirm: true | campaigns:send | Para de vez uma campanha em envio ou pausada, e as próximas execuções de uma recorrente. |
remove_from_list | DELETE /v1/segments/{id}/contacts/{contact_id} | id, contact_id, confirm: true | segments:write | Remove um contato de uma lista estática. |
Erros
Uma ferramenta que falha responde com isError e o mesmo corpo que a API REST devolve: { "error": { "code", "message" } }, com os códigos de Erros e limites. Um papel ou escopo que não permite a ação recebe forbidden.