openEHR MCP Server について
openEHR REST API、特にEHRbaseに接続するMCPサーバーです。テンプレート、EHR、コンポジションの管理やAQLクエリが必要な連携向けです。
主な機能
- 01テンプレートの一覧と取得
- 02サンプルコンポジションの生成
- 03EHRの作成と取得
- 04コンポジションの作成・取得・更新・削除
- 05アドホックAQLクエリの実行
活用シーン
- 01利用可能なopenEHRテンプレートを確認
- 02テンプレートからコンポジションを作成
- 03EHRレコードとコンポジションを管理
- 04AQLでEHRbaseのデータを検索
MCP 対応
EHRbaseに接続するMCPクライアント向けに、テンプレート、EHR、コンポジション、AQLのツールと、バイタルサイン記録用プロンプトを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
openEHR MCP サーバー
openEHR REST API、特にEHRbaseの実装との連携を目的としたMCP(Model Context Protocol)サーバーです。
このサーバーを使うと、Claude DesktopなどのMCPクライアントでopenEHRテンプレートに基づくコンポジションを作成し、サーバーに送信できます。
本番環境でEHRと連携する場合は、データのプライバシーを確保できるAIモデルを使用する必要があります。
MCPの詳細については、https://modelcontextprotocol.io/introduction をご覧ください。
バージョン
現在のバージョン:0.1.0
このプロジェクトでは、セマンティックバージョニングを採用しています。バージョン管理方針の詳細については、VERSIONING.mdをご覧ください。
MCP ツール
- openehr_template_list:EHRbaseサーバーで利用可能なopenEHRテンプレートをすべて一覧表示します
- openehr_template_get:一意の識別子で指定したopenEHRテンプレートを取得します
- openehr_template_example_composition:指定したテンプレートに基づいて、openEHRコンポジションの例を生成します
- openehr_ehr_create:システムに新しいEHRを作成します
- openehr_ehr_get:IDでEHRを取得します
- openehr_ehr_list:システムで利用可能なEHRをすべて一覧表示します
- openehr_ehr_get_by_subject:対象者IDと名前空間でEHRを取得します
- openehr_composition_create:電子カルテに新しいopenEHRコンポジションを作成します
- openehr_composition_get:一意の識別子で既存のopenEHRコンポジションを取得します
- openehr_composition_update:電子カルテの既存のopenEHRコンポジションを更新します
- openehr_composition_delete:電子カルテから既存のopenEHRコンポジションを削除します
- openehr_query_adhoc:openEHRサーバーに対してアドホックなAQLクエリを実行します
MCP プロンプト
- vital_signs_capture:特定のEHR IDのバイタルサインを記録します
MCP リソース
未実装です
Dockerでクイックスタート
最も簡単に始める方法は、Docker Hubで公開されているビルド済みDockerイメージを使用することです。
1. 前提条件
EHRbaseサーバーが稼働していることを確認してください。ローカルで起動する方法については、以下をご覧ください。
2. Claude Desktopの設定
Claude Desktopの設定ファイル(claude_desktop_config.json)を編集し、「mcpServers」セクション内に「openEHR」の設定ブロックを追加します。
このファイルは通常、以下の場所にあります。
- macOSの場合:~/Library/Application Support/Claude
- Windowsの場合:%APPDATA%\Claude
{
"mcpServers": {
"openEHR": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network=host",
"-e","EHRBASE_URL=http://localhost:8080/ehrbase/rest",
"-e","EHRBASE_JSON_FORMAT=wt_flat",
"ctodeakai/openehr-mcp-server:latest"
]
}
}
}
EHRBASE_URLには、独自のEHRbaseサーバーを指定するか、提供されているdocker-composeの設定を使用できます。
JSON形式の設定
MCPサーバーは、EHRbase APIとのやり取りに複数のJSONシリアライズ形式をサポートしています。オプションのEHRBASE_JSON_FORMAT環境変数を使用して形式を設定できます。
"-e", "EHRBASE_JSON_FORMAT=wt_flat"
利用可能な形式:
- wt_flat(デフォルト):フラットなWebテンプレート形式に基づく簡易データ型(SDT)を使用します
- canonical:すべての操作で正規のopenEHR JSON形式を一貫して使用します
- wt_structured:構造化Webテンプレート形式に基づくSDTです(現在は動作しません)
MCPサーバーを使ったClaude Desktopの設定方法については、https://modelcontextprotocol.io/quickstart/user をご覧ください。
セットアップ
前提条件
このMCPサーバーを動作させるには、現在、以下が必要です。
- EHRbaseサーバー
- サンプルサーバーはこちらにあります:docker-compose.yml
- openEHRテンプレート
- サンプルテンプレートはこちらにあります:vital_signs_basic.opt
- upload_template.pyスクリプトを使ってアップロードできます
- このサーバー内のEHRと、関連付けられたEHR ID
- create_ehr.pyスクリプトを使って作成できます
ローカルEHRBaseのセットアップ
前提条件
- Dockerが正常にインストールされていること
- Python 3(このプロジェクトはPython 3.12で開発されています。それ以前のバージョンでも動作する可能性があります)
- Python仮想環境(pip、conda、またはuv)
- Python環境に必要な依存関係をインストールします。
pip install -r requirements.txt
EHRbase サーバーの実行
-
docker-compose ディレクトリに移動します:
cd docker-compose -
EHRbase サーバーをデタッチモードで起動します:
docker compose up -d -
ログを確認して、サーバーが正常に実行されていることを確認します:
docker compose logs -f -
EHRbase サーバーは http://localhost:8080/ehrbase/ で利用できます。
-
EHRBase API のドキュメントは次の場所にあります:http://localhost:8080/ehrbase/swagger-ui/index.html
バイタルサインテンプレートのアップロード
EHRbase サーバーと Python 環境をセットアップした後、バイタルサインテンプレートをアップロードできます:
python scripts/upload_template.py
カスタムテンプレートまたは EHRbase URL を指定することもできます:
python scripts/upload_template.py --template path/to/template.opt --ehrbase-url http://custom-url:8080/ehrbase/rest
テンプレートが EHRbase サーバーに正常にアップロードされたことを確認する出力が表示されます。
EHR の作成
テンプレートのアップロード後、コンポジションを保存するための電子医療記録(EHR)を作成する必要があります:
python scripts/create_ehr.py
これにより、ランダムに生成されたサブジェクト ID を持つ EHR が作成されます。カスタムのサブジェクト ID を指定することもできます:
python scripts/create_ehr.py --subject-id "patient_12345"
スクリプトは EHR ID を出力します。この ID は、コンポジションの作成や MCP サーバーの使用時に必要になります。
統合テストの実行
テストを実行するには、まずテスト依存関係をインストールする必要があります:
pip install -r requirements-test.txt
テスト依存関係をインストールし、テンプレートをアップロードした後、次のコマンドでテストを実行できます:
python -m pytest tests/test_*.py -v
これにより、tests ディレクトリ内のすべてのテストが実行されます。
Docker で openEHR MCP サーバーを実行する
Docker イメージのビルド
プロジェクトのルートから Docker イメージをビルドします:
docker build -t openehr-mcp-server .
Docker コンテナの実行
docker run -i --rm --network=host openehr-mcp-server
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。