Skip to main content
Glama
bicatu

MCP Medical Appointments Demo

by bicatu

MCP 医療予約デモ

Model Context Protocol(ツール、リソース、プロンプト、エリシテーション、サンプリング、補完)の動作リファレンスであり、医療予約スケジューリングのドメインを中心に構築されています。

TypeScriptHonoMCP SDKZod を使用して構築されています。

目次

Related MCP server: MCP Appointment Booking Server

機能

MCPサーバープリミティブ

プリミティブ

名前

説明

Tool

search_doctors

名前または専門分野で医師を検索

Tool

get_available_slots

特定の日付における医師の空き時間を取得

Tool

book_appointment

予約を行う(確認のためにエリシテーションを使用)

Tool

cancel_appointment

予約をキャンセルする(確認のためにエリシテーションを使用)

Tool

list_appointments

フィルターを使用して予約を一覧表示

Tool

recommend_specialist

症状に基づいた専門医の推奨(サンプリングを使用)

Resource

specialties://list

全ての診療科の静的リスト

Resource

doctor://{doctorId}/profile

テンプレートを使用した動的な医師プロフィール

Resource

patient://{patientId}/summary

患者情報と予約履歴

Resource

appointment://{appointmentId}

予約の詳細情報

Prompt

schedule-appointment

ガイド付き予約スケジューリングワークフロー(補完機能付き)

Prompt

patient-history

患者履歴の確認(補完機能付き)

Prompt

triage-symptoms

症状のトリアージと専門医の推奨

MCPクライアント機能

機能

使用方法

エリシテーション

book_appointment および cancel_appointment は、実行前にユーザーに確認を求めます

サンプリング

recommend_specialist はLLMサンプリングを使用して症状と専門分野を照合します

ルート

サーバーは医療予約ワークスペースのルートを登録します

補完

プロンプトは completable() を使用して、専門分野名や患者IDを自動補完します

エージェントスキル

このドメイン用の SKILL.md.github/skills/medical-appointments/SKILL.md に提供されています。これはMCPプロトコルを必要とせずにMCPサーバーの機能をミラーリングしており、互換性のあるエージェント(GitHub Copilot、Claude Codeなど)であればオンデマンドで読み込むことができます。

スキルがカバーする内容

スキルワークフロー

同等のMCPプリミティブ

医師の検索

search_doctors ツール

空き時間の確認

get_available_slots ツール

予約の実行

book_appointment ツール

予約のキャンセル

cancel_appointment ツール

予約の一覧表示

list_appointments ツール

専門医の推奨

recommend_specialist ツール

予約のスケジューリング

schedule-appointment プロンプト

患者履歴の確認

patient-history プロンプト

症状のトリアージ

triage-symptoms プロンプト

このスキルは、エージェントのネイティブなツールアクセスを使用して、HTTP経由でRESTサービスと直接やり取りします。

スキルの制限事項

以下のMCPサーバー機能は agentskills.io仕様 に同等のものが存在しないため、再現されていません。

MCP機能

制限事項

エリシテーション

book_appointmentcancel_appointment はMCPサーバー内でネイティブUIの確認ダイアログを使用します。スキルには同等の機能がなく、エージェントは会話を通じて確認を求めます。

サンプリング

recommend_specialist はMCPサンプリングを介してサブLLMを呼び出し、症状と専門分野を照合します。スキルはエージェント自身の推論を直接使用します(機能的には同等)。

引数の補完

MCPプロンプトは completable() を使用してクライアントUIで専門分野名や患者IDを自動提案します。スキルはインタラクティブな補完を提供しません。

ルート

MCPサーバーはワークスペースルート (roots/list) を登録します。これはMCPトランスポートの概念であり、スキルには同等のものがありません。

VS Code固有のスキルフィールド

argument-hintuser-invocabledisable-model-invocation などのフィールドは、SKILL.md形式に対するVS Code Copilotの拡張機能です。これらはagentskills.io仕様の一部ではなく、スキルの移植性を保つために省略されています。

クイックスタート

前提条件

  • 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:3000

2. VS CodeでMCPサーバーに接続

.vscode/mcp.json ファイルは既に設定済みです。VS Codeは自動的にMCPサーバーを検出し、起動を提案します。または、手動で実行してください:

npm run dev:mcp

3. 試してみる

