mcpField
M
Mondo

Mondo

リモート
pipeworx.ioヘルスケア01 日前に更新
リポジトリ公式サイト

Mondo について

Mondoは、自由記述の疾患・病状名をMondo Disease Ontologyの用語に解決するサービスで、研究者や臨床データのワークフロー向けです。複数件を処理し、曖昧な一致を完全一致と混同せずに品質を示し、他オントロジーへの参照も返します。

主な機能

  1. 01病状テキストをまとめて解決
  2. 02完全一致・階層・曖昧・未一致を表示
  3. 03他オントロジーへの参照を返却
  4. 04子孫用語IDを任意で取得

活用シーン

  1. 01臨床試験登録の病状欄を標準化する
  2. 02医薬品ラベルの適応症をオントロジー用語に対応付ける
  3. 03疾患サブタイプを含む検索条件を作る

MCP 対応

Pipeworx経由または単独のローカルstdioサーバーとして、病状の解決機能をMCPツールで提供します。Pipeworxのエンドポイントには共有ゲートウェイメタツールも含まれます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/mondo/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/mondo

自由記述の状態・疾患文字列(臨床試験レジストリの「conditions」フィールド、医薬品ラベルの適応症表記、呼び出し元が手入力したあらゆる内容)を Mondo Disease Ontology(MONDO)に対応付け、信頼できる一致品質ラベルと、対応する用語のオントロジー横断 xref を返します。

Pipeworx の一部です。AI エージェントを1683以上の稼働中データソースに接続する MCP ゲートウェイです。

ツール

  • mondo_resolve_condition(conditions, expand?) — 自由記述の状態文字列を1~25件まとめて解決します。それぞれについて、元の表記をそのまま返し、最適な MONDO ID とラベル、および match_quality を返します。
    • exact-label — Mondo の優先ラベルと完全に一致します(大文字・小文字、句読点の違いは無視)。
    • exact-synonym — 用語に登録された完全一致の同義語のいずれかと一致します。
    • broader / narrower — 文字列は、最上位の全文検索結果そのものではなく、Mondo の階層をたどって到達した親用語または子用語の名前と完全に一致します。これには、レジストリが疾患名の先頭に付ける病期・状態の修飾語(「Stage IV Melanoma」、「Metastatic Breast Cancer」、「Recurrent X」など)を固定プレフィックスとして取り除く処理も含まれます。取り除いた後の残りがラベルまたは同義語と完全に一致する場合、レスポンスは broader になります(一致した疾患のサブタイプまたは病期を入力が指しています)。取り除いた内容は注記に記載されます。
    • fuzzy — EBI OLS4 の全文検索で最も近い一致ですが、完全な用語であることは確認されていません。完全一致として扱われることはありません。
    • no-match — 妥当な候補が見つかりませんでした。レスポンスには、試した検索クエリ(緩和したバリエーションを含む。括弧内の語句を除いたもの、順序を入れ替えていない「Specific, General」形式の MeSH 表記、「Stage IV」など末尾の修飾語を段階的に切り詰めたもの)が記載され、条件を緩和して候補が見つかった場合は最も近い候補も列挙されます。空の結果だけを返すことはありません(docs/silent-zero-policy.md)。

no-match 以外のすべての結果には、解決された ID の xrefs(OMIM、Orphanet、DOID、UMLS、MeSH)も含まれます。これは MyDisease.info のレコードから取得されます。expand: true を渡すと、descendant_mondo_ids(解決された用語の下位にあるすべてのサブタイプ。上限500件)も取得できます。サブタイプを含めたレジストリフィルター(例:「非小細胞肺がんのあらゆるサブタイプ」)を作成する際に利用できます。

match_quality ラベルがこのツールの価値です。 あいまい一致や階層的な一致が「exact」に格上げされることはありません。臨床安全性の確認やレジストリフィルターの作成を行う呼び出し元は、その違いを把握する必要があります。

2つ目のツールはありません。用語の詳細、階層のたどり(祖先・子)、Mondo の生検索は、すでに ebi-ols パックに含まれています。このパックは解決処理と一致品質のレイヤーだけを追加するため、既存の機能と重複しません。

認証

API キーは不要です。どちらの上流 API も公開されており、認証は必要ありません。

データソース

  • https://www.ebi.ac.uk/ols4/api/search(EBI Ontology Lookup Service、 ontology=mondo に限定) — Mondo の用語を全文検索し、主要ラベルと完全一致/関連する同義語を返します。同じ上流サービスを ebi-ols パックがプロキシしますが、このパックを経由せず、ここでは直接呼び出します。
  • https://mydisease.info/v1/disease/{id}(MyDisease.info、BioThings) — 用語ごとの Mondo レコードです。オントロジー間のクロスリファレンス(mondo.xrefs.omim / .omimps、.orphanet、.doid、.umls、.mesh)と、mondo.ancestors / mondo.descendants の推移的な全 ID リストを提供します。これらは、上位/下位階層の確認と expand フラグの両方に使用されます。同じ上流サービスを mydisease パックがプロキシしますが、このパックを経由せず、ここでは直接呼び出します。

次の担当者向けの照合に関する注意事項:

  • 正規化では大文字と小文字を区別せず、英数字以外の文字(ハイフン、カンマ、句読点)が連続する場合はすべて単一のスペースとして扱います。そのため、 「Non-small Cell Lung Cancer」と「non small cell lung cancer」は同一と判定されます。ステミングや、OLS4 がすでに返す exact_synonyms を超える同義語展開は行いません。そのリストにない文字列は、人が言い換えとみなす場合でも、完全一致として扱われません。
  • MeSH の逆順表記「Specific, General」(「Carcinoma, Non-Small-Cell Lung」)は、臨床試験レジストリでよく見られる病態名の形式です。そのため、あいまい検索に移る前に、順序を戻した表記(「Non-Small-Cell Lung Carcinoma」)を生成し、元の文字列とともに完全一致を確認します。既知の形式を固定ルールで書き換える場合は、推測ではなく完全一致として扱います。
  • 先頭修飾語の除去(src/index.ts の STAGE_QUALIFIER_RE / STATUS_QUALIFIER_RE)には、順序を固定した小さなリストを使用します。ステージ表記(「Stage IV」、「Stage IIIA」)または metastatic / recurrent / advanced / refractory / unresectable / relapsed / relapsing / progressive / localized / localised を、末尾語の緩和ルールより先に確認します。これは、元の文字列で結果が 0 件の場合(「Stage IV Melanoma」)にも、完全一致ではない結果がいくつか得られる場合(「Metastatic Breast Cancer」では「breast cancer」が全文検索の上位結果として表示されますが、完全一致ではありません)にも適用されるためです。先頭一致による決定的な処理のみを最大 3 回行うため、「Advanced Metastatic Melanoma」のように修飾語が重なっている場合は、両方を除去します。
  • 実環境(2026-09)でのテストでは、OLS4 の exact=true 検索パラメーターによって、結果が完全一致に確実に限定されることはありませんでした。そのため、クライアント側でクエリ文字列を正規化し、各候補のラベルおよび完全一致の同義語と比較して、完全一致かどうかを判定します。
  • MyDisease レコードでは、omim クロスリファレンスが omim ではなく omimps(OMIM 表現型シリーズ)として現れる場合があります。どちらも返される omim 配列に統合されます。
  • OLS4/MyDisease へのすべてのフェッチには fetchWithTimeout によるタイムアウトが設定されています。MyDisease による補足情報の取得に失敗した場合、解決処理全体を失敗させず、クロスリファレンスを空にします(OLS4 による照合結果はそのまま有効です)。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します:

{
  "mcpServers": {
    "mondo": {
      "url": "https://gateway.pipeworx.io/mondo/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/mondo/mcp の tools/list は、上の表にあるツールに加えて、Pipeworx の共有メタツール(ask_pipeworx、 discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール群)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールに加えて、共有ツールが約 30 個表示されます。接続の initialize 応答に正確な対象範囲が記載されており、その日の状況を確認する際の正式な情報源となります。

これは意図的な設計であり、偶然に多重化されているわけではありません。メタツールを使うと、このパックでは対応していない質問にも、カタログ全体を横断する ask_pipeworx を介して回答できます。そのため、MCP サーバーをもう 1 つ追加する必要はありません。現在、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度接続してください。

または、フル版の Pipeworx ゲートウェイに接続して、このパックだけでなく、すべてのパックのツールを直接一覧表示できます。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL からも同じゲートウェイと同じ 1683 以上のデータソースにアクセスできます。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。

MCP クライアントをお持ちでない場合:HTTP で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/mondo_resolve_condition \
  -H 'Content-Type: application/json' \
  -d '{"conditions":["Carcinoma, Non-Small-Cell Lung","NSCLC Stage IV","type 2 diabetes mellitus","Carcinoid Tumors","Ehlers-Danlos syndrome"]}'

最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/mondo_resolve_condition を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も不要です。

{
  "mcpServers": {
    "mondo": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-mondo"]
    }
  }
}

起動を確認するには、直接実行することもできます。

npx -y @pipeworx/mcp-mondo

stdin/stdout 経由で MCP を使用し、このパックのツールのみに対して initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールはありません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx を使用する

ツールを直接呼び出す代わりに、自然な英語で質問できます。上記のパックエンドポイントでも、フルゲートウェイでも利用できます。

ask_pipeworx({ question: "your question about Mondo data" })

ゲートウェイが適切なツールを選び、引数を自動的に設定します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

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

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