MCP Medical Appointments Demo
Демонстрация медицинских приемов MCP
Рабочий эталон для Model Context Protocol — инструменты, ресурсы, подсказки (prompts), получение подтверждений (elicitation), выборка (sampling) и автодополнение — построенный вокруг домена планирования медицинских приемов.
Создано с использованием TypeScript, Hono, MCP SDK и Zod.
Содержание
Related MCP server: MCP Appointment Booking Server
Возможности
Примитивы сервера MCP
Примитив | Имя | Описание |
Инструмент |
| Поиск врачей по имени или специальности |
Инструмент |
| Получение доступных временных интервалов для врача на дату |
Инструмент |
| Запись на прием (использует elicitation для подтверждения) |
Инструмент |
| Отмена приема (использует elicitation для подтверждения) |
Инструмент |
| Список приемов с фильтрами |
Инструмент |
| Рекомендация специалиста на основе симптомов (использует sampling) |
Ресурс |
| Статический список всех медицинских специальностей |
Ресурс |
| Динамический профиль врача с шаблоном |
Ресурс |
| Информация о пациенте + история приемов |
Ресурс |
| Полные сведения о приеме |
Подсказка |
| Управляемый рабочий процесс планирования приема (с completion) |
Подсказка |
| Обзор истории пациента (с completion) |
Подсказка |
| Сортировка симптомов и рекомендация специалиста |
Возможности клиента MCP
Функция | Как это используется |
Elicitation |
|
Sampling |
|
Roots | Сервер регистрирует корень для рабочей области медицинских приемов |
Completion | Подсказки используют |
Навык агента
SKILL.md для этого домена предоставлен по адресу .github/skills/medical-appointments/SKILL.md. Он отражает возможности сервера MCP без необходимости использования протокола MCP — любой совместимый агент (GitHub Copilot, Claude Code и т. д.) может загрузить его по требованию.
Что охватывает навык
Рабочий процесс навыка | Эквивалентный примитив MCP |
Поиск врачей | Инструмент |
Проверка доступных слотов | Инструмент |
Запись на прием | Инструмент |
Отмена приема | Инструмент |
Список приемов | Инструмент |
Рекомендация специалиста | Инструмент |
Планирование приема | Подсказка |
История пациента | Подсказка |
Сортировка симптомов | Подсказка |
Навык взаимодействует со службой REST напрямую по HTTP, используя собственный доступ агента к инструментам.
Ограничения навыка
Следующие функции сервера MCP не имеют эквивалента в спецификации agentskills.io и поэтому не воспроизведены:
Функция MCP | Ограничение |
Elicitation |
|
Sampling |
|
Завершение аргументов | Подсказки MCP используют |
Roots | Сервер MCP регистрирует корень рабочей области ( |
Поля навыков для VS Code | Поля, такие как |
Быстрый старт
Предварительные требования
Node.js >= 22.0.0
VS Code с GitHub Copilot (для интеграции MCP)
1. Установка и запуск REST API
npm install
npm run dev:serviceВы должны увидеть:
Bootstrapped: 8 specialties, 12 doctors, 5 patients
Medical Appointment Service running on http://localhost:30002. Подключение сервера MCP в VS Code
Файл .vscode/mcp.json уже настроен. VS Code автоматически обнаружит и предложит запустить сервер MCP. В качестве альтернативы запустите его вручную:
npm run dev:mcp3. Попробуйте в действии
В чате Copilot в VS Code (режим агента) попробуйте:
"Search for cardiologists"
"What slots does Dr. Sarah Chen have available next Monday?"
"Book an appointment with doc-3 for patient pat-1"
"Show me Alice Johnson's appointment history"
"I've been having severe headaches and dizziness — what specialist should I see?"
Или используйте подсказки из выбора подсказок:
Schedule Appointment — управляемый рабочий процесс планирования
Patient History — обзор посещений пациента
Triage Symptoms — подбор специалиста на основе симптомов
Инспектор MCP
Инспектор MCP — это UI на базе браузера для интерактивного тестирования серверов MCP — просмотра инструментов, ресурсов и подсказок, а также их прямого вызова.
1. Запуск REST API
Сервер MCP вызывает REST API по HTTP, поэтому он должен быть запущен первым:
npm run dev:service2. Запуск инспектора
Во втором терминале выполните:
npx @modelcontextprotocol/inspector tsx src/mcp/server.tsИнспектор запустит сервер MCP как подпроцесс и откроет UI браузера по адресу http://localhost:5173. Выберите опцию STDIO.
Если REST API работает на нестандартном порту, передайте SERVICE_URL:
SERVICE_URL=http://localhost:3000 npx @modelcontextprotocol/inspector tsx src/mcp/server.ts3. Попробуйте elicitation
Elicitation вызывается через book_appointment и cancel_appointment. Инспектор отобразит встроенный диалог подтверждения перед выполнением действия.
Вызовите book_appointment с помощью:
{
"patientId": "pat-1",
"doctorId": "doc-1",
"dateTime": "2026-05-05T10:00:00",
"reason": "Annual checkup"
}Инспектор приостановится и попросит вас подтвердить действие перед записью на прием.
Архитектура
┌─────────────────┐ stdio ┌───────────────────┐ HTTP ┌──────────────────┐
│ VS Code / │◄──────────────►│ MCP Server │─────────────►│ Hono REST API │
│ MCP Client │ │ (TypeScript) │ localhost │ (localhost:3000)│
└─────────────────┘ └───────────────────┘ └──────────────────┘
Tools, Resources, In-memory store
Prompts + JSON bootstrapПроект использует двухпроцессный дизайн:
Hono REST API — HTTP-сервис с хранилищем данных в памяти, загружаемым из файлов JSON в
data/.Сервер MCP — подключается через stdio и предоставляет REST API через примитивы MCP (инструменты, ресурсы, подсказки).
Сервер MCP никогда не обращается к хранилищу данных напрямую — он вызывает REST API через HTTP-клиент, сохраняя четкое разделение двух уровней.
Конечные точки REST API
Метод | Конечная точка | Описание |
|
| Список всех специальностей |
|
| Получить специальность по ID |
|
| Список врачей (фильтры: |
|
| Получить врача по ID |
|
| Получить доступные слоты |
|
| Список всех пациентов |
|
| Получить пациента по ID |
|
| Создать пациента |
|
| Список приемов (фильтры: |
|
| Получить прием по ID |
|
| Записаться на прием |
|
| Отменить прием |
|
| Завершить прием |
Структура проекта
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.jsonСкрипты
Команда | Описание |
| Запуск Hono REST API с горячей перезагрузкой |
| Запуск сервера MCP в режиме stdio |
| Компиляция TypeScript в |
| Проверка типов без создания файлов |
Модель предметной области
Сущность | Описание |
Specialty | Медицинская специальность (кардиология, дерматология и т. д.) |
Doctor | Имеет специальность, доступные дни, рабочие часы и длительность слота |
Patient | Имя, email, телефон, дата рождения |
Appointment | Связывает пациента с врачом в определенную дату/время с причиной и статусом |
TimeSlot | Доступное или забронированное временное окно для врача в конкретный день |
Конфигурация
REST API по умолчанию прослушивает порт 3000. Сервер MCP взаимодействует с API через http://localhost:3000 и подключается к VS Code через stdio.
Начальные данные (специальности, врачи, пациенты) загружаются из каталога data/ при запуске. Редактируйте эти файлы JSON, чтобы настроить демонстрационный набор данных.
Участие в разработке
Вклады приветствуются. Сделайте форк репозитория, создайте ветку для функции и откройте pull request.
Лицензия
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