mcpField
O
omophub-mcp

omophub-mcp

ローカル
github.com/OMOPHubヘルスケア64 日前に更新

omophub-mcp について

omophub-mcpは、臨床研究者や医療データチーム向けのMCPサーバーです。OMOP医学用語の検索、用語間マッピング、階層の探索、FHIRからOMOPへの解決に対応します。

主な機能

  1. 01語彙横断の概念検索
  2. 02語彙間の概念マッピング
  3. 03概念階層の探索
  4. 04セマンティック検索と類似概念検索
  5. 05FHIRコードのOMOPへの解決

活用シーン

  1. 01臨床用語のOMOP ID検索
  2. 02コードの検証とマッピング確認
  3. 03表現型の概念セット作成
  4. 04FHIR値のOMOPへの解決

MCP 対応

OMOP語彙の検索、参照、マッピング、階層探索、FHIR解決のツールに加え、語彙リソースとガイド用プロンプトをMCPクライアントに提供します。stdioとHTTP接続に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"omophub-omophub": {
"command": "npx",
"args": [
"-y",
"@omophub/omophub-mcp"
],
"env": {
"OMOPHUB_API_KEY": "<OMOPHUB_API_KEY>"
}
}
}
}
起動コマンドnpx -y @omophub/omophub-mcp
設定が必要な環境変数
OMOPHUB_API_KEYシークレットYour OMOPHub API key. Get one at https://omophub.com/dashboard/api-keys

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

パッケージ
npm@omophub/omophub-mcp1.1.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pagenumberいいえページ番号(1 始まり、デフォルトは 1)
querystringはい検索する医学用語または概念名
page_sizenumberいいえ返す結果の数(1~50、デフォルト:10)
domain_idsstringいいえ絞り込みに使用する、カンマ区切りのドメイン ID。例:'Condition'、'Drug'、'Measurement'、'Procedure'。すべてのドメインを検索する場合は空欄にします。
vocabulary_idsstringいいえ絞り込みに使用する、カンマ区切りの語彙 ID。例:'SNOMED'、'ICD10CM'、'RxNorm'、'LOINC'。すべての語彙を検索する場合は空欄にします。
standard_conceptenumいいえ標準概念のステータスで絞り込みます。'S' は標準、'C' は分類を示します。省略するとすべてを検索します。S | C

詳細

OMOPHub MCP Server

AI エージェント向けの医療用語集。
1,100 万件以上の OMOP コンセプトを検索、マッピング、閲覧できます。SNOMED CT、ICD-10、RxNorm、LOINC などに対応しています。Claude、Cursor、VS Code、その他の MCP 対応クライアントから直接利用できます。

npm のバージョン Codecov npm のダウンロード数 ライセンス TypeScript MCP 互換

クイックスタート · ツール · 使用例 · ドキュメント · ウェブサイト


OMOPHub MCP を選ぶ理由

現在、医療用語集を扱うには、数ギガバイトの CSV ファイルをダウンロードし、ローカルデータベースに読み込んで、必要な情報を見つけるための SQL を毎回書かなければなりません。

OMOPHub MCP Server を使えば、AI アシスタントから OHDSI ATHENA の用語集全体にすぐにアクセスできます。データベースのセットアップも、CSV の操作も、作業の切り替えも不要です。質問するだけです。

You: "Map ICD-10 code E11.9 to SNOMED"

Claude: Found it - E11.9 (Type 2 diabetes mellitus without complications)
        maps to SNOMED concept 201826 (Type 2 diabetes mellitus)
        via standard 'Maps to' relationship.

使用例:

  • コンセプト検索 - 臨床用語に対応する OMOP コンセプト ID を数秒で検索します
  • 用語集間のマッピング - ICD-10、SNOMED、RxNorm、LOINC、その他 120 以上の用語集間でマッピングします
  • 階層の閲覧 - 表現型の定義に必要な上位概念と下位概念を調べます
  • コンセプトセットの作成 - コホート定義用のコンセプトセット一式を AI エージェントに作成させます
  • コードの検証 - 医療コードを検証し、標準マッピングを確認します

クイックスタート

1. API キーを取得する

omophub.com で登録し、ダッシュボードで API キーを作成します。

2. AI クライアントに追加する
Claude Desktop

Claude Desktop の設定 >「Developer」タブ >「Edit Config」を開きます。claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "omophub": {
      "command": "npx",
      "args": ["-y", "@omophub/omophub-mcp"],
      "env": {
        "OMOPHUB_API_KEY": "oh_your_key_here"
      }
    }
  }
}
Claude Code
claude mcp add omophub -- npx -y @omophub/omophub-mcp
# Then set OMOPHUB_API_KEY in your environment
Cursor