VS CodeのCopilotチャット(エージェントモード)で、以下を試してください:

  • "循環器内科医を検索して"

  • "Sarah Chen医師の来週月曜日の空き時間は?"

  • "患者pat-1のためにdoc-3との予約を入れて"

  • "Alice Johnsonの予約履歴を見せて"

  • "ひどい頭痛とめまいがするのですが、何科を受診すべきですか?"

または、プロンプトピッカーからプロンプトを使用してください:

  • Schedule Appointment — ガイド付き予約ワークフロー

  • Patient History — 患者の受診履歴を確認

  • Triage Symptoms — 症状に基づいた専門医の照合

MCPインスペクター

MCP Inspector は、MCPサーバーをインタラクティブにテストするためのブラウザベースのUIです。ツール、リソース、プロンプトを閲覧し、直接呼び出すことができます。

1. REST APIの起動

MCPサーバーはHTTP経由でREST APIを呼び出すため、先に起動しておく必要があります:

npm run dev:service

2. インスペクターの起動

別のターミナルで以下を実行します:

npx @modelcontextprotocol/inspector tsx src/mcp/server.ts

インスペクターはMCPサーバーをサブプロセスとして起動し、http://localhost:5173 でブラウザUIを開きます。STDIOオプションを選択してください。

REST APIがデフォルト以外のポートで実行されている場合は、SERVICE_URL を渡してください:

SERVICE_URL=http://localhost:3000 npx @modelcontextprotocol/inspector tsx src/mcp/server.ts

3. エリシテーションを試す

エリシテーションは 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

このプロジェクトは 2プロセス設計 を採用しています:

  1. Hono REST APIdata/ 内のJSONシードファイルからブートストラップされる、インメモリデータストアを備えたHTTPサービス。

  2. MCPサーバー — stdio経由で接続し、MCPプリミティブ(ツール、リソース、プロンプト)を通じてREST APIを公開します。

MCPサーバーはデータストアに直接触れることはなく、HTTPクライアントを介してREST APIを呼び出すことで、2つのレイヤーを明確に分離しています。

REST APIエンドポイント

メソッド

エンドポイント

説明

GET

/api/specialties

全ての専門分野を一覧表示

GET

/api/specialties/:id

IDで専門分野を取得

GET

/api/doctors

医師を一覧表示(フィルター: ?specialtyId=, ?name=

GET

/api/doctors/:id

IDで医師を取得

GET

/api/doctors/:id/slots?date=YYYY-MM-DD

空き時間を取得

GET

/api/patients

全ての患者を一覧表示

GET

/api/patients/:id

IDで患者を取得

POST

/api/patients

患者を作成

GET

/api/appointments

予約を一覧表示(フィルター: ?patientId=, ?doctorId=, ?status=, ?date=

GET

/api/appointments/:id

IDで予約を取得

POST

/api/appointments

予約を行う

PATCH

/api/appointments/:id/cancel

予約をキャンセルする

PATCH

/api/appointments/:id/complete

予約を完了する

プロジェクト構造

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

スクリプト

コマンド

説明

npm run dev:service

ホットリロード付きでHono REST APIを起動

npm run dev:mcp

stdioモードでMCPサーバーを起動

npm run build

TypeScriptを dist/ にコンパイル

npm run typecheck

ファイルを出力せずに型チェックを実行

ドメインモデル

エンティティ

説明

Specialty

診療科(循環器内科、皮膚科など)

Doctor

専門分野、勤務日、勤務時間、スロット期間を持つ

Patient

名前、メールアドレス、電話番号、生年月日

Patient

患者と医師を特定の日時で結びつけ、理由とステータスを持つ

TimeSlot

特定の日の医師の空き時間または予約済み時間枠

設定

REST APIはデフォルトで 3000 ポートでリッスンします。MCPサーバーは http://localhost:3000 経由でAPIと通信し、stdio を介してVS Codeに接続します。

シードデータ(専門分野、医師、患者)は起動時に data/ ディレクトリから読み込まれます。これらのJSONファイルを編集してデモデータセットをカスタマイズしてください。

コントリビューション

コントリビューションを歓迎します。リポジトリをフォークし、機能ブランチを作成してプルリクエストを送ってください。

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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
  • A
    license
    A
    quality
    D
    maintenance
    Enables HIPAA-aware healthcare workflow automation including patient intake, clinical summaries, compliance checking, and appointment scheduling via MCP tools.
    4
    99
    1
    Business Source 1.1
  • F
    license
    Not graded
    quality
    C
    maintenance
    Simulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.

View all related MCP servers

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

View all MCP Connectors

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