MCP Medical Appointments Demo
MCP Medical Appointments Demo
Eine funktionierende Referenz für das Model Context Protocol — Tools, Ressourcen, Prompts, Elicitation, Sampling und Completion — aufgebaut rund um den Bereich der Terminplanung für medizinische Behandlungen.
Erstellt mit TypeScript, Hono, MCP SDK und Zod.
Inhaltsverzeichnis
Funktionen
MCP Server-Primitive
Primitiv | Name | Beschreibung |
Tool |
| Suche nach Ärzten nach Name oder Fachgebiet |
Tool |
| Verfügbare Zeitfenster für einen Arzt an einem Datum abrufen |
Tool |
| Termin buchen (nutzt Elicitation zur Bestätigung) |
Tool |
| Termin stornieren (nutzt Elicitation zur Bestätigung) |
Tool |
| Termine mit Filtern auflisten |
Tool |
| Symptombasierte Facharzt-Empfehlung (nutzt Sampling) |
Resource |
| Statische Liste aller medizinischen Fachgebiete |
Resource |
| Dynamisches Arztprofil mit Vorlage |
Resource |
| Patienteninformationen + Terminhistorie |
Resource |
| Vollständige Termindetails |
Prompt |
| Geführter Terminplanungs-Workflow (mit Completion) |
Prompt |
| Überprüfung der Patientenhistorie (mit Completion) |
Prompt |
| Symptom-Triage und Facharzt-Empfehlung |
MCP Client-Funktionen
Funktion | Verwendung |
Elicitation |
|
Sampling |
|
Roots | Der Server registriert einen Root für den Arbeitsbereich der medizinischen Termine |
Completion | Prompts verwenden |
Agent Skill
A SKILL.md für diesen Bereich finden Sie unter .github/skills/medical-appointments/SKILL.md. Es spiegelt die Fähigkeiten des MCP-Servers wider, ohne das MCP-Protokoll zu erfordern — jeder kompatible Agent (GitHub Copilot, Claude Code, etc.) kann es bei Bedarf laden.
Was der Skill abdeckt
Skill-Workflow | Äquivalentes MCP-Primitiv |
Ärzte finden |
|
Verfügbare Slots prüfen |
|
Termin buchen |
|
Termin stornieren |
|
Termine auflisten |
|
Facharzt empfehlen |
|
Termin planen |
|
Patientenhistorie |
|
Symptome triagieren |
|
Der Skill interagiert direkt über HTTP mit dem REST-Dienst unter Verwendung des nativen Tool-Zugriffs des Agenten.
Skill-Einschränkungen
Die folgenden MCP-Server-Funktionen haben kein Äquivalent in der agentskills.io Spezifikation und werden daher nicht repliziert:
MCP-Funktion | Einschränkung |
Elicitation |
|
Sampling |
|
Argument-Vervollständigung | MCP-Prompts verwenden |
Roots | Der MCP-Server registriert einen Arbeitsbereichs-Root ( |
VS Code-spezifische Skill-Felder | Felder wie |
Schnellstart
Voraussetzungen
Node.js >= 22.0.0
VS Code mit GitHub Copilot (für MCP-Integration)
1. REST API installieren und starten
npm install
npm run dev:serviceSie sollten Folgendes sehen:
Bootstrapped: 8 specialties, 12 doctors, 5 patients
Medical Appointment Service running on http://localhost:30002. MCP-Server in VS Code verbinden
Die Datei .vscode/mcp.json ist bereits konfiguriert. VS Code erkennt den MCP-Server automatisch und bietet an, ihn zu starten. Alternativ können Sie ihn manuell ausführen:
npm run dev:mcp3. Ausprobieren
Versuchen Sie in VS Code's Copilot Chat (Agent-Modus):
"Suche nach Kardiologen"
"Welche Termine hat Dr. Sarah Chen nächsten Montag frei?"
"Buche einen Termin bei doc-3 für Patient pat-1"
"Zeige mir die Terminhistorie von Alice Johnson"
"Ich habe starke Kopfschmerzen und Schwindel — welchen Facharzt sollte ich aufsuchen?"
Oder verwenden Sie die Prompts aus der Prompt-Auswahl:
Schedule Appointment — geführter Terminplanungs-Workflow
Patient History — Überprüfung der Besuche eines Patienten
Triage Symptoms — symptombasierte Facharzt-Suche
Architektur
┌─────────────────┐ stdio ┌───────────────────┐ HTTP ┌──────────────────┐
│ VS Code / │◄──────────────►│ MCP Server │─────────────►│ Hono REST API │
│ MCP Client │ │ (TypeScript) │ localhost │ (localhost:3000)│
└─────────────────┘ └───────────────────┘ └──────────────────┘
Tools, Resources, In-memory store
Prompts + JSON bootstrapDas Projekt verwendet ein Zwei-Prozess-Design:
Hono REST API — HTTP-Dienst mit einem In-Memory-Datenspeicher, gebootstrappt aus JSON-Seed-Dateien in
data/.MCP Server — Verbindet sich über stdio und stellt die REST API über MCP-Primitive (Tools, Ressourcen, Prompts) bereit.
Der MCP-Server greift niemals direkt auf den Datenspeicher zu — er ruft die REST API über einen HTTP-Client auf, wodurch die beiden Schichten sauber getrennt bleiben.
REST API Endpunkte
Methode | Endpunkt | Beschreibung |
|
| Alle Fachgebiete auflisten |
|
| Fachgebiet nach ID abrufen |
|
| Ärzte auflisten (Filter: |
|
| Arzt nach ID abrufen |
|
| Verfügbare Slots abrufen |
|
| Alle Patienten auflisten |
|
| Patient nach ID abrufen |
|
| Einen Patienten erstellen |
|
| Termine auflisten (Filter: |
|
| Termin nach ID abrufen |
|
| Einen Termin buchen |
|
| Einen Termin stornieren |
|
| Einen Termin abschließen |
Projektstruktur
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.jsonSkripte
Befehl | Beschreibung |
| Hono REST API mit Hot-Reload starten |
| MCP-Server im stdio-Modus starten |
| TypeScript nach |
| Typ-Prüfung ohne Dateierstellung |
Domänenmodell
Entität | Beschreibung |
Specialty | Medizinisches Fachgebiet (Kardiologie, Dermatologie, etc.) |
Doctor | Hat ein Fachgebiet, verfügbare Tage, Arbeitszeiten und Slot-Dauer |
Patient | Name, E-Mail, Telefon, Geburtsdatum |
Appointment | Verknüpft einen Patienten mit einem Arzt zu einem bestimmten Datum/Uhrzeit mit Grund und Status |
TimeSlot | Verfügbares oder gebuchtes Zeitfenster für einen Arzt an einem bestimmten Tag |
Konfiguration
Die REST API lauscht standardmäßig auf Port 3000. Der MCP-Server kommuniziert mit der API über http://localhost:3000 und verbindet sich mit VS Code über stdio.
Seed-Daten (Fachgebiete, Ärzte, Patienten) werden beim Start aus dem Verzeichnis data/ geladen. Bearbeiten Sie diese JSON-Dateien, um den Demo-Datensatz anzupassen.
Mitwirken
Beiträge sind willkommen. Forken Sie das Repo, erstellen Sie einen Feature-Branch und öffnen Sie einen Pull Request.
Lizenz
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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