mcpField
O
openEHR MCP Server

openEHR MCP Server

ローカル
github.com/deak-aiヘルスケア1873 週間前に更新

openEHR MCP Server について

openEHR REST API、特にEHRbaseに接続するMCPサーバーです。テンプレート、EHR、コンポジションの管理やAQLクエリが必要な連携向けです。

主な機能

  1. 01テンプレートの一覧と取得
  2. 02サンプルコンポジションの生成
  3. 03EHRの作成と取得
  4. 04コンポジションの作成・取得・更新・削除
  5. 05アドホックAQLクエリの実行

活用シーン

  1. 01利用可能なopenEHRテンプレートを確認
  2. 02テンプレートからコンポジションを作成
  3. 03EHRレコードとコンポジションを管理
  4. 04AQLでEHRbaseのデータを検索

MCP 対応

EHRbaseに接続するMCPクライアント向けに、テンプレート、EHR、コンポジション、AQLのツールと、バイタルサイン記録用プロンプトを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"openehr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
起動コマンドdocker run -i --rm compose

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocicompose

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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サーバー
  • openEHRテンプレート
  • このサーバー内のEHRと、関連付けられたEHR ID

ローカルEHRBaseのセットアップ

前提条件
  • Dockerが正常にインストールされていること
  • Python 3(このプロジェクトはPython 3.12で開発されています。それ以前のバージョンでも動作する可能性があります)
  • Python仮想環境(pip、conda、またはuv)
  • Python環境に必要な依存関係をインストールします。
    pip install -r requirements.txt
    
EHRbase サーバーの実行
  1. docker-compose ディレクトリに移動します:

    cd docker-compose
    
  2. EHRbase サーバーをデタッチモードで起動します:

    docker compose up -d
    
  3. ログを確認して、サーバーが正常に実行されていることを確認します:

    docker compose logs -f
    
  4. EHRbase サーバーは http://localhost:8080/ehrbase/ で利用できます。

  5. 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。