コマンドパレットを開き、「Cursor Settings」>「MCP」>「Add new global MCP server」を選択します。.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "omophub": {
      "command": "npx",
      "args": ["-y", "@omophub/omophub-mcp"],
      "env": {
        "OMOPHUB_API_KEY": "oh_your_key_here"
      }
    }
  }
}
VS Code

.vscode/mcp.json に追加します:

{
  "servers": {
    "omophub": {
      "command": "npx",
      "args": ["-y", "@omophub/omophub-mcp"],
      "env": {
        "OMOPHUB_API_KEY": "oh_your_key_here"
      }
    }
  }
}
Streamable HTTP(リモート/ホスト型)

クライアントが URL 経由で接続できる HTTP サービスとして、MCP サーバーを実行します:

# Start HTTP server on port 3100
npx -y @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key_here

# MCP endpoint: http://localhost:3100/mcp
# Health check:  http://localhost:3100/health

MCP クライアントを / または /mcp に接続します。複数の AI エージェントが 1 つのサーバーインスタンスを共有する集中型デプロイに便利です。

ホスト型(mcp.omophub.com)

OMOPHub がホストする MCP サーバーに直接接続します。インストールは不要です。各クライアントは独自の API キーを Authorization ヘッダーで認証します:

Claude Code:

claude mcp add omophub --transport http \
  -H "Authorization: Bearer oh_your_key_here" \
  https://mcp.omophub.com

VS Code(.vscode/mcp.json):

{
  "servers": {
    "omophub": {
      "type": "http",
      "url": "https://mcp.omophub.com",
      "headers": { "Authorization": "Bearer oh_your_key_here" }
    }
  }
}

Cursor/Windsurf:

{
  "mcpServers": {
    "omophub": {
      "url": "https://mcp.omophub.com",
      "headers": { "Authorization": "Bearer oh_your_key_here" }
    }
  }
}

注: Claude Desktop のカスタムコネクター UI は OAuth のみをサポートしており、カスタムヘッダーを送信できません。代わりに npx setup を使用してください。

Docker
# HTTP mode (default in Docker) - serves MCP on port 3100
docker run -e OMOPHUB_API_KEY=oh_your_key_here -p 3100:3100 omophub/omophub-mcp

# Stdio mode (for piping)
docker run -i -e OMOPHUB_API_KEY=oh_your_key_here omophub/omophub-mcp --transport=stdio
3. 質問を始める

「2 型糖尿病の OMOP コンセプト ID は何ですか?」

「ICD-10 コード E11.9 を SNOMED にマッピングしてください」

「SNOMED で Diabetes mellitus のすべての子孫を表示してください」


利用可能なツール

ツール説明
search_conceptsすべての語彙を対象に、名前または臨床用語から医学的コンセプトを検索します
get_conceptconcept_id を指定して、特定の OMOP コンセプトの詳細情報を取得します
get_concept_by_code語彙固有のコード(例:ICD-10 の E11.9)を使ってコンセプトを検索します
map_conceptコンセプトを他の語彙の同等コンセプトにマッピングします(ページネーション対応 — 下記の注を参照)
get_hierarchyコンセプト階層をたどり、祖先、子孫、またはその両方を取得します
list_vocabularies利用可能な医学的語彙を統計情報とともに一覧表示します
semantic_searchニューラル埋め込みを使用して自然言語で検索します(臨床的な意味を理解します)
find_similar_concepts参照コンセプト、名前、または説明に類似したコンセプトを検索します
explore_concept1 回の呼び出しで、コンセプトの詳細、階層、語彙間のマッピングを取得します
fhir_resolveFHIR のコード化された値(HL7 FHIR-to-OMOP IG ConceptMaps を介した管理コードを含む)を、対応する OMOP 標準コンセプトおよび CDM の対象テーブルに解決します
fhir_resolve_codeable_conceptFHIR CodeableConcept を解決します。userSelected を尊重し、OHDSI の語彙優先設定に基づいて最適な候補を選びます
リソース
URI説明
omophub://vocabularies統計情報を含む語彙カタログ全体
omophub://vocabularies/{vocabulary_id}特定の語彙の詳細
プロンプト
プロンプト説明
phenotype-concept-set臨床表現型のコンセプトセットを作成するためのガイド付きワークフロー
code-lookupマッピングと階層を含めて、医学的コードを検索・検証します

プロンプトの例

概念を検索 → search_concepts

