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: northstar-clinic
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.
Salon and clinic appointments: check availability, hold slots, take deposits, move and cancel.
1Scheduling, availability, clients, billing and CRM for appointment-based services.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceSimulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.-
- FlicenseAqualityBmaintenanceEnables managing clinic appointments through MCP tools and an interactive widget, including viewing availability, booking visits, and confirming appointments.33-
- FlicenseNot gradedqualityCmaintenanceExposes vaccination-appointment scheduling as standardized MCP tools backed by an in-memory mock backend. Enables agents to list available slots by date and vaccine type, book appointments, check confirmation status, and cancel bookings.-
- AlicenseNot gradedqualityBmaintenanceEnables LLMs and MCP clients to interact with patient records, encounters, and practice information through tools for clinical, scheduling, messaging, and administrative workflows.MIT