Pular para o conteúdo
Pedro Gomes
Todos os trabalhos

Servidor MCP da Clínica Aurora

A agenda da clínica publicada como servidor Model Context Protocol, para que qualquer cliente MCP agende, remarque e cancele por ela. As regras de negócio são impostas no servidor, não pedidas num prompt.

Uma requisição initialize bem-sucedida e as capacidades devolvidas pelo endpoint MCP da Aurora

Quem tem este problema

Uma integração MCP precisa separar a proposta de alteração da gravação na agenda. O servidor vincula cada proposta a um token de uso único, confere as regras novamente ao gravar e registra a decisão. A aprovação humana precisa ser obtida e exigida pelo cliente MCP ou pelo fluxo que o envolve.

Meu papel

Servidor MCP integrado à API da clínica e ao motor determinístico de regras.

Como experimentar

  1. Um navegador não consegue abrir este endpoint: ele fala um protocolo, não serve uma página. Um GET devolve 406 de propósito.
  2. Faça um POST para https://aurora.pgdev.com.br/mcp com Content-Type: application/json, Accept: application/json, text/event-stream e uma chamada initialize. Conclua a inicialização antes de chamar tools/list com o id de sessão recebido.
  3. Ou conecte um cliente MCP compatível a essa URL e consulte as ferramentas disponíveis.

Decisões que tomei

  • Toda escrita usa duas chamadas. A primeira devolve a proposta e um token de uso único sem alterar a agenda; a segunda envia a operação com o token e o servidor confere a política novamente. O token vincula a operação, mas não comprova aprovação humana; essa responsabilidade é do cliente MCP.
  • As regras de negócio são um motor de política determinístico por trás das ferramentas, não instruções no prompt de sistema. Uma gravação que a política recusa volta como recusa com o código da regra, e o modelo é instruído a ler ler_politica antes de prometer qualquer coisa a alguém.
  • Ferramentas de leitura expõem a política e os registros de decisão com código de regra, para que o cliente MCP possa inspecionar por que uma operação foi aceita ou recusada.
  • É a mesma clínica que a demo de chat usa, então as duas podem ser comparadas lado a lado: uma mostra uma pessoa conversando com um agente, a outra mostra outro agente se conectando à mesma agenda protegida.
  • Versão 2025-06-18 do protocolo, Streamable HTTP com ids de sessão, rodando atrás do Traefik como serviço próprio.

Limites que continuam

  • Ele serve só a agenda de demonstração, a mesma da demo de chat, e essa agenda se reinicia sozinha.