Ferramentas
Consulte as vinte e cinco ferramentas do MCP da OctoSolve, seus parâmetros, resultados, riscos e recusas.
Ferramentas
O servidor oferece vinte e cinco ferramentas em sete grupos. Risco Baixo indica leitura. Risco Médio altera dados internos. Risco Alto pode ocupar a agenda de uma pessoa ou avisar o cliente final.
Listas devolvem data, has_more e next_cursor. O limite padrão no MCP é 20 itens, e o máximo é 100. Use next_cursor como cursor na chamada seguinte sem alterar os filtros.
O CPF não sai pelo MCP, inclusive depois de criar ou atualizar um contato. Se a sua integração precisa desse dado, consulte o contato diretamente pela API REST com uma chave autorizada.
Contatos
buscar_contatos
| Propriedade | Valor |
|---|---|
| Grupo | Contatos |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório. Aceita telefone, q, status, tag, limit e cursor |
| Limites | q de 2 a 80 caracteres, tag com até 40, limit de 1 a 100, padrão 20 |
Valores de status | novo, ativo, inativo ou bloqueado |
| Devolve | Lista paginada de contatos, sem CPF |
Pode recusar busca curta, limite fora da faixa, status inválido ou cursor reaproveitado com filtros diferentes.
ver_contato
| Propriedade | Valor |
|---|---|
| Grupo | Contatos |
| Risco | Baixo |
| Exige | contact_id |
| Devolve | Um contato com dados cadastrais, identidades de canal, tags, situação e data de atualização, sem CPF |
Um identificador inexistente ou pertencente a outra conta é tratado como contato não encontrado.
criar_contato
| Propriedade | Valor |
|---|---|
| Grupo | Contatos |
| Risco | Médio |
| Exige | telefone |
| Aceita | nome, email, cidade, data_nascimento, observacoes, tags e status |
| Limites | Telefone de 10 a 20 caracteres na entrada, nome e cidade com até 120, observações com até 2.000, no máximo 20 tags |
| Devolve | O contato criado, sem CPF |
O telefone precisa resultar em 10 a 15 dígitos com DDI e DDD. Telefone já cadastrado é conflito. E-mail, data ou situação inválidos são recusados. Uma repetição idêntica na mesma faixa de dez minutos devolve o resultado original em vez de criar duplicata.
atualizar_contato
| Propriedade | Valor |
|---|---|
| Grupo | Contatos |
| Risco | Médio |
| Exige | contact_id |
| Aceita | nome, email, cidade, data_nascimento, observacoes, tags e status |
| Limites | Nome e cidade com até 120 caracteres, observações com até 2.000, no máximo 20 tags |
| Devolve | O contato atualizado, sem CPF |
Somente os campos enviados são alterados. O valor anterior é sobrescrito. A ferramenta recusa identificador inexistente, e-mail, data ou situação inválidos.
Catálogo
listar_servicos
| Propriedade | Valor |
|---|---|
| Grupo | Catálogo |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório |
| Aceita | ativo, q, limit e cursor |
| Limites | q de 2 a 80 caracteres, limit de 1 a 100, padrão 20 |
| Padrão | ativo: true |
| Devolve | Lista paginada com nome, descrição, duração, preços, categoria e regras do serviço |
Pode recusar busca curta, limite fora da faixa ou cursor reaproveitado com filtros diferentes.
ver_servico
| Propriedade | Valor |
|---|---|
| Grupo | Catálogo |
| Risco | Baixo |
| Exige | service_id |
| Devolve | Um serviço, inclusive quando inativo |
Um identificador inexistente ou pertencente a outra conta é tratado como serviço não encontrado.
Equipe
listar_profissionais
| Propriedade | Valor |
|---|---|
| Grupo | Equipe |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório |
| Aceita | ativo, servico_id, limit e cursor |
| Limites | servico_id em UUID, limit de 1 a 100, padrão 20 |
| Padrão | ativo: true |
| Devolve | Lista paginada com perfil, estado da agenda e serviços atendidos, sem e-mail do profissional |
Pode recusar UUID inválido, limite fora da faixa ou cursor reaproveitado com filtros diferentes.
ver_profissional
| Propriedade | Valor |
|---|---|
| Grupo | Equipe |
| Risco | Baixo |
| Exige | professional_id |
| Devolve | Perfil, estado da agenda e serviços atendidos pelo profissional, sem e-mail |
Um identificador inexistente ou pertencente a outra conta é tratado como profissional não encontrado.
Agenda
ver_horarios_livres
| Propriedade | Valor |
|---|---|
| Grupo | Agenda |
| Risco | Baixo |
| Exige | servico_id em UUID e data no formato AAAA-MM-DD |
| Aceita | dias e profissional_id em UUID |
| Limites | dias de 1 a 7, padrão 1, data no máximo 365 dias à frente, até 40 combinações de dia e profissional |
| Devolve | Duração do serviço e slots por dia e profissional. inicio e fim vêm em UTC com Z |
A ferramenta recusa serviço ou profissional inexistente, agenda não conectada, intervalo amplo demais e data distante demais. Uma indisponibilidade temporária da agenda também gera recusa. A consulta não reserva o horário.
listar_agendamentos
| Propriedade | Valor |
|---|---|
| Grupo | Agenda |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório |
| Aceita | contact_id, profissional_id, servico_id, lista status, de, ate, limit e cursor |
| Limites | limit de 1 a 100, padrão 20 |
| Período padrão | Sem de e ate, começa 30 dias antes do momento atual e segue para o futuro |
| Devolve | Lista paginada e cronológica de agendamentos |
de e ate aceitam data ou data e hora ISO. Sem fuso, o fuso da conta é assumido (Brasília é o padrão de conta nova). A ferramenta recusa período invertido, situação inválida e cursor usado com filtros diferentes.
ver_agendamento
| Propriedade | Valor |
|---|---|
| Grupo | Agenda |
| Risco | Baixo |
| Exige | appointment_id |
| Devolve | Estado atual e todos os campos públicos do agendamento. Datas vêm em UTC com Z |
Consulte esta ferramenta antes de alterar. Um identificador inexistente ou pertencente a outra conta é tratado como agendamento não encontrado.
criar_agendamento
| Propriedade | Valor |
|---|---|
| Grupo | Agenda |
| Risco | Alto |
| Exige | contact_id, servico_id e data_hora em ISO |
| Aceita | profissional_id, duracao_minutos, valor, notas e notificar_whatsapp |
| Limites | Duração de 5 a 600 minutos, notas com até 2.000 caracteres |
| Padrão | notificar_whatsapp: false |
| Devolve | O agendamento criado |
Use em data_hora o inicio devolvido por ver_horarios_livres, sem modificar. A ferramenta recusa horário ocupado, serviço inativo, serviço com pagamento antecipado em conta com cobrança automática ligada, entidade inexistente e profissional que não pode atender. Se houver conflito, consulte os horários outra vez e escolha outro. Uma repetição idêntica na mesma faixa de dez minutos devolve o resultado original.
alterar_agendamento
| Propriedade | Valor |
|---|---|
| Grupo | Agenda |
| Risco | Alto |
| Exige | appointment_id |
| Aceita | profissional_id, data_hora, duracao_minutos, status, valor, motivo_cancelamento e notas |
| Limites | Duração de 5 a 600 minutos, motivo com até 500 caracteres, notas com até 2.000 |
| Devolve | O agendamento atualizado |
Situações aceitas: agendado, confirmado, realizado, no_show, cancelado, aguardando_pagamento, cancelado_por_nao_pagamento, cancelado_estornado e cancelado_lgpd.
A ferramenta aplica estas recusas:
- Ocorrência de série não pode ser alterada.
motivo_cancelamentosó pode acompanharstatus: "cancelado".- Remarcação só pode terminar em
agendadoouconfirmado. cancelado,realizadoeno_showsão estados finais.profissional_id: nulleduracao_minutos: nullnão são aceitos.- Horário ocupado é conflito e exige uma nova consulta de disponibilidade.
Cancelar não tem volta. Para atender novamente, crie outro agendamento. Se uma repetição receber transição proibida e o estado atual já for o solicitado, considere que a primeira alteração foi concluída.
Base de conhecimento
A base de conhecimento é o que o agente sabe responder. Ela pertence a um agente, não à conta: quem tem mais de um agente escolhe em qual mexer.
Ferramenta nova chega desligada para quem já conectou antes. Ligue em Integrações, na tela do produto. Isso vale inclusive para as de leitura, e é de propósito: nenhuma integração ganha capacidade nova sem alguém pedir.
Regras que valem nas quatro ferramentas de documento:
agent_idé opcional. Sem ele, vale o agente padrão da conta. Se a conta não tiver padrão definido, a chamada é recusada pedindo o identificador.- Documento marcado como protegido não pode ser editado por aqui. Abra um ticket no suporte.
- Não existe apagar. Use
atualizar_documentocomativo: false, que tem volta. - Fatias internas do documento nunca aparecem, e um identificador de fatia é tratado como não encontrado.
listar_agentes
| Propriedade | Valor |
|---|---|
| Grupo | Base de conhecimento |
| Risco | Baixo |
| Exige | Nenhum campo |
| Devolve | Lista de agentes com id, nome, nome_interno, padrao e status |
Use antes das demais quando a conta tiver mais de um agente.
listar_documentos
| Propriedade | Valor |
|---|---|
| Grupo | Base de conhecimento |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório. Aceita agent_id, q, ativo, limit e cursor |
| Limites | q de 2 a 80 caracteres, limit de 1 a 100, padrão 20 |
| Devolve | Lista paginada de documentos, sem o conteúdo |
O texto completo vem em ver_documento. Cursor reaproveitado com filtros diferentes é recusado.
ver_documento
| Propriedade | Valor |
|---|---|
| Grupo | Base de conhecimento |
| Risco | Baixo |
| Exige | documento_id. Aceita agent_id |
| Devolve | Um documento com o conteúdo inteiro |
Consulte antes de reescrever, para não apagar o que já estava lá.
criar_documento
| Propriedade | Valor |
|---|---|
| Grupo | Base de conhecimento |
| Risco | Médio |
| Exige | titulo e conteudo. Aceita categoria e agent_id |
| Limites | Título de 3 a 200 caracteres, conteúdo de 10 a 10.000 |
categoria | Texto livre de até 60 caracteres, para organizar a base. Sugestões: faq, servico, protocolo, politica, promocao. Sem categoria, vale faq |
| Devolve | O documento criado |
O texto é fatiado e indexado automaticamente, então o agente passa a responder a partir dele em seguida.
Esta ferramenta consome o limite de documentos do plano. Atingido o limite, a chamada é recusada com a mensagem do próprio serviço de limites.
Título já usado no mesmo agente é conflito: use atualizar_documento. Uma repetição idêntica na mesma faixa de dez minutos devolve o resultado original em vez de criar duplicata.
Sob concorrência, o serviço de indexação pode pedir uma nova tentativa em alguns segundos.
atualizar_documento
| Propriedade | Valor |
|---|---|
| Grupo | Base de conhecimento |
| Risco | Médio |
| Exige | documento_id e pelo menos um campo para mudar |
| Aceita | titulo, conteudo, categoria, ativo e agent_id |
| Limites | Os mesmos de criar_documento |
| Devolve | O documento atualizado |
Mudar o conteúdo reindexa o documento. ativo: false deixa o documento fora das respostas do agente sem apagar nada.
Relatórios
ver_relatorio
| Propriedade | Valor |
|---|---|
| Grupo | Relatórios |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório. Aceita de e ate |
| Limites | Datas em AAAA-MM-DD, no fuso da conta. Janela de no máximo 92 dias |
| Devolve | Números do período, agrupados |
Sem de e ate, vale o mês corrente. As duas datas andam juntas: informar só uma é recusado.
A resposta traz periodo, agenda, perdas, dinheiro, conversas, produtividade, custo_ia, por_canal, por_profissional, por_agente, contatos_novos e nps_medio.
Dois relógios diferentes, e isso muda a conta. O bloco agenda conta pelo momento em que o agendamento foi marcado; o bloco perdas conta pela data do atendimento. São populações diferentes, então subtrair perdas.cancelados_no_periodo de agenda.marcados_no_periodo produz um número sem significado. Para a agenda de um dia ou de uma semana, use listar_agendamentos, que filtra pela data do atendimento.
O relatório não traz dado de cliente final: nome, telefone e comentário de pesquisa de satisfação ficam de fora, mesmo estando no relatório da tela. Profissional e agente aparecem porque são da sua própria equipe.
Conta com um agente só recebe por_agente vazio, e isso não significa ausência de dados. Conta sem plano configurado é recusada com explicação.
Automações
Automação criada pelo MCP nasce desligada. Antes de criar ou editar, consulte as opções da conta para usar nomes de etiquetas, fases, serviços, mídias e agentes que existem de verdade.
A URL secreta do gatilho de webhook não sai pelo MCP. Ela fica na tela de Automações, atrás do login do dono da conta.
listar_automacoes
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório |
| Devolve | Lista de automações com estado, tipos de gatilho, quantidade de ações e histórico resumido de disparos |
Não pagina porque cada plano tem um teto pequeno de automações. A resposta nunca inclui a URL secreta nem o segredo de webhook.
ver_automacao
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Baixo |
| Exige | automacao_id |
| Devolve | A automação com gatilhos, ações, intervalo entre disparos e os dez últimos disparos |
Use antes de editar para preservar a configuração atual. Um identificador inexistente ou pertencente a outra conta é tratado como automação não encontrada. A resposta diz se há webhook, mas não revela a URL secreta nem o segredo.
ver_opcoes_de_automacao
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Baixo |
| Exige | Nenhum campo obrigatório |
| Devolve | Tipos aceitos de gatilho e ação, campos necessários, fases, etiquetas, serviços, mídias, agentes e teto do plano |
Use antes de criar ou editar. Nome inventado de etiqueta, fase ou serviço pode deixar a automação sem efeito. A resposta também avisa quando um gatilho por intenção depende do plano.
criar_automacao
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Médio |
| Exige | nome, gatilhos e acoes |
| Aceita | agent_id e cooldown_segundos |
| Limites | Nome de 3 a 120 caracteres, pelo menos um gatilho e uma ação, intervalo de 0 a 86.400 segundos |
| Padrão | cooldown_segundos: 300 |
| Devolve | A automação criada, desligada por padrão |
Automação criada pelo MCP nasce desligada, sempre. Não existe argumento para criar ligada, e isso é proposital: se existisse, criar já ligada seria um pedido só e a confirmação em dois passos de atualizar_automacao poderia ser contornada. Para ligar, chame atualizar_automacao com ativa: true.
Sem cooldown_segundos, a automação nasce com 300 segundos de intervalo mínimo entre disparos. Envie 0 se ela precisa disparar toda vez. A ferramenta recusa configuração inválida, agente de outra conta, gatilho por intenção fora do plano e teto de automações atingido. Uma repetição idêntica na mesma faixa de dez minutos devolve o resultado original.
atualizar_automacao
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Alto |
| Exige | automacao_id e pelo menos um campo para mudar |
| Aceita | nome, gatilhos, acoes, ativa, cooldown_segundos e confirmar |
| Limites | Nome de 3 a 120 caracteres, intervalo de 0 a 86.400 segundos |
| Devolve | A automação atualizada, ou os dados para confirmação |
Enviar gatilhos ou acoes substitui a lista inteira, não acrescenta itens. Consulte a automação antes e envie a lista completa. Ligar uma automação desligada exige dois pedidos: o primeiro devolve os gatilhos e as ações para a pessoa conferir, o segundo usa confirmar: true. Desligar vale na hora.
A confirmação em dois passos evita acidente do modelo, não impede um ator malicioso. A proteção real é a ferramenta de escrita começar desligada e só o dono ligá-la na tela de Integrações.
apagar_automacao
| Propriedade | Valor |
|---|---|
| Grupo | Automações |
| Risco | Alto |
| Exige | automacao_id |
| Aceita | confirmar |
| Devolve | Os dados para confirmação, ou a confirmação de exclusão |
Apagar exige dois pedidos. O primeiro nunca apaga e devolve o nome e os disparos da automação. Depois de a pessoa confirmar, envie o segundo pedido com confirmar: true. Um identificador inexistente ou de outra conta é tratado como automação não encontrada. Apagar não tem volta.
Recusas comuns a todas
Uma chamada também pode ser recusada quando:
- O servidor MCP ou a ferramenta está desligado.
- A chave está ausente, inválida, revogada, suspensa ou vencida.
- Uma chave
readtenta usar ferramenta de escrita. - O plano não inclui MCP ou a conta está suspensa.
- Um campo obrigatório está ausente ou um argumento não atende ao formato e ao limite.
- O limite de requisições foi atingido.
A IA recebe a mensagem de negócio em português como erro de ferramenta. Falhas inesperadas devolvem somente uma mensagem genérica, sem detalhes técnicos.