MCP Medical Appointments Demo
Demo de Citas Médicas MCP
Una referencia funcional para el Model Context Protocol — herramientas, recursos, prompts, obtención de información (elicitation), muestreo y finalización — construida en torno a un dominio de programación de citas médicas.
Construido con TypeScript, Hono, MCP SDK y Zod.
Tabla de contenidos
Related MCP server: MCP Appointment Booking Server
Características
Primitivas del servidor MCP
Primitiva | Nombre | Descripción |
Herramienta |
| Buscar médicos por nombre o especialidad |
Herramienta |
| Obtener franjas horarias disponibles para un médico en una fecha |
Herramienta |
| Reservar una cita (usa elicitation para confirmación) |
Herramienta |
| Cancelar una cita (usa elicitation para confirmación) |
Herramienta |
| Listar citas con filtros |
Herramienta |
| Recomendación de especialista basada en síntomas (usa sampling) |
Recurso |
| Lista estática de todas las especialidades médicas |
Recurso |
| Perfil dinámico del médico con plantilla |
Recurso |
| Información del paciente + historial de citas |
Recurso |
| Detalles completos de la cita |
Prompt |
| Flujo de trabajo guiado de programación de citas (con completion) |
Prompt |
| Revisión del historial del paciente (con completion) |
Prompt |
| Triaje de síntomas y recomendación de especialista |
Características del cliente MCP
Característica | Cómo se utiliza |
Elicitation |
|
Sampling |
|
Roots | El servidor registra una raíz para el espacio de trabajo de citas médicas |
Completion | Los prompts utilizan |
Habilidad del Agente
Se proporciona un SKILL.md para este dominio en .github/skills/medical-appointments/SKILL.md. Refleja las capacidades del servidor MCP sin requerir el protocolo MCP: cualquier agente compatible (GitHub Copilot, Claude Code, etc.) puede cargarlo bajo demanda.
Qué cubre la habilidad
Flujo de trabajo de habilidad | Primitiva MCP equivalente |
Buscar médicos | Herramienta |
Comprobar franjas disponibles | Herramienta |
Reservar cita | Herramienta |
Cancelar cita | Herramienta |
Listar citas | Herramienta |
Recomendar especialista | Herramienta |
Programar cita | Prompt |
Historial del paciente | Prompt |
Triaje de síntomas | Prompt |
La habilidad interactúa con el servicio REST directamente a través de HTTP utilizando el acceso a herramientas nativo del agente.
Limitaciones de la habilidad
Las siguientes características del servidor MCP no tienen equivalente en la especificación de agentskills.io y, por lo tanto, no se replican:
Característica MCP | Limitación |
Elicitation |
|
Sampling |
|
Argument completion | Los prompts de MCP utilizan |
Roots | El servidor MCP registra una raíz de espacio de trabajo ( |
Campos de habilidad específicos de VS Code | Campos como |
Inicio rápido
Requisitos previos
Node.js >= 22.0.0
VS Code con GitHub Copilot (para integración MCP)
1. Instalar e iniciar la API REST
npm install
npm run dev:serviceDeberías ver:
Bootstrapped: 8 specialties, 12 doctors, 5 patients
Medical Appointment Service running on http://localhost:30002. Conectar el servidor MCP en VS Code
El archivo .vscode/mcp.json ya está configurado. VS Code detectará automáticamente y ofrecerá iniciar el servidor MCP. Alternativamente, ejecútalo manualmente:
npm run dev:mcp3. Pruébalo
En el chat de Copilot de VS Code (modo Agente), intenta:
"Busca cardiólogos"
"¿Qué franjas horarias tiene disponibles la Dra. Sarah Chen el próximo lunes?"
"Reserva una cita con doc-3 para el paciente pat-1"
"Muéstrame el historial de citas de Alice Johnson"
"He tenido dolores de cabeza intensos y mareos, ¿qué especialista debería consultar?"
O utiliza los prompts del selector de prompts:
Schedule Appointment — flujo de trabajo de programación guiado
Patient History — revisar las visitas de un paciente
Triage Symptoms — emparejamiento de especialistas basado en síntomas
Inspector MCP
MCP Inspector es una interfaz de usuario basada en navegador para probar interactivamente servidores MCP: navegar por herramientas, recursos y prompts, e invocarlos directamente.
1. Iniciar la API REST
El servidor MCP llama a la API REST a través de HTTP, por lo que debe estar ejecutándose primero:
npm run dev:service2. Iniciar el Inspector
En una segunda terminal, ejecuta:
npx @modelcontextprotocol/inspector tsx src/mcp/server.tsEl Inspector iniciará el servidor MCP como un subproceso y abrirá una interfaz de usuario en el navegador en http://localhost:5173. Elige la opción STDIO
Si la API REST se está ejecutando en un puerto no predeterminado, pasa SERVICE_URL:
SERVICE_URL=http://localhost:3000 npx @modelcontextprotocol/inspector tsx src/mcp/server.ts3. Probar la obtención de información (elicitation)
La obtención de información se activa mediante book_appointment y cancel_appointment. El Inspector mostrará un diálogo de confirmación nativo antes de que se confirme la acción.
Llama a book_appointment con:
{
"patientId": "pat-1",
"doctorId": "doc-1",
"dateTime": "2026-05-05T10:00:00",
"reason": "Annual checkup"
}El Inspector se pausará y te pedirá que confirmes antes de que se reserve la cita.
Arquitectura
┌─────────────────┐ stdio ┌───────────────────┐ HTTP ┌──────────────────┐
│ VS Code / │◄──────────────►│ MCP Server │─────────────►│ Hono REST API │
│ MCP Client │ │ (TypeScript) │ localhost │ (localhost:3000)│
└─────────────────┘ └───────────────────┘ └──────────────────┘
Tools, Resources, In-memory store
Prompts + JSON bootstrapEl proyecto utiliza un diseño de dos procesos:
API REST Hono — Servicio HTTP con un almacén de datos en memoria, iniciado desde archivos semilla JSON en
data/.Servidor MCP — Se conecta a través de stdio y expone la API REST a través de primitivas MCP (herramientas, recursos, prompts).
El servidor MCP nunca toca el almacén de datos directamente; llama a la API REST a través de un cliente HTTP, manteniendo las dos capas claramente separadas.
Endpoints de la API REST
Método | Endpoint | Descripción |
|
| Listar todas las especialidades |
|
| Obtener especialidad por ID |
|
| Listar médicos (filtros: |
|
| Obtener médico por ID |
|
| Obtener franjas disponibles |
|
| Listar todos los pacientes |
|
| Obtener paciente por ID |
|
| Crear un paciente |
|
| Listar citas (filtros: |
|
| Obtener cita por ID |
|
| Reservar una cita |
|
| Cancelar una cita |
|
| Completar una cita |
Estructura del proyecto
mcp-demo/
├── data/
│ ├── specialties.json # 8 medical specialties
│ ├── doctors.json # 12 doctors across specialties
│ └── patients.json # 5 sample patients
├── src/
│ ├── types.ts # Shared domain types
│ ├── service/
│ │ ├── store.ts # In-memory data store
│ │ ├── app.ts # Hono app composition
│ │ ├── main.ts # Service entry point
│ │ └── routes/ # REST route handlers
│ └── mcp/
│ ├── api-client.ts # HTTP client for the REST API
│ ├── tools.ts # MCP tool registrations
│ ├── resources.ts # MCP resource registrations
│ ├── prompts.ts # MCP prompt registrations
│ └── server.ts # MCP server entry point
├── .vscode/
│ └── mcp.json # VS Code MCP server config
├── package.json
└── tsconfig.jsonScripts
Comando | Descripción |
| Iniciar la API REST Hono con recarga en caliente |
| Iniciar el servidor MCP en modo stdio |
| Compilar TypeScript a |
| Comprobar tipos sin emitir archivos |
Modelo de dominio
Entidad | Descripción |
Especialidad | Especialidad médica (Cardiología, Dermatología, etc.) |
Médico | Tiene una especialidad, días disponibles, horario laboral y duración de la franja |
Paciente | Nombre, correo electrónico, teléfono, fecha de nacimiento |
Cita | Vincula a un paciente con un médico en una fecha/hora específica con un motivo y estado |
Franja horaria | Ventana de tiempo disponible o reservada para un médico en un día determinado |
Configuración
La API REST escucha en el puerto 3000 por defecto. El servidor MCP se comunica con la API a través de http://localhost:3000 y se conecta a VS Code mediante stdio.
Los datos semilla (especialidades, médicos, pacientes) se cargan desde el directorio data/ al inicio. Edita esos archivos JSON para personalizar el conjunto de datos de la demo.
Contribución
Las contribuciones son bienvenidas. Haz un fork del repositorio, crea una rama de características y abre un pull request.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with OnSched's consumer-facing appointment scheduling API through natural language, allowing users to manage bookings, appointments, and scheduling operations.
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables users to book, cancel, reschedule, and list appointments through natural language interactions. It uses YAML configurations for agent behavior and function logic to manage appointment data and availability.MIT
- AlicenseAqualityDmaintenanceEnables HIPAA-aware healthcare workflow automation including patient intake, clinical summaries, compliance checking, and appointment scheduling via MCP tools.4991Business Source 1.1
- FlicenseNot gradedqualityCmaintenanceSimulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.
Related MCP Connectors
AI-native scheduling: check availability, book meetings, cancel and reschedule via MCP
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bicatu/mcp-skills-demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server