Servidor MCP de integrações
Além do Servidor MCP de configuração — que deixa uma IA ler e configurar integrações —, o CMS publica um segundo servidor MCP, o de integrações: ele expõe Entregas e Coletas que você marcar como ferramentas (tools, no vocabulário do protocolo) que um agente de IA chama para enviar dados para dentro do CMS ou buscar dados através dele.
A diferença importa: o servidor de configuração monta integrações; o de integrações usa as que já existem. Uma Entrega vira uma ferramenta “envie isto para o MES”; uma Coleta vira “consulte o estoque no ERP”. O agente não precisa conhecer a URL, a autenticação nem o formato — ele preenche os campos que a ferramenta declara, e o CMS faz o resto pelo mesmo caminho de qualquer produtor.
Nada fica exposto por padrão. Uma Definição só vira ferramenta depois que alguém liga Expor como ferramenta MCP na tela dela. Pack e a própria IA nunca ligam essa marca.
O endereço é por Aplicação
Cada Aplicação tem o seu endereço:
POST https://SEU-CMS/api/mcp/applications/{SIGLA}Ele lista só as Entregas e Coletas daquela Aplicação que estão marcadas e que a credencial
enxerga. O servidor de configuração (/api/mcp) continua separado — uma API Key de sistema externo
nunca alcança as ferramentas de criar/configurar.
Quem pode chamar
Três credenciais, as mesmas que já enviam dados ao CMS — nenhuma nova a distribuir:
| Credencial | Como | Onde se cria |
|---|---|---|
| API Key | Authorization: Bearer <token> | API Keys |
| Credencial de Entrada | Authorization: Basic base64(login:senha) | Credenciais, direção Entrada |
| Token MCP de usuário | Authorization: Bearer cms_mcp_… | Servidor MCP, em Serviços de Segurança |
O token MCP de usuário exige ainda, no Perfil do usuário de serviço, a Ferramenta
/mcp/integration-tools — na tela de Perfis ela aparece como MCP Integration Tools. Poder
editar uma Entrega não é poder acioná-la para escrever num equipamento ou ERP. E o token vale
enquanto o usuário vale: desativar o usuário de serviço derruba o token dele na hora, sem esperar a
expiração.
Expor uma Definição
Ache a chave no formulário
Edite a Entrega ou a Coleta. A chave Expor como ferramenta MCP tem o mesmo visual de Ativar WebService (WSDL) e fica ao lado dela:
- Entrega — na primeira linha da seção Validações de Recebimento.
- Coleta — na linha da URL da API Dinâmica, que aparece assim que a Coleta ganha o primeiro Parâmetro de Entrada.
Coleta sem Parâmetro de Entrada, ou de um tipo que a própria origem aciona (MQTT, OPC UA Trigger, arquivo), não mostra a chave: ela nunca apareceria para a IA.
Ligue a chave
Ligada, aparecem o Endereço MCP da Aplicação, com botão de copiar, e um botão com o estado da configuração: Configurada, em verde, ou Configurar, em laranja. Laranja quer dizer que falta nome, descrição ou limite — e, nesse estado, a Definição não salva com a ferramenta ligada.
Ao ligar pela primeira vez, o nome já vem sugerido a partir da sigla e o limite nasce em 30 chamadas por minuto.
Configure no popup
O botão abre o popup Configuração da ferramenta MCP:
- Nome da ferramenta — é o que o agente casa (até 64 caracteres, letras, números,
_e-; único na Aplicação, somando Entregas e Coletas). Há um botão de sugestão. - Descrição para a IA — o que o modelo lê para decidir usar a ferramenta. Descreva o que faz, quando usar e o que devolve. O botão com ícone de brilho sugere a descrição com IA (ver abaixo).
- Limite/min — teto de chamadas por minuto. Em escrita física, use um valor baixo.
- Na Coleta, Devolver o conteúdo coletado para a IA decide se a ferramenta devolve o que buscou (a API REST de Coleta nunca devolveu). Conteúdo cifrado nunca sai.
- Numa Entrega que escreve em equipamento ou ERP — OPC UA, Modbus, Sparkplug, PI, BAPI com commit —, um aviso vermelho lembra que um agente autorizado poderá acionar essa escrita.
- Como configurar e usar expande o resumo do acesso e o trecho de configuração do cliente MCP, com botão de copiar.
O popup edita o formulário ao vivo; nada é gravado até o Salvar da Definição.
Conecte o cliente
Aponte o cliente MCP (Claude Desktop, VS Code, Cursor) para o endereço, com uma das credenciais acima. O botão Conectar via MCP monta o trecho pronto — ver a seção seguinte.
A descrição sugerida pela IA
Escrever uma boa descrição é a parte difícil: é ela que faz o agente escolher a ferramenta certa. O botão de sugestão entrega um rascunho a partir do que está gravado na Definição — por isso ele só funciona depois do primeiro salvamento, e fica desligado, com a explicação, até lá.
O modelo recebe as descrições da Aplicação e da Interface, os parâmetros (e quais são obrigatórios), se a Coleta devolve conteúdo, o modo da Entrega e se ela escreve em equipamento. Nunca recebe credencial nem dados da conexão. O texto volta no idioma da tela, com até 600 caracteres — a descrição vai em toda listagem de ferramentas, e texto longo custa a cada chamada.
A sugestão entra no campo com um Desfazer ao lado, e só vale depois que alguém revisa e salva. Depende da IA configurada e do recurso Descrição de ferramenta MCP por IA, em Configurações › IA; com um dos dois desligado, o botão diz por quê. Cada sugestão fica no Log de Auditoria.
Conectar via MCP
O popup Conectar via MCP mostra o endereço, o cabeçalho de autenticação e um exemplo de configuração para colar no cliente:
{
"mcpServers": {
"cms-MES": {
"url": "https://SEU-CMS/api/mcp/applications/MES",
"headers": { "Authorization": "Bearer <seu-token>" }
}
}
}Ele abre de três lugares:
| Onde | Autenticação no exemplo |
|---|---|
| API Keys, na linha de cada chave | Bearer |
| Credenciais, só nas de direção Entrada | Basic (login e senha) |
| Servidores MCP, ao abrir cada Aplicação | Qualquer uma das três |
O segredo nunca aparece no popup: o exemplo traz um marcador, e quem configura cola o valor que já tem em mãos — pelo botão Copiar da própria tela, que registra quem copiou.
O que a ferramenta devolve
| Tipo | A ferramenta… | A IA recebe |
|---|---|---|
| Entrega síncrona | envia e espera o destino | a resposta do destino |
| Entrega assíncrona | enfileira | o id da mensagem (acompanhe com cms_message_status) |
| Coleta | executa e encaminha aos destinos | id e status; e o conteúdo, se você marcou |
Os argumentos são o contrato de entrada da Definição: os Parâmetros de Entrada da Coleta, o
Payload de Entrada da Entrega. Uma Entrega sem contrato de entrada recebe o corpo da mensagem
pronto, num argumento único, corpo, no Content-Type da Definição.
Como os argumentos já chegam no formato da Entrega, a ferramenta não passa pelo Transformador por Aplicação produtora — nem quando é chamada com a API Key de uma produtora que tem um. Só o Transformador da própria Entrega roda.
A ferramenta fixa cms_message_status mostra a situação das mensagens que aquela credencial
enviou por MCP — status, tentativas, datas.
O status vem em inglês
Nas telas, o status de uma mensagem continua em português (NAO_PROCESSADA, ERRO_ENTREGA…). Na
resposta do MCP ele vira um valor estável em inglês, com uma frase curta, situacao, que o agente
repassa no idioma de quem perguntou:
status | Significa |
|---|---|
queued | Recebida e na fila; a entrega ou o encaminhamento está agendado |
processing | Em processamento |
done | Concluída com sucesso |
retrying | Aguardando nova tentativa automática |
error | Falhou ao entregar no destino, ou ao coletar na origem |
business_error | Recusada por uma regra de Erro de Negócio |
cancelled | Cancelada |
source_offline | A Aplicação de origem está offline; roda sozinha quando ela voltar |
destination_offline | O destino está offline; a mensagem espera nova tentativa |
O agente do outro lado atende gente em qualquer idioma: um NAO_PROCESSADA cru acabava repetido
tal e qual para o usuário.
Servidores MCP — /mcp-servers