「RxNormでmetforminを検索してください」

語彙間のマッピング → map_concept

「SNOMEDの概念201826があります。ICD-10コードは何ですか?」

概念セットを作成 → search_concepts → get_hierarchy → map_concept

「すべての子孫概念を含む、2型糖尿病の概念セットの作成を手伝ってください」

ここでは漏れがないことが重要です。 map_concept は一度に1ページを返します (page_size は1~200、デフォルトは100)。広く使われている医薬品の成分には、 1,000を超えるNDCマッピングがある場合があるため、1回の呼び出しで得られるのはサンプルであり、完全な結果ではありません。 レスポンスの has_more を確認し、false になるまで page の値を増やしてください。 そうしないと、コードがひそかに欠落しているのに、概念セットが完全に見えてしまいます。

これには find_similar_concepts ではなく、探索に使用してください。埋め込みの類似度で順位付けされるため、 セットのメンバーシップという概念がなく、page_size をどれだけ大きくしても網羅的な結果にはなりません。

コードを検証 → get_concept_by_code → map_concept

「ICD-10コードE11.9は有効ですか?SNOMEDでは何にマッピングされますか?」

セマンティック検索 → semantic_search

「『heart attack』に関連する概念を見つけてください」

概念を調査 → explore_concept

「SNOMEDの概念201826について、すべて教えてください」

FHIRからOMOPへの解決 → fhir_resolve

「FHIRのSNOMEDコード44054006をOMOPに解決してください。どのテーブルに入りますか?」

CodeableConcept → fhir_resolve_codeable_concept

「このCodeableConceptにはSNOMED 44054006とICD-10 E11.9の両方があります。OMOPにはどちらを使うべきですか?」

類似概念を検索 → find_similar_concepts

「『Type 2 diabetes mellitus』に類似する概念は何ですか?」


設定

環境変数
変数必須説明
OMOPHUB_API_KEY✅OMOPHub APIキー
OMOPHUB_BASE_URLカスタムAPIベースURL(デフォルト:https://api.omophub.com/v1)
OMOPHUB_LOG_LEVELdebug · info · warn · error(デフォルト:info)
OMOPHUB_ANALYTICS_OPTOUTtrue に設定すると、分析用ヘッダーを無効にします
OMOPHUB_USER_AGENT_SUFFIXomophub-mcp/<version> に追加する任意のデプロイ識別子(デフォルト:なし)
MCP_TRANSPORTstdio(デフォルト)または http
MCP_PORTHTTPサーバーのポート(デフォルト:3100、http トランスポートでのみ使用)
HEALTH_PORTstdioモードのスタンドアロンヘルスエンドポイント用ポート(デフォルト:無効)
CLI引数
# Stdio mode (default)
npx @omophub/omophub-mcp --api-key=oh_your_key --base-url=https://custom.api.com/v1

# HTTP mode
npx @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key

# Stdio mode with standalone health endpoint
npx @omophub/omophub-mcp --api-key=oh_your_key --health-port=8080
ヘルスエンドポイント(Docker / Kubernetes)

HTTPモードでは、MCPエンドポイントと同じポートの /health でヘルスエンドポイントを利用できます。

npx @omophub/omophub-mcp --transport=http --port=3100 --api-key=oh_your_key
curl http://localhost:3100/health
# → {"status":"ok","version":"1.5.0","uptime_seconds":42}

stdioモードでは、スタンドアロンのヘルスエンドポイントに --health-port を使用してください。

HEALTH_PORT=8080 OMOPHUB_API_KEY=oh_your_key npx @omophub/omophub-mcp
curl http://localhost:8080/health

Dockerイメージは、ヘルスチェックが組み込まれたポート3100のHTTPモードをデフォルトで使用します。


開発

git clone https://github.com/OMOPHub/omophub-mcp.git
cd omophub-mcp
npm install
npm run build
npm test

ローカルで実行する場合:

OMOPHUB_API_KEY=oh_your_key npx tsx src/index.ts

トラブルシューティング

エラー解決方法
API key required環境またはMCP設定で OMOPHUB_API_KEY を設定してください
Authentication failedAPIキーが無効か、有効期限切れの可能性があります。新しいキーを生成してください
Rate limit exceeded自動再試行が組み込まれています。上限を引き上げるには、プランをアップグレードしてください
ツールが表示されないAIクライアントを再起動し、npx @omophub/omophub-mcp がエラーなく実行されることを確認して、設定パスを確認してください

リンク


ライセンス

MIT - LICENSEを参照

コメント

MCP は初めてですか?

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

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