Swissmedic について
Swissmedic は、スイスで承認された医療用医薬品の登録情報を、承認状況、保有者、調剤区分を確認する利用者やアプリ向けに提供します。ページ分割検索、製品の用量規格の照会、ソースの日付に基づく最近の変更検索に対応しています。
主な機能
- 01承認薬の検索と絞り込み
- 02製品の承認済み用量規格の一覧
- 03日付による最近の承認変更の検索
- 04データセットと区分情報の確認
活用シーン
- 01医薬品がスイスで承認済みか確認
- 02承認保有者と調剤区分の特定
- 03指定日以降の新規承認や用量承認の追跡
MCP 対応
医薬品検索、製品情報、最近の変更、データセット情報のツールを MCP クライアントに公開します。Pipeworx ゲートウェイ経由またはローカルの stdio で接続でき、Swissmedic の公開登録データを使用します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/swissmedic/mcpclaude mcp add --transport http pipeworx-io-swissmedic https://gateway.pipeworx.io/swissmedic/mcp{"mcpServers":{"pipeworx-io-swissmedic":{"type":"http","url":"https://gateway.pipeworx.io/swissmedic/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-swissmedic":{"type":"http","url":"https://gateway.pipeworx.io/swissmedic/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-swissmedic":{"type":"http","url":"https://gateway.pipeworx.io/swissmedic/mcp"}}}{"mcpServers":{"pipeworx-io-swissmedic":{"serverUrl":"https://gateway.pipeworx.io/swissmedic/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/swissmedic
スイスメディックが認可したスイスのヒト用医薬品登録簿「Zugelassene Arzneimittel HAM」リストです。認可されたすべての製品と、それぞれの認可済み用量規格を掲載し、製造販売承認取得者、医薬品カテゴリー、調剤カテゴリー(処方区分)、承認日を確認できます。キーは不要です。
Pipeworx の一部です。AI エージェントを 1683 以上の稼働中データソースに接続する MCP ゲートウェイです。
ツール
swissmedic_search(query?, holder?, category?, dispensing_category?, limit?, offset?)— オフセットと上限による実際のページネーション、およびtotal_matches件数に対応したフリーテキスト検索/フィルター検索です。「X はスイスで認可されているか」「X のスイスでの承認取得者は誰か」「X の調剤カテゴリーは何か」といった質問に答えます。swissmedic_product(name)— 製品名で指定した製品の認可済み用量規格をすべて返します(完全一致を優先し、一致しない場合は部分文字列検索にフォールバックし、match_typeにその旨を示します)。データには適応症の記載も製品ごとの URL も含まれていないため、代わりにスイスメディックの正式なダウンロードデータを返します。swissmedic_recent_changes(since)— 指定日以降に初めて認可された製品、または新たな用量規格が認可された製品を返します。元データの日付列に基づく実際の情報です。swissmedic_dataset_info()— 正式な一括ダウンロード URL、データソースのページ、行数、フィルターで使用される医薬品カテゴリーと調剤カテゴリーの全種類の一覧を返します。
認証
キーは不要です。
データソース
- https://www.swissmedic.ch/dam/swissmedic/en/dokumente/internetlisten/zugelassene_arzneimittel_ham_ind.xlsx.download.xlsx/Zugelassene_Arzneimittel_HAM.xlsx — 認可済みヒト用医薬品の XLSX ファイルです。swissmedic.ch の「Listen und Verzeichnisse」ページからリンクされています。2026-09-25 に稼働を確認済み:HTTP 200、1,005,371 バイト、データ行 11,086 件。スイスメディックによると、リストは「毎月更新」されます。それより細かい更新頻度は公表されていません。
このパックが取得するデータは EMA と同規模で、ema-article57 と同規模ではありません。この違いがアーキテクチャを決定します
ファイルは圧縮時で約 1 MB、シート XML は約 4.8 MB です。これは、同系列の ema-medicines パックがリクエストごとに問題なくライブ解析しているのと同じ規模であり、ema-article57 パックがローカルに R2 ベースのコピーを作成することになったファイルと比べて約 9 分の 1 の大きさです(そちらはデータ行 164,314 件/シート XML 63 MB、こちらは 11,086 件/4.8 MB)。そのため、swissmedic は ema-medicines と同じ方式でライブ取得します。解析済みコピーを各アイソレートで 12 時間保持(DATASET_TTL_MS)し、さらに Cloudflare エッジキャッシュで 12 時間キャッシュします。スイスメディックの更新頻度は月次のため、これより短い間隔で更新しても、変更のないファイルを再ダウンロードするだけです。更新に失敗しても、以前のコピーが手元にあればエラーの代わりにそのコピーを提供します。
ライセンス — これはミラーではなくライブプロキシのため、別途再利用許諾は不要です
スイスメディックの一般的な法的通知は EMA のものより制限が厳しいように見えます(「コンテンツのダウンロードまたは複製には著作権者の書面による同意が必要」——これはサイト全般を対象にした記述であり、この特定の公開リストに関するものではありません)。この問題をここで解決する必要はありません。プロキシとミラーのルール(mirror-needs-grant-proxy-does-not、CLAUDE.md)に従えば、公開されているキー不要の上流サービスにキャッシュミス時ごとにライブで接続するパックは、公開者ではなくクライアントであり、明示的な許諾は不要です。許諾が必要なのはデータセットを一括コピーまたはミラーする場合だけです。このパックが行うのは前者(ema-medicines と同じく取得してキャッシュすること)であり、後者は行いません。
スキーマ — 7 行目がヘッダー、ドイツ語/フランス語のバイリンガルなソース
1〜6 行目はタイトルブロック(スイス連邦政府のエクスポートの多くと同じ形式のドイツ語/フランス語バイリンガル表記)で、7 行目がヘッダー、8 行目以降がレコードです。列は 10 個です。承認番号、剤形・含量番号、製品名、製造販売承認取得者、医薬品カテゴリー(「Heilmittelcode」— 例:「Impfstoffe」=ワクチン、「Blutprodukte」=血液製剤)、剤形ごとの調剤カテゴリー、医薬品ごとの調剤カテゴリー、初回承認日、剤形承認日、有効期間(「unbegrenzt」=無期限。このエクスポートではほとんどの行が該当します)。
2 つの日付列は Excel のシリアル値です(1899-12-30 からの日数。Excel が現在も採用している Lotus-1-2-3 互換の基準日)。出力時に ISO 形式の YYYY-MM-DD に変換されます(src/index.ts の excelSerialToIso)。既知の行で検証済みです。Vivotif の first_authorisation_date のシリアル値は 1980-12-09 に変換され、実際の承認履歴と一致します。
承認番号以外に、効能・効果のテキストも製品ごとの URL もありません。 swissmedic_product の応答は、データに含まれていない効能・効果を言い換えるのではなく、信頼できる Swissmedic のダウンロード先を示します。
dispensing_category はどちらの列にも一致します
各製品には医薬品ごとの調剤カテゴリーと、剤形・含量ごとの調剤カテゴリーがそれぞれ設定されています。通常は同じですが、必ず一致するとは限りません。swissmedic_search の dispensing_category フィルターは、どちらか一方の列が指定値と一致する行を返すため、Swissmedic が不一致をどちらのレベルで記録したかを呼び出し元が知っている必要はありません。実データで確認された値は、A、A+、B、B/D、D、E です。
swissmedic_recent_changes は、姉妹ツールの ema-article57 と異なり実際の日付を使用します
EMA の Article 57 エクスポート(ema-article57 パック)には日付列がないため、そのパックの recent_changes は独自のスナップショットの差分を比較することしかできません。このファイルには実際の日付列が 2 つあるため、swissmedic_recent_changes はスナップショット履歴を必要とせず、first_authorisation_date/dosage_authorisation_date >= since で直接フィルターします。2026-09-25 に実データで検証済みです。since: "2026-01-01" では、2026 年 8 月の剤形レベルでの再承認を含む、実際の変更が 384 件返されました。
再利用されたパーサー
src/xlsx.ts は共有依存関係ではなく、手書きの zip+XML リーダーである mcps/ema-medicines/src/xlsx.ts のコピーです。どちらのファイルも小さく、Worker パックが、どちらの側でも単一のファイル形式を対象にした正規表現ベースのスキャナー 1 つのために共有の xlsx 解析パッケージを取り込むべきではないためです。基盤となるアプローチを変更する必要が生じた場合は、目視で両方を同期してください。CELL_RE の遅延評価される [^>]*? 属性マッチは重要な役割を果たします(上のコメントを参照)。貪欲なマッチに「簡略化」してはいけません。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"swissmedic": {
"url": "https://gateway.pipeworx.io/swissmedic/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/swissmedic/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/swissmedic_search \
-H 'Content-Type: application/json' \
-d '{"query":"Vivotif","limit":5}'
最初の呼び出しにアカウントは不要です。任意のツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/swissmedic_search を使用します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を呼び出します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントは不要で、ゲートウェイとの通信も発生しません。
{
"mcpServers": {
"swissmedic": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-swissmedic"]
}
}
}
起動を確認するには、直接実行することもできます。
npx -y @pipeworx/mcp-swissmedic
stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共通メタツールは含まれません。ソースとツールは同じですが、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Swissmedic data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。