mcp-terminology について
mcp-terminologyは、医療アプリケーションやエージェント向けの臨床用語MCPサーバーです。公開FHIR R4用語サービスを通じて、主要なコード体系を検索できます。
主な機能
- 01コードと定義の検索
- 02LOINC、SNOMED CT、RxNormの検索
- 03コード体系間のコード変換
- 04標準FHIR ValueSetの展開
活用シーン
- 01臨床コードの表示名と定義の確認
- 02自然文から用語コードを検索
- 03SNOMEDコードをICD-10-CMに変換
- 04FHIR ValueSetの内容を取得
MCP 対応
用語の検索、コード体系間の変換、ValueSetの展開をMCPクライアント向けのツールとして提供します。バックエンドにはtx.fhir.org/r4を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-terminology
統合 LOINC / SNOMED CT / RxNorm / ICD-10 MCP サーバー — v1.0.0 fhir-mcp-suite モノレポの一部です。
無料の公開 FHIR R4 用語サーバー(tx.fhir.org/r4)をバックエンドとして、 4 つの主要な臨床用語体系を単一の MCP サーバーから検索できます。
ツール
| ツール | 説明 | バックエンド操作 |
|---|---|---|
lookup_code | 単一のコードを検索します。表示名、定義、表記を返します | CodeSystem/$lookup |
search_codes | LOINC、SNOMED CT、または RxNorm 内をフリーテキスト検索します | ValueSet/$expand?filter= |
translate_code | システム間でコードを変換します(SNOMED ↔ ICD-10-CM など) | ConceptMap/$translate |
expand_valueset | URL を指定して、任意の正規 FHIR ValueSet を展開します | ValueSet/$expand |
lookup_code でサポートされているシステム
| エイリアス | URI |
|---|---|
loinc | http://loinc.org |
snomed / snomed-ct | http://snomed.info/sct |
rxnorm | http://www.nlm.nih.gov/research/umls/rxnorm |
icd-10-cm | http://hl7.org/fhir/sid/icd-10-cm |
icd-10 | http://hl7.org/fhir/sid/icd-10 |
cvx | http://hl7.org/fhir/sid/cvx |
cpt | http://www.ama-assn.org/go/cpt |
ndc | http://hl7.org/fhir/sid/ndc |
ucum | http://unitsofmeasure.org |
クイックスタート
# Install into the monorepo workspace
uv sync --all-packages
# Run (stdio mode — for Claude Desktop)
uv run mcp-terminology
# Run with SSE transport (port 8001)
MCP_TRANSPORT=sse uv run mcp-terminology
Claude Desktop の設定
{
"mcpServers": {
"terminology": {
"command": "uv",
"args": [
"--directory",
"/path/to/fhir-mcp-suite",
"run",
"mcp-terminology"
],
"env": {
"TERMINOLOGY_BASE_URL": "https://tx.fhir.org/r4",
"LOG_LEVEL": "WARNING"
}
}
}
}
ツール呼び出しの例
LOINC コードを検索する
{ "system": "loinc", "code": "8302-2" }
{
"system_url": "http://loinc.org",
"system_name": "LOINC",
"code": "8302-2",
"display": "Body height",
"definition": "...",
"designations": [...],
"version": "2.78"
}
SNOMED → ICD-10-CM に変換する
{
"code": "73211009",
"source_system": "snomed",
"target_system": "icd-10-cm"
}
ValueSet を展開する
{ "url": "http://hl7.org/fhir/ValueSet/administrative-gender" }
アーキテクチャ
Claude Desktop / LangGraph agent
│ MCP stdio
mcp-terminology (this package)
│ HTTPS
tx.fhir.org/r4 (free public FHIR R4 terminology server)
└── CodeSystem/$lookup
└── ValueSet/$expand
└── ConceptMap/$translate
可観測性:すべてのツール呼び出しは LangFuse でトレースされます(入力、出力、レイテンシ、応答バイト数)。
有効にするには、LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY / LANGFUSE_HOST を設定してください。
評価結果
mcp-terminology eval — 21 golden cases
Error/security cases: 6/6 100% (network-independent)
Integration cases: run with `--tags lookup search translate expand`
CI threshold: 85% pass rate
ローカルで実行する場合:
# Error cases only (no network needed):
uv run python evals/mcp-terminology/run_eval.py --tags error
# Full suite (requires tx.fhir.org):
uv run python evals/mcp-terminology/run_eval.py
# CI gate:
uv run python evals/mcp-terminology/run_eval.py --ci --threshold 0.85
セキュリティ
- すべてのパラメーターで入力をサニタイズします(コードには正規表現の許可リスト、URL は http/https のみ、フィルターから制御文字を除去)
- クエリあたりの結果数は最大 100 件です
- PHI は使用しません — 合成または公開されたコードの検索のみを使用します
- 許可リストの全容については
validation.pyを参照してください
ライセンス
Apache-2.0 — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。