Openfda について
Openfdaは、FDAの医薬品と関連する安全性データを検索するMCPサーバーです。FAERS報告、承認、ラベル、リコール、供給不足、警告書を扱い、ゲートウェイ接続とローカルstdio接続に対応しています。
主な機能
- 01FAERS有害事象報告の検索
- 02反応の集計と安全性シグナル分析
- 03医薬品の承認とラベルの照会
- 04リコール、供給不足、警告書の検索
活用シーン
- 01医薬品の有害事象報告の確認
- 02反応数と安全性シグナルの比較
- 03承認履歴やラベル内容の確認
- 04医薬品のリコールや供給不足の調査
MCP 対応
Pipeworxのゲートウェイエンドポイントまたはローカルstdioサーバーを通じて、OpenFDAのデータツールをMCPクライアントに公開します。ゲートウェイ接続にはPipeworx共通メタツールも含まれます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/openfda/mcpclaude mcp add --transport http pipeworx-io-openfda https://gateway.pipeworx.io/openfda/mcp{"mcpServers":{"pipeworx-io-openfda":{"type":"http","url":"https://gateway.pipeworx.io/openfda/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-openfda":{"type":"http","url":"https://gateway.pipeworx.io/openfda/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-openfda":{"type":"http","url":"https://gateway.pipeworx.io/openfda/mcp"}}}{"mcpServers":{"pipeworx-io-openfda":{"serverUrl":"https://gateway.pipeworx.io/openfda/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
OpenFDA — FDA の医薬品、医療機器、食品データ
米国食品医薬品局(FDA)のオープンデータプラットフォームです。このパックでは医薬品関連のデータを扱います。副作用報告と安全性シグナルのツール(FAERS 検索、イベント件数、非比例分析/ROR-PRR、反応プロファイル、傾向)、医薬品および新規医薬品の承認(Drugs@FDA、企業別申請履歴)、医薬品の添付文書、医薬品および食品のリコール、医薬品不足と不足状況の変化、完全回答書、警告書、複数の情報源を横断する市販後リスクプロファイルの複合ツールを網羅しています。FDA に報告された、または FDA が報告した情報の公式情報源です。無料で、認証は不要です(レート制限あり)。
Pipeworx の一部です。AI エージェントを1819以上のライブデータソースにつなぐ MCP ゲートウェイです。これは独立した非公式の連携であり、上流の提供元とは提携、承認、公開のいずれもされていません。
AI エージェントにとって重要な理由
医薬品の安全性に関する質問の答えはここで見つかります。有害事象の件数、添付文書の変更、承認までの期間、リコールの状況などが、すべて構造化されています。医薬品の全体像を把握するには、RxNorm(標準ID)およびClinicalTrials.gov(臨床試験)と組み合わせてください。
よくあるフロー:
- 医薬品の有害事象。 「Ozempic の報告は?」→
fda_drug_events({query: "ozempic"})→ 個別の安全性報告と件数。 - 反応の分類。 「Ozempic について報告された主な反応は?」→
fda_event_counts({query: "ozempic", count_field: "patient.reaction.reactionmeddrapt.exact"})→ MedDRA コード別の件数。 - 承認履歴。 「Ozempic はいつ、何のために承認されましたか?」→
fda_drug_approvals({query: "ozempic"})。 - リコール。 「Ozempic のリコールはありますか?」→
fda_drug_recalls({query: "ozempic"})。 - 添付文書の内容。 「禁忌について FDA の添付文書には何と書かれていますか?」→
fda_drug_labels({query: "ozempic"})。 - 企業のすべての申請。 「Eli Lilly が提出した Drugs@FDA の申請をすべて」→
fda_applications_by_cik({cik_or_ticker: "LLY"})。SEC を通じて企業を特定し、申請時に使われたすべてのsponsor_name表記を集約します。推測したスポンサー名でfda_drug_approvalsを呼び出す前に、下記の落とし穴を確認してください。
pharma_drug_profile および pharma_safety_report の複合ツールで使用されています。
認証
公開されており、キーは不要です。匿名利用の上限は約240リクエスト/分、1,000リクエスト/日で、IP ごとにカウントされます。そのため、同じ外向きIPアドレスを共有するすべての呼び出し元で、個別ではなく1,000リクエスト/日の上限を共有します。
api.fda.gov は api.data.gov と同じ api-umbrella 上で稼働しているため、api.data.gov のキーで認証でき、1日の上限が120,000リクエストに引き上げられます。Pipeworx はプラットフォームキー(PLATFORM_DATAGOV_KEY)を挿入します。独自のキーを使う場合は _apiKey を指定すると、呼び出しはご自身の割り当て分を消費します。https://open.fda.gov/apis/authentication/ で無料登録できます。
キーが拒否または失効していても、呼び出しは失敗しません。openFDA はキーなしでも完全に利用できるため、パックは匿名で1回再試行します。
データセット
| データセット | エンドポイントファミリー | 対象範囲 |
|---|---|---|
| 医薬品の有害事象(FAERS) | fda_drug_events | 1968年以降、報告約2,000万件以上 |
| 医薬品の承認 | fda_drug_approvals | 1939年以降(NDA/BLA/ANDA) |
| 医薬品の添付文書 | fda_drug_labels | 現行のSPL添付文書 |
| 医薬品のリコール | fda_drug_recalls | クラスI/II/IIIの措置 |
| 医療機器の有害事象 | (別のツール) | MAUDEデータベース |
| 食品のリコール | (別のツール) | FSISおよびFDAのリコール |
| 警告書 | fda_warning_letters | 2021-01以降に fda.gov(api.fda.gov ではありません)で公開された3,680通の書簡。加えて、その期間に該当する書簡がない企業については、2010年までさかのぼるFDAのコンプライアンス措置アーカイブ |
よくある落とし穴
- レポート数は患者数とは異なります。 1 回の入院から複数の FAERS レポートが作成されることがあります。
totalフィールドが示すのはレポート数であり、有害事象を経験した個人数ではありません。 - 因果関係を示すものではありません。 FAERS のレポートは、薬剤と事象が時間的に関連していることを示しますが、その薬剤が事象を引き起こしたことを証明するものではありません。慎重な表現を心がけてください。
- ブランド名と一般名の使い分け。 「ozempic」で検索すると、Ozempic としてタグ付けされたレポートが見つかります。「semaglutide」で検索すると、セマグルチド製品全般のレポートが見つかります。検索結果は異なる場合があるため、どちらを検索するかはユーザーの意図によって決まります。
- クエリ構文は FDA のものであり、こちら独自のものではありません。 OpenFDA は、フィールドごとのクエリを使う Lucene 形式の検索を使用します。Pipeworx のツールの説明に構文が記載されています。引用符は重要です。
- 副作用名には MedDRA の語順が使われます。 自然な表現は、FDA が保存している基本語と異なる場合があります。たとえば
ISCHAEMIC OPTIC NEUROPATHYはOPTIC ISCHAEMIC NEUROPATHYとして登録されています。副作用で絞り込むツールは、2 語および 3 語の語句について別の語順でも再試行し、解決された用語をreaction_resolvedで明示します。 - 副作用フィルターは、基本語全体に一致します。 部分文字列やトークンには一致しないため、
NEUROPATHYで検索して返されるのは、その完全一致する用語で登録されたレポート(約 1,700 件)のみであり、その単語を含むすべての用語のレポート(約 117,000 件)ではありません。これは意図的なものです。ディスプロポーショナリティの表には、その場しのぎのグループ化ではなく、1 つの症例定義が必要だからです。FDA が実際に保存している用語を確認するには、patient.reaction.reactionmeddrapt.exactの件数を数えてください。 - 一致しない用語は、黙って 0 件にするのではなく、報告されます。 どの語順でも一致しない場合、ツールはヒントとともに
reaction_resolution: "not_a_meddra_preferred_term"を返します。これは「フィルターが該当しなかった」という意味として扱い、「レポートが存在しない」という意味に決して解釈しないでください。 - 警告書の検索は、デフォルトで受領者に一致します。
fda_warning_lettersは fda.gov の solr インデックスを参照しています。このインデックスには、会社の列だけでなく各書簡の全文も含まれています。そのため、単純な全文検索で答えられるのは「X に言及する書簡」であり、「X 宛てに発行された書簡」ではありません。特定の企業について、この 2 つはまったく異なる主張です。実際に、search: "Merck"が返した書簡は 1 通だけで、宛先は Elanco Animal Health でした。本文中で Merck に触れているだけです。現在、searchは宛先企業を対象に絞り込み、各行にはmatched_field(companyまたはletter_text)が含まれます。また、本文を検索するにはmatch: "fulltext"を明示します。受領者検索で結果が見つからない場合は、全文検索での件数とともにfound: falseを返すため、「書簡がない」ことと「検索していない」ことを混同することはありません。 - 公開されている警告書の一覧は、直近 5 年間のローリングウィンドウであり、以前はそれが「この会社には問題がない」と受け取られることがありました。 fda.gov の一覧には、2021-01-05 から現在までの書簡が 3,680 通掲載されており、すべてのセンターが含まれています。CDER、CFSAN、CTP、CVM、Human Foods のいずれも掲載されているため、除外されるのは対象分野ではなく、古さによるものだけです。実際に存在する Hospira 宛ての 2017-02-14 付 CGMP 書簡に対して、
candidates_scanned: 0が返され、「"Hospira" に一致する警告書は一切ない」と断定されていました(フリート #2123)。このウィンドウ内で受領者検索の結果が見つからない場合、ツールは FDA の Data Dashboard にあるコンプライアンス措置アーカイブも参照するようになりました。このアーカイブには、少なくとも 2010 年以降の同じ執行措置が記録されています。アーカイブの行には企業、場所、製品種別、発行日が含まれますが、件名と書簡の URL は含まれません。FDA は、このような古い書簡の本文を再公開していないためです。そのため、各行とレスポンス自体にsourceが含まれ、アーカイブの行が公開一覧の行と混在することはありません。検索が成功した場合も、レスポンスには引き続きarchive_noteが含まれます。たとえば、ある企業に 2024 年の書簡が 1 通、2015 年の書簡が 10 通あったとしても、ここでの件数が 1 になるのは正しいからです。検索結果がない場合はarchive_checkedが含まれるため、「両方を調べて何も見つからなかった」場合と「アーカイブにアクセスできなかった」場合を区別できます。 - 広範な用語で検索した警告書の件数は、最低数です。 受領者の照合では、全文検索の候補を最大 600 件までページングします。それを超えると、レスポンスに
scan_complete: falseとscope_noteが設定され、total_matchingは下限になります。正確な件数を得るには、検索語を絞り込んでください。 - 事象の発生から報告までの遅れ。 FAERS のレポートは、事象の発生から数か月、場合によっては数年遅れて届きます。「直近 30 日」の表示は誤解を招きやすく、レポートが届くにつれて最近の件数は増え続けます。
sponsor_nameには企業 ID がなく、全文検索ではなく完全一致です。fda_drug_approvalsでsearch=sponsor_name:"ELI LILLY AND COMPANY"のように検索しても、その文字列に完全一致するものだけがヒットします。Eli Lilly の実際の申請は、「LILLY」(116 件)、「ELI LILLY AND CO」(22 件)、「ELI LILLY CO」(4 件)、「LILLY RES LABS」(1 件)に分かれており、SEC 登録名はいずれにも一致しません。表記を推測する代わりに、fda_applications_by_cikを使ってください(CIK またはティッカーを入力すると、すべてのsponsor_name表記を集約して返します)。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"openfda": {
"url": "https://gateway.pipeworx.io/openfda/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/openfda/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 も、同じゲートウェイと同じ 1819 以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントをお持ちでない場合は、HTTP 経由で呼び出せます
curl -X POST https://gateway.pipeworx.io/v1/tools/fda_drug_events \
-H 'Content-Type: application/json' \
-d '{"query":"patient.drug.medicinalproduct:\"OZEMPIC\""}'
最初の呼び出しにアカウントは不要です。ツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/fda_drug_events を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントは不要で、ゲートウェイとの往復通信もありません。
{
"mcpServers": {
"openfda": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-openfda"]
}
}
}
または、起動することを確認するために、直接実行します。
npx -y @pipeworx/mcp-openfda
stdin/stdout を介して MCP で通信し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Openfda data" })
ゲートウェイが適切なツールを選択し、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。