MCP Medical Appointments Demo
MCP 의료 예약 데모
Model Context Protocol을 위한 작동 참조 구현체입니다. 의료 예약 도메인을 중심으로 도구, 리소스, 프롬프트, 유도(elicitation), 샘플링 및 완성(completion) 기능을 포함합니다.
TypeScript, Hono, MCP SDK 및 Zod로 구축되었습니다.
목차
기능
MCP 서버 기본 요소
기본 요소 | 이름 | 설명 |
도구 |
| 이름이나 전문 분야별로 의사 검색 |
도구 |
| 특정 날짜의 의사 예약 가능 시간대 조회 |
도구 |
| 진료 예약 (**유도(elicitation)**를 사용하여 확인) |
도구 |
| 진료 예약 취소 (**유도(elicitation)**를 사용하여 확인) |
도구 |
| 필터를 사용하여 예약 목록 조회 |
도구 |
| 증상 기반 전문의 추천 (샘플링 사용) |
리소스 |
| 모든 의료 전문 분야의 정적 목록 |
리소스 |
| 템플릿을 포함한 동적 의사 프로필 |
리소스 |
| 환자 정보 + 예약 내역 |
리소스 |
| 전체 예약 상세 정보 |
프롬프트 |
| 안내형 진료 예약 워크플로우 (완성(completion) 포함) |
프롬프트 |
| 환자 내역 검토 (완성(completion) 포함) |
프롬프트 |
| 증상 분류 및 전문의 추천 |
MCP 클라이언트 기능
기능 | 사용 방법 |
유도(Elicitation) |
|
샘플링 |
|
루트(Roots) | 서버가 의료 예약 워크스페이스를 위한 루트를 등록합니다 |
완성(Completion) | 프롬프트는 |
에이전트 스킬
이 도메인을 위한 SKILL.md는 .github/skills/medical-appointments/SKILL.md에서 제공됩니다. 이는 MCP 프로토콜을 요구하지 않고도 MCP 서버의 기능을 반영하므로, 호환되는 모든 에이전트(GitHub Copilot, Claude Code 등)가 필요에 따라 로드할 수 있습니다.
스킬 범위
스킬 워크플로우 | 대응하는 MCP 기본 요소 |
의사 찾기 |
|
예약 가능 시간 확인 |
|
진료 예약 |
|
예약 취소 |
|
예약 목록 조회 |
|
전문의 추천 |
|
진료 예약 |
|
환자 내역 |
|
증상 분류 |
|
이 스킬은 에이전트의 기본 도구 액세스를 사용하여 HTTP를 통해 REST 서비스와 직접 상호 작용합니다.
스킬 제한 사항
다음 MCP 서버 기능은 agentskills.io 사양에 대응하는 기능이 없으므로 복제되지 않았습니다:
MCP 기능 | 제한 사항 |
유도(Elicitation) |
|
샘플링 |
|
인수 완성 | MCP 프롬프트는 |
루트(Roots) | MCP 서버는 워크스페이스 루트( |
VS Code 전용 스킬 필드 |
|
빠른 시작
사전 요구 사항
Node.js >= 22.0.0
GitHub Copilot이 포함된 VS Code (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. VS Code에서 MCP 서버 연결
.vscode/mcp.json 파일은 이미 구성되어 있습니다. VS Code가 자동으로 MCP 서버를 감지하고 시작을 제안합니다. 또는 수동으로 실행할 수 있습니다:
npm run dev:mcp3. 사용해 보기
VS Code의 Copilot Chat(에이전트 모드)에서 다음을 시도해 보세요:
"심장 전문의 검색해 줘"
"다음 주 월요일에 Sarah Chen 박사님의 예약 가능한 시간대는 언제인가요?"
"환자 pat-1을 위해 doc-3 의사에게 진료 예약해 줘"
"Alice Johnson의 진료 예약 내역 보여줘"
"심한 두통과 어지러움이 있는데 어떤 전문의를 만나야 할까요?"
또는 프롬프트 선택기에서 프롬프트를 사용하세요:
Schedule Appointment — 안내형 예약 워크플로우
Patient History — 환자 방문 내역 검토
Triage Symptoms — 증상 기반 전문의 매칭
아키텍처
┌─────────────────┐ stdio ┌───────────────────┐ HTTP ┌──────────────────┐
│ VS Code / │◄──────────────►│ MCP Server │─────────────►│ Hono REST API │
│ MCP Client │ │ (TypeScript) │ localhost │ (localhost:3000)│
└─────────────────┘ └───────────────────┘ └──────────────────┘
Tools, Resources, In-memory store
Prompts + JSON bootstrap이 프로젝트는 2-프로세스 설계를 사용합니다:
Hono REST API —
data/의 JSON 시드 파일에서 부트스트랩된 인메모리 데이터 저장소를 갖춘 HTTP 서비스.MCP 서버 — stdio를 통해 연결되며 MCP 기본 요소(도구, 리소스, 프롬프트)를 통해 REST API를 노출합니다.
MCP 서버는 데이터 저장소에 직접 접근하지 않으며, HTTP 클라이언트를 통해 REST API를 호출하여 두 계층을 깔끔하게 분리합니다.
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 시작 |
| stdio 모드에서 MCP 서버 시작 |
| TypeScript를 |
| 파일 생성 없이 타입 체크 |
도메인 모델
엔티티 | 설명 |
Specialty | 의료 전문 분야 (심장내과, 피부과 등) |
Doctor | 전문 분야, 근무 가능 요일, 근무 시간, 시간대 지속 시간을 가짐 |
Patient | 이름, 이메일, 전화번호, 생년월일 |
Appointment | 특정 날짜/시간에 환자와 의사를 사유 및 상태와 연결 |
TimeSlot | 특정 날짜에 의사가 예약 가능하거나 예약된 시간 창 |
구성
REST API는 기본적으로 3000 포트에서 수신 대기합니다. MCP 서버는 http://localhost:3000을 통해 API와 통신하며 stdio를 통해 VS Code에 연결됩니다.
시드 데이터(전문 분야, 의사, 환자)는 시작 시 data/ 디렉토리에서 로드됩니다. 데모 데이터셋을 사용자 정의하려면 해당 JSON 파일을 편집하세요.
기여
기여를 환영합니다. 저장소를 포크하고, 기능 브랜치를 생성한 후 풀 리퀘스트를 보내주세요.
라이선스
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