mcpField
L
Last EHR — Medplum

Last EHR — Medplum

ローカル
lastehr.comヘルスケア42 日前に更新

Last EHR — Medplum について

Last EHR — Medplumは、MedplumまたはローカルHAPI環境を使うFHIRカルテ読み取りツールをMCPクライアントに提供し、既定では読み取り専用です。書き込み提案は任意で有効化でき、各操作に人の承認が必要な医療データ業務に向いています。

主な機能

  1. 01患者検索とカルテ概要の表示
  2. 02患者単位の23種類のカルテセクションを読取
  3. 03文書内のテキストを読取
  4. 04既定で読み取り専用、取得範囲の制限も表示
  5. 05書き込み提案ごとに人の承認を要求
  6. 06バックエンド設定と接続の確認

活用シーン

  1. 01患者を検索してカルテを確認
  2. 02条件を指定してカルテセクションを読む
  3. 03文書からテキストを取得
  4. 04人の承認後に観察記録やタスクを登録

MCP 対応

FHIRの患者検索、カルテ読み取り、文書読み取りツールを提供するMCPサーバーです。LASTEHR_MCP_WRITES=proposalを設定すると、MCP elicitationによる人の承認を必須とする書き込み提案が有効になり、承認を表示できないクライアントには書き込みツールを公開しません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cbetz-last-ehr": {
"command": "npx",
"args": [
"-y",
"@lastehr/mcp"
],
"env": {
"MEDPLUM_ACCESS_TOKEN": "<MEDPLUM_ACCESS_TOKEN>",
"MEDPLUM_CLIENT_ID": "<MEDPLUM_CLIENT_ID>",
"MEDPLUM_CLIENT_SECRET": "<MEDPLUM_CLIENT_SECRET>",
"MEDPLUM_BASE_URL": "<MEDPLUM_BASE_URL>"
}
}
}
}
起動コマンドnpx -y @lastehr/mcp
設定が必要な環境変数
MEDPLUM_ACCESS_TOKENシークレットFHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).
MEDPLUM_CLIENT_IDFHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).
MEDPLUM_CLIENT_SECRETシークレットFHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).
MEDPLUM_BASE_URLFHIR chart tools over Medplum or a local HAPI stack: read-only by default, with an opt-in elicitation-gated write profile (human-approved per action).

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

パッケージ
npm@lastehr/mcp0.4.1

ツール

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

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

詳細

@lastehr/mcp

Medplum プロジェクト、または Last EHR リポジトリのローカル HAPI 評価スタック(FHIR_BACKEND=hapi、合成データのみ)を利用する、MCP クライアント向けの FHIR カルテツールです。

デフォルトでは読み取り専用です。読み取り操作は Last EHR のウェブエージェントが使用するものと同じで、患者の検索、カルテ全体の表示、フィルターを使った患者単位の23種類のカルテセクションの読み取り、文書のテキストの読み取りができます。オプトイン設定の LASTEHR_MCP_WRITES=proposal を有効にすると、エリシテーションを通じて人間がアクションごとに承認する書き込み提案が追加されます。明示的な承認なしに保存されることはなく、承認を表示できないクライアントには書き込みツールは表示されません。

レジストリのメタデータは server.json にあり、検証済みの各 npm リリースとともに公開されています。

インストール

npx -y @lastehr/mcp init

このコマンドは、移植可能な MCP 設定を出力します。Claude Code を使う場合は、代わりに登録コマンドを出力してください。

npx -y @lastehr/mcp init --client claude-code

stdio サーバーを起動するには、次を実行します。

npx -y @lastehr/mcp

バックエンドを設定せずに、インストール済みパッケージのバージョンを確認します。

npx -y @lastehr/mcp --version

設定

サーバーを起動する前に、次のいずれかの認証方法を設定します。

MEDPLUM_ACCESS_TOKEN=...

または:

MEDPLUM_CLIENT_ID=...
MEDPLUM_CLIENT_SECRET=...

セルフホスト型の Medplum デプロイを使用する場合は、MEDPLUM_BASE_URL を設定します。リポジトリのローカルな認証不要の HAPI スタックを使用する場合は、代わりに FHIR_BACKEND=hapi と FHIR_BASE_URL(または HAPI_BASE_URL)を設定します。ローカル環境で合成データのみを使用します。MCP を起動せずに設定を検証するには、npx -y @lastehr/mcp doctor を実行します。

0.4.0 では、stdio バックエンドに対して doctor --connect で FHIR R4 メタデータと件数のみを返す Patient 検索も確認できます。カルテへの書き込みは行わず、患者データや件数も出力しません。個々のカルテへのアクセス、その他のリソース権限、書き込み権限、または MCP クライアントによる承認への対応は検証されません。HTTP モードでは引き続き設定のみを確認します。--connect による確認は明示的に失敗し、設定済みの URL を検証済みの OAuth セッションとして扱うことはありません。

ソースチェックアウトは npm より新しい場合があります。インストール済みのバージョンは --version で確認してください。リポジトリのリリースプロセスでは、公開前にクリーンなディレクトリでパッケージ化した成果物をテストします。

安全境界

デフォルトでは、このパッケージは search_patients、show_patient_info、 read_chart_section、read_document を公開し、すべてに MCP の readOnlyHint が設定されています。

これらの読み取り処理はウェブエージェントと同じ実装を共有しています。これは意図的なものです。 それぞれの誠実性を担保する仕組みは、稼働中の FHIR サーバーで実際に見つかった誤検知をもとに構築されており、 別の実装では同じ仕組みを一から作り直す必要があるためです。応答では、確認できなかった内容が示されます。 結果が空でも、存在しないことの証明にはなりません。

フィールド意味
truncatedサーバーから返されたウィンドウが上限まで埋まっていたため、読み取った範囲より古い記録が存在する可能性があります。行数ではなく、ウィンドウで判定されます。
codeFilterUnmatchedセクションには記録がありますが、コードフィルターに指定したコードを持つ記録はありません。テキストのみの CodeableConcept はコード検索に一致しません。
includeUnsupportedバックエンドが参照の検索を拒否しました。参照が存在しないという意味ではありません。
unreadable(ドキュメント)ドキュメントは存在しますが、その内容は読み取られていません。スキャン画像、または本文がインラインではなくポインターとして保存されている場合です。

カルテのフリーテキストは <chart_text> タグで囲まれて届きます。その内容はデータであり、 指示ではありません。read_document はインラインのテキスト添付ファイルをデコードしますが、 Attachment.url は参照しないため、FHIR サーバーが指定したアドレスへのリクエストは行いません。

LASTEHR_MCP_WRITES=proposal を設定すると、さらに add_note、 record_observation、record_superseding_observation、create_task を提案として提供します。正確なフィールドは MCP のエリシテーションを通じて人間に提示され、 承認されない限り何も保存されません。承認された書き込みにはすべて https://lastehr.com/mcp|approved-proposal のタグが付与され、 meta.security に標準の AIAST セキュリティラベル(「Artificial Intelligence asserted」)が含まれます。また、LASTEHR_WRITE_PROVENANCE=true を設定すると、 エージェントを作成者、レビュー担当者を検証者として記載した Provenance リソースも出力されます。 読み取りアクセスでも PHI が返される可能性があります。最小権限の ID を使用し、 MCP クライアントのデータ取り扱いとモデルプロバイダーとの契約を確認してください。 このパッケージを認可レイヤーとして扱わないでください。

セットアップとサポートの範囲については、https://www.lastehr.com/docs/mcp をご覧ください。

コメント

MCP は初めてですか?

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

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