clinic-engine
Provides integration with Google Calendar as the calendar backend for the clinic engine, enabling appointment availability, scheduling, rescheduling, and cancellation operations to be backed by a Google Calendar.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@clinic-enginelist valid appointment slots for consulta-geral on 2026-09-07"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
clinic-engine
Action Engine de agendamento da Clínica Horizonte.
O agente (Claude, ChatGPT, Cursor, um app ou a CLI) só pede o resultado. A política da clínica — expediente, buffer, aviso mínimo e quem atende o quê — mora aqui, uma vez, e todo mundo passa por engine.invoke.
paciente / recepção / agente
↓
appointments.list-valid-slots
appointments.schedule
appointments.reschedule
appointments.cancel
↓
política da clínica + calendário
↓
horário válido, consulta marcada, ou recusa estávelO que este engine faz
Capability | Quem pode chamar | Resultado |
| público | Horários que a clínica permite oferecer |
| autenticado | Consulta confirmada ou conflito estável |
| autenticado | Novo horário, se o aviso mínimo permitir |
| autenticado | Cancelamento, se o aviso mínimo permitir |
A clínica de demonstração:
Expediente: segunda a sexta, 08:00–18:00; sábado, 08:00–12:00; domingo fechado
Fuso:
America/Sao_Paulo(-03:00)Buffer: 10 minutos entre consultas
Aviso mínimo: 2 horas para marcar, remarcar ou cancelar
Profissionais: Dra. Ana Souza (
consulta-geral,retorno) e Dr. Carlos Mendes (consulta-geral,exame)
O calendário padrão é em memória, com duas consultas já marcadas no dia 2026-09-07, para o README e os testes serem determinísticos. O relógio padrão também está congelado nesse dia. Trocar para relógio real ou Google Calendar é só injetar outra dependência — as capabilities não mudam.
Related MCP server: Ecuro Light API MCP Server
Requisitos
Node.js 22.20 ou posterior
Primeiro run
npm install
npm run check
npm run directnpm run check typecheck, testa, builda e valida o catálogo MCP. npm run direct lista horários de consulta-geral no dia de demonstração.
CLI
A CLI entra como a recepção local (local:clinic-desk), então as actions autenticadas funcionam.
npm run build
npm run cli -- list
npm run cli -- run appointments.list-valid-slots --input '{"appointmentType":"consulta-geral","date":"2026-09-07"}'
npm run cli -- run appointments.schedule --input '{
"patientName": "Ada Lovelace",
"appointmentType": "consulta-geral",
"practitionerId": "dra-ana-souza",
"start": "2026-09-07T14:00:00-03:00"
}'MCP stdio
npm run mcp:stdio
npm run mcp:installDepois o Cursor, Claude Code ou outro cliente MCP local vê as quatro tools. mcp:uninstall remove o engine dos clientes gerenciados pelo Senda.
MCP HTTP
Copie
.env.examplepara.envDefina
CLINIC_ENGINE_HTTP_TOKENSuba o servidor:
cp .env.example .env
npm run mcp:httpO endpoint é POST http://127.0.0.1:3000/mcp. Sem Authorization: Bearer <token> a resposta é 401. Não existe modo de desenvolvimento sem autenticação.
Devtools
npm run devtoolsAbre o inspector do Senda (em geral em http://localhost:4100/). Dá para chamar a mesma capability por direct, CLI, MCP stdio ou MCP HTTP e comparar o resultado.
Como a fronteira funciona
MCP, CLI e HTTP são tomadas. Eles não conhecem Google Calendar nem a regra de sábado.
O Action Engine é o microsserviço de domínio. Ele valida entrada, autoriza, aplica a política e só então fala com o calendário.
Google Calendar é um adapter.
src/infrastructure/google-calendar.tsimplementa o mesmoCalendarPortda agenda em memória viadefineConnector. O default não chama a API do Google, para o clone do repositório funcionar sem credencial.
Para usar Google Calendar no composition root:
import { googleCalendarConnector } from "./infrastructure/google-calendar.js";
const { ports } = googleCalendarConnector.create(
{
calendarId: process.env.GOOGLE_CALENDAR_ID,
accessToken: process.env.GOOGLE_CALENDAR_ACCESS_TOKEN,
},
{},
);
export const engine = createClinicEngine({
calendar: ports.calendar,
clock: { now: () => new Date() },
createId: createIdFactory(),
});Mapa do projeto
src/capabilities/ contratos públicos (input, output, access, run)
src/domain/ política da clínica e geração de slots
src/application/ CalendarPort e dependências
src/infrastructure/ agenda em memória e conector Google
src/engine.ts um mapa de capabilities, um invoke
src/direct.ts smoke test
src/cli.ts CLI
src/mcp-stdio.ts MCP local
src/mcp-http.ts MCP Streamable HTTP
test/ provas pela fronteira engine.invokeLicença
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Read appointments, types, calendars and availability; create, cancel or reschedule bookings.
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
Scheduling, availability, clients, billing and CRM for appointment-based services.
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables integration with the Cliniko practice management system through MCP tools and resources. Supports patient management, appointment scheduling, and practice data access through natural language interactions.-
- FlicenseNot gradedqualityCmaintenanceExposes tools from the Ecuro Light API for managing clinical appointments, patient records, and clinic availability. It enables users to perform healthcare management tasks such as scheduling, patient search, and report generation through MCP-compatible clients.-
- AlicenseNot gradedqualityCmaintenanceEnables interaction with FHIR servers to access, search, and manage FHIR resources, including appointment scheduling and cancellation.1MIT
- FlicenseNot gradedqualityCmaintenanceSimulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.-