Toda Aplicação com ao menos uma Entrega ou Coleta marcada como ferramenta é um servidor MCP, com endereço próprio. Esta tela, em Config. de Integração logo depois de Gatilhos, reúne esses servidores e as ferramentas de cada um. As duas telas ficam lado a lado porque respondem à mesma pergunta: quem mais dispara esta Coleta ou Entrega, além do sistema de origem — o agendador interno ou um agente de IA.
Cada Aplicação é um bloco que expande — sozinho quando só há uma, ou quando há uma busca ativa. O cabeçalho conta as ferramentas ativas, as inativas e as chamadas. Aberto, o bloco mostra o endereço MCP com botão de copiar, o Conectar via MCP e uma linha por ferramenta:
| Coluna | O que mostra |
|---|---|
| Ferramenta | O nome que o agente vê e, abaixo, se é Coleta ou Entrega, com a sigla da Definição · Interface |
| Descrição | A descrição para a IA, truncada — o texto inteiro aparece ao passar o mouse |
| Chamadas | Quantas chamadas chegaram à ferramenta, e quantas falharam |
| Credencial | A última credencial que chamou; o +N abre o uso separado por credencial |
| Último uso | Quando foi a última chamada, e se ela falhou |
| Situação | Ativa ou inativa, com o botão de ligar e desligar |
O ícone da linha abre o contrato de entrada. Nome, descrição, limite e parâmetros continuam sendo editados no cadastro da Definição — esta tela responde “o que a IA pode chamar agora”.
A tela abre em Ativas. As desligadas ficam em Inativas e Todas — é ali que se religa uma ferramenta sem abrir o formulário. Dá para filtrar por uma ou mais Aplicações, e a busca procura por ferramenta, descrição, Definição, Interface ou Aplicação.
Ligar e desligar por aqui
Ligar ou desligar nesta tela é o mesmo que marcar ou desmarcar a chave no cadastro, e a mudança entra no histórico de alterações da Definição. A confirmação diz o efeito antes: ao desligar, a ferramenta some para os agentes e as chamadas passam a ser recusadas, mas nome, descrição e parâmetros continuam gravados. Ao ligar uma Entrega, o aviso lembra que o agente poderá enviar mensagens por ela até o destino.
Ligar reaplica as mesmas validações do formulário — nome, descrição, limite, parâmetros, nome único na Aplicação. Uma Coleta sem Parâmetros de Entrada é recusada: ela nunca apareceria para a IA.
Uma ferramenta ativa pode, mesmo assim, estar invisível para o agente. A linha avisa Não aparece para a IA e diz por quê: a Definição está inativa, ou a Coleta não tem Parâmetros de Entrada.
O que conta como chamada
Cada chamada (tools/call) que chega à ferramenta conta uma vez, separada por credencial — API Key,
Credencial de Entrada ou token MCP. Chamada recusada por argumento inválido ou pelo limite por minuto
conta como falha, assim como a Entrega que o destino recusou.
O contador é próprio, e não uma contagem de mensagens: a mensagem some com a retenção da Interface, e uma Coleta gera várias mensagens numa chamada só. Ele começou a contar na versão que trouxe esta tela — chamadas anteriores não aparecem.
O contrato de entrada
O popup de contrato mostra o que o agente recebe ao listar as ferramentas: o comportamento
(Entrega síncrona ou assíncrona, Coleta com ou sem devolução de conteúdo), e uma linha por
parâmetro, com tipo, obrigatório, valor padrão, restrição (faixa ou lista de valores) e a descrição
para a IA. Ver o JSON Schema enviado à IA mostra o inputSchema exato — o mesmo que o servidor
entrega no tools/list, e não uma reconstrução.
Permissão
A tela tem Ferramenta própria, Servidores MCP (/mcp-servers), com dois níveis: consultar e
ligar/desligar. A lista respeita as Interfaces permitidas do usuário, e ligar uma ferramenta de
Interface que ele não enxerga é recusado. Numa instalação nova, o perfil CMS_Developer já vem com
o nível de edição — quem constrói a integração já liga a ferramenta pelo formulário; aqui é o mesmo
campo, em lote.
Onde a chamada aparece depois
- Nas telas de Mensagens, a mensagem criada por uma ferramenta MCP leva um ícone de robô violeta — na grade, no popup e na página da mensagem —, com o nome da ferramenta e da credencial ao passar o mouse.
- No botão Configurações da Definição, a aba API Keys ganha a linha Exposta como ferramenta MCP, com o nome e o endereço.
Segurança
- Marcação humana, por Definição. Nada é ferramenta sem alguém marcar; escrita física pede confirmação ao salvar.
- Validação antes de a mensagem existir. Alias desconhecido, obrigatório faltando ou valor fora da faixa configurada viram erro para o agente corrigir, sem criar mensagem.
- Limite por minuto por ferramenta e credencial.
- Escopo pela credencial. A ferramenta nunca dá mais acesso do que a credencial já tem pela API. Dá para ter uma API Key só de leitura e outra só de escrita — recomendado para escrita física.
- Segredo nunca sai, e conteúdo cifrado nunca é decifrado para o agente. A varredura de segredo roda antes de a resposta virar texto, e não só na versão estruturada dela.
O modelo do outro lado é do cliente. O que uma Coleta devolve entra no contexto dele; se a mesma sessão tiver uma ferramenta de escrita, um texto malicioso nos dados pode induzir a escrita. Separe as credenciais de leitura e de escrita.
Ligar e desligar o servidor
Em Configurações › IA, a chave Servidor MCP de integrações liga ou desliga o endereço inteiro, separada da chave do servidor de configuração. Vem ligada — como nada fica exposto sem marcar uma Definição, o controle real é a marcação. Com ela desligada, a tela Servidores MCP mostra uma faixa avisando que nenhuma ferramenta responde até o servidor ser religado.