SNOMED CTをClaudeに連携する方法 — 認証不要で15ツールを使う手順
SNOMED International公式のSNOMED CT Terminologyコネクタを、サインインなしでClaudeに追加する手順です。15ツールの役割、Claude Codeの追加コマンド、用語検証の頼み方を示します。
SNOMED CTの用語をClaudeに引かせるなら、SNOMED Internationalが公開しているコネクタ「SNOMED CT Terminology」を追加します。接続先は https://snowstorm-mcp.snomedtools.org/mcp で、サインインは不要です。アカウントもAPIキーも用意せずに、コードの検索、存在確認、階層の上下移動、ECLによる値集合の展開をClaudeの会話から実行できます。
SNOMED CTは、80か国以上の電子カルテで使われている臨床用語体系です。この記事では、追加の手順、15個のツールの役割、Claude Codeでの追加コマンドと権限設定、用語の検証を任せるときの頼み方を順に扱います。
このコネクタで何ができるか
Connectors Directoryのページは、作成元をSNOMED Internationalとし、掲載日を2026年6月、サインインを不要と表示しています。機能は次の5つに整理できます。
- コードまたは名前で概念を引く
- コードが存在し、有効(active)であることを検証する
- 概念同士の包含関係(subsumption)を判定する
- 階層をたどる(祖先、子、子孫)
- ECL(Expression Constraint Language)で値集合を展開する
International版、US版、オーストラリア版など、接続先のバックエンドが持つ版を横断して使えます。接続先はSnowstormという用語サーバーで、コネクタはその前に立つステートレスなプロキシです。ページには、クエリの内容や個人データをリクエストの合間に保持しないと書かれています。
全ツールが読み取り専用です。用語データを書き換える操作はなく、Claudeが誤って変更を加える経路がありません。
追加の手順
ディレクトリに載っているので、カスタムコネクタのURL入力は要りません。サポート記事の手順に沿って追加します。
ディレクトリからSNOMED CT Terminologyを追加する流れ
- 1
コネクタ一覧を開く
チャット欄の「+」から「Connectors」の「Manage connectors」を選ぶか、「Customize > Connectors」を開きます。「+」を押すと、カテゴリ別の一覧に進みます。
- 2
SNOMED CT Terminologyを選ぶ
分類は「Health & life sciences」です。説明と機能を確認して「Connect」または「Install」を押します。
- 3
認証画面は出ない
ページの表示は「Sign-in: Not required」で、ログインのための手順は載っていません。追加が済んだら、会話で有効にします。
- 4
会話でコネクタをオンにする
チャット欄の「+」から「Connectors」を開き、SNOMED CT Terminologyをオンにします。
TeamプランとEnterpriseプランでは、OwnerまたはPrimary Ownerが「Organization settings > Connectors」で先に組織に追加します。追加しても全員が自動で使えるわけではなく、各メンバーが接続操作を行う点は他のコネクタと同じです。
ディレクトリのページには、開発元の信頼性に関する注意も載っています。コネクタは信頼できる開発元のものだけを使い、提供されるツールの内容はAnthropicが管理していない、という趣旨です。
15個のツールの役割
ツール名の一覧はディレクトリのページに、各ツールの説明はGitHubのREADMEにあります。READMEの表をもとに分類すると、次のとおりです。
| 区分 | ツール | 役割 |
|---|---|---|
| 接続の確認 | ツールlist_terminologies | 役割使える用語体系(版)と既定の版を返す |
| 接続の確認 | ツールserver_health | 役割指定した用語体系の到達性と機能を確認 |
| 接続の確認 | ツールserver_capabilities | 役割バックエンドの詳細情報 |
| 接続の確認 | ツールfhir_metadata | 役割FHIRのCapabilityStatementの要約 |
| 検索と検証 | ツールsnomed_expand | 役割FHIRの ValueSet/$expand。ECLに対応 |
| 検索と検証 | ツールsnomed_lookup | 役割FHIRの CodeSystem/$lookup |
| 検索と検証 | ツールsnomed_validate_code | 役割FHIRの CodeSystem/$validate-code |
| 検索と検証 | ツールsnomed_subsumes | 役割FHIRの CodeSystem/$subsumes |
| 階層 | ツールsnomed_get_ancestors | 役割IS-A階層をたどり祖先を返す |
| 階層 | ツールsnomed_get_children | 役割直接の子 |
| 階層 | ツールsnomed_get_descendants | 役割すべての子孫 |
| Snowstorm専用 | ツールsnowstorm_list_codesystems | 役割コードシステムの概要 |
| Snowstorm専用 | ツールsnowstorm_list_versions | 役割コードシステムの版 |
| Snowstorm専用 | ツールsnowstorm_search_concepts | 役割用語による概念検索 |
| Snowstorm専用 | ツールsnowstorm_get_concept_native | 役割シノニムを含む概念の詳細 |
READMEは、全ツールが任意の terminology 引数を受け取ると説明しています。"snomedct-us" のように版を指定でき、省略すると既定の版が使われます。多くのツールは、接続先を絞る target 引数も受け取ります。
最後の4つは、READMEの表で「Snowstorm only」とされているツールです。ディレクトリのページは15個すべてを掲載していますが、手元の接続先でどれが動くかは、先に server_capabilities を呼ばせて確かめるのが確実です。
頼み方の例
READMEには、AIアシスタントが自然な質問にツールで答える3つの例が載っています。同じ型でClaudeに頼めます。以下は例示で、Claudeの実出力ではありません。
READMEの使用例に沿った頼み方
コードの意味を引く
「SNOMED CTの概念22298006は何ですか」。READMEでは
snomed_lookupに{"code": "22298006"}を渡し、推奨語(preferred term)の "Myocardial infarction" などを受け取る流れです。包含関係を確かめる
「2型糖尿病は内分泌疾患の一種ですか」。READMEでは
snomed_subsumesにcode_aとcode_bを渡して、IS-A関係の有無を判定します。用語から概念を探す
「心房細動に関連する概念を挙げて」。READMEでは
snomed_expandにfilterとcountを渡し、概念ID、推奨語、有効かどうかを受け取ります。
存在しないコードを渡したときの挙動も、READMEに記載があります。エラーではなく、found: false と「その版・バージョンに見つからない。概念IDを確認するか、用語で検索するように」という旨のメッセージを返す構造化された否定が返ります。Claudeに「見つからない」を「存在しない」と言い切らせず、版を替えて探させる根拠になります。
用語の検証を任せるときのコツ
ここからは、コネクタの仕様を踏まえた運用の工夫です。
記憶で答えさせず、毎回ツールを通す
SNOMED CTは概念IDが数字の羅列で、言語モデルが記憶から出したコードは誤りやすい領域です。マッピング表の下書きやコードの確認では、次のように手順を固定すると、根拠がツールの結果に残ります。
次の用語をSNOMED CTのコードに対応づけてください。
- 先に list_terminologies で使える版を確認する
- 候補は snomed_expand の filter で探し、採用前に snomed_validate_code で有効性を確認する
- コードは記憶から書かない。ツールの結果にあるものだけを表にする
- 見つからない項目は空欄にして「該当なし」と書く
対象: 心房細動、2型糖尿病、急性心筋梗塞版を指定する
日本の医療情報を扱う場合、接続先が持つ版に日本語の拡張が含まれているかは、ディレクトリのページに記載がありません。READMEが挙げる例はInternational、US、UK、AUなどです。まず list_terminologies で一覧を出させ、使える版を会話に残してから作業に入ると、版違いのコードが混ざりません。
ECLで範囲を決める
値集合は snomed_expand のECLで展開します。READMEの設定例には、ECLの展開が大きくなりすぎないための保護(ガード)があります。展開の大きさを事前に確認するチェック(既定ではオフ)や、結果件数の上限(max_count_per_call の既定値は500)です。これはサーバー実装の設定項目の既定値で、公開中のエンドポイントがどの値で動いているかはページに書かれていません。大きな範囲を一度に求めるより、まず件数だけ確認させ、範囲を絞ってから展開させるほうが安全です。
Claude Codeから使う
Claude Codeでは、リモートのHTTPサーバーとして追加します。公式ドキュメントのコマンド形式は claude mcp add --transport http <name> <url> です。
claude mcp add --transport http snomed \
https://snowstorm-mcp.snomedtools.org/mcp追加後は、セッション内で /mcp を開くとサーバーの状態とツールを確認できます。ツールは mcp__<サーバー名>__<ツール名> の形で参照され、ここでは mcp__snomed__snomed_lookup のようになります。
全ツールが読み取り専用なので、毎回の承認が煩わしければ、このサーバーのツールだけを許可できます。許可ルールはツール名のグロブを、リテラルの mcp__<server>__ の接頭辞の後ろに限って受け付けます。
{
"permissions": {
"allow": ["mcp__snomed__*"]
}
}この設定は .claude/settings.json などの設定ファイルに書きます。READMEとページが読み取り専用と明記している点を根拠にした設定で、別のコネクタには同じ緩め方を広げないでください。
CLAUDE.mdには、コードの扱いについて次のような規約を置くと、コード生成の場面でも記憶の出力を防げます。
## SNOMED CT
- SNOMED CTのコードを書くときは、snomed_validate_code で有効性を確認してから使う
- 確認できなかったコードは、コメントに「未検証」と書いて残す
- 版は list_terminologies で確認し、コードと一緒に版名を記録する自前の用語サーバーにつなぐ場合
公開エンドポイントではなく、自組織のSnowstormまたはSnowstorm Liteにつなぎたい場合は、GitHubの snowstorm-mcp-server(Apache-2.0)を自分で動かします。READMEには2つの使い方が分かれて書かれています。
| 使い方 | 内容 |
|---|---|
| ホスト型のリモートコネクタ | 内容公開HTTPSのMCPエンドポイントを立て、Claudeからカスタムコネクタとしてつなぐ |
| 自前運用・ローカル | 内容自分のSnowstorm、Snowstorm Liteに対してサーバーを動かす。stdioでClaude Desktopからも使える |
Dockerでの起動は、READMEでは docker run -p 8000:8000 --memory=512m --restart=unless-stopped snowstorm-mcp-server の形です。ポート8000でStreamable HTTPモードの待ち受けを始めます。公開する場合の注意点も書かれています。
--memoryを必ず付ける。付けないとコンテナ暴走がホスト全体に及びうる- ブラウザからのリクエストは、Originが許可リストにないと403で拒否される。既定の許可は
https://claude.aiとhttps://claude.com - 公開環境では、クライアント単位の流量制限をリバースプロキシ側で行う
1つの設定でSnowstormとSnowstorm Liteを混在させることはできません。Liteは1インスタンスが1つの版を担当するため、複数の版を扱うなら版ごとにインスタンスを立てます。
Claude APIからリモートMCPとして使う場合の書き方は、Claude APIのMCPコネクタで扱っています。
他の医療・研究系コネクタとの使い分け
同じ「Health & life sciences」の関連として、ディレクトリのページはPubMed、Consensus、IHME GBD、Wiley Scholar Gateway、Clinical Trials、Elicitを挙げています。SNOMED CTコネクタは、文献や統計を引くものではなく、臨床用語のコードと階層を正確に引くためのものです。
- 論文を探して全文まで引く: ClaudeのPubMedコネクタ
- 治験の登録情報を調べる: ClinicalTrials.govコネクタ
- 病名や所見のコードを確かめる: 今回のSNOMED CT Terminology
文献から拾った病名をSNOMED CTのコードに寄せる、治験の適格基準の語をコードで整理する、といったつなぎ方もできます。
使う前に知っておくこと
- 接続先は用語サーバーであり、診断や治療の助言をするものではありません。コードの存在や関係を確かめる道具として使い、臨床判断の根拠にしないでください
- 個人を特定できる患者情報を、検索語やプロンプトに含める必要はありません。用語の検索に患者のデータは要りません
- ツールの一覧は固定ではありません。開発元が提供ツールを変える可能性があるとページ自体が注意しているため、新しいツールが増えた場合は
/mcpで現在の一覧を確かめてください - 商用の医療システムに組み込む場合は、利用条件を事前にSNOMED Internationalの案内で確かめてください。ここで示した範囲は、ディレクトリのページとREADMEに書かれた機能です