MCP Medical Appointments Demo
MCP 医療予約デモ
Model Context Protocol(ツール、リソース、プロンプト、エリシテーション、サンプリング、補完)の動作リファレンスであり、医療予約ドメインを中心に構築されています。
TypeScript、Hono、MCP SDK、およびZodを使用して構築されています。
目次
機能
MCPサーバープリミティブ
プリミティブ | 名前 | 説明 |
ツール |
| 名前または専門分野で医師を検索 |
ツール |
| 特定の日付の医師の空き時間を取得 |
ツール |
| 予約を行う(確認のためにエリシテーションを使用) |
ツール |
| 予約をキャンセルする(確認のためにエリシテーションを使用) |
ツール |
| フィルターを使用して予約を一覧表示 |
ツール |
| 症状に基づいた専門医の推奨(サンプリングを使用) |
リソース |
| 全医療専門分野の静的リスト |
リソース |
| テンプレートを使用した動的な医師プロフィール |
リソース |
| 患者情報 + 予約履歴 |
リソース |
| 予約の詳細 |
プロンプト |
| ガイド付き予約ワークフロー(補完機能付き) |
プロンプト |
| 患者履歴の確認(補完機能付き) |
プロンプト |
| 症状のトリアージと専門医の推奨 |
MCPクライアント機能
機能 | 使用方法 |
エリシテーション |
|
サンプリング |
|
ルート | サーバーは医療予約ワークスペースのルートを登録します |
補完 | プロンプトは |
エージェントスキル
このドメインの SKILL.md は .github/skills/medical-appointments/SKILL.md に提供されています。これはMCPプロトコルを必要とせずにMCPサーバーの機能をミラーリングしており、互換性のあるエージェント(GitHub Copilot、Claude Codeなど)であればオンデマンドで読み込むことができます。
スキルがカバーするもの
スキルワークフロー | 同等のMCPプリミティブ |
医師の検索 |
|
空き時間の確認 |
|
予約の実行 |
|
予約のキャンセル |
|
予約の一覧表示 |
|
専門医の推奨 |
|
予約のスケジュール |
|
患者履歴 |
|
症状のトリアージ |
|
このスキルは、エージェントのネイティブなツールアクセスを使用して、HTTP経由でRESTサービスと直接やり取りします。
スキルの制限事項
以下のMCPサーバー機能は agentskills.io仕様 に同等のものが存在しないため、再現されていません。
MCP機能 | 制限事項 |
エリシテーション |
|
サンプリング |
|
引数の補完 | MCPプロンプトは |
ルート | 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(エージェントモード)で、以下を試してください:
"Search for cardiologists"(循環器内科医を検索して)
"What slots does Dr. Sarah Chen have available next Monday?"(来週の月曜日にSarah Chen医師の空き時間はありますか?)
"Book an appointment with doc-3 for patient pat-1"(患者pat-1のためにdoc-3との予約を入れて)
"Show me Alice Johnson's appointment history"(Alice Johnsonの予約履歴を見せて)
"I've been having severe headaches and dizziness — what specialist should I see?"(ひどい頭痛とめまいがするのですが、何科を受診すべきですか?)
または、プロンプトピッカーからプロンプトを使用してください:
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を呼び出すことで、2つのレイヤーを明確に分離しています。
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