Veterinary Fda について
Veterinary FDAは、動物用医薬品の承認、獣医向け有害事象報告、製品リコール、近隣のペット関連サービスを調べるMCPサーバーです。FDA Green Book、openFDA、OpenStreetMapのデータを組み合わせ、動物の健康調査や地域検索に使えます。
主な機能
- 01承認済み動物用医薬品と申請詳細の検索
- 02Green Bookの月次更新を取得
- 03個別の有害事象報告を検索
- 04反応・転帰・年別の集計
- 05動物用製品のリコールを検索
- 06近隣のペット関連サービスを検索
活用シーン
- 01動物用医薬品の承認と適応を確認する
- 02動物用医薬品の反応報告を調べる
- 03ペット製品のリコール記録を検索する
- 04近隣の動物病院やドッグパークを探す
MCP 対応
MCPクライアントに動物用医薬品、有害事象、リコール、ペットサービスのツールを提供します。データソースはFDA Green Book、openFDA、OpenStreetMapです。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/veterinary-fda/mcpclaude mcp add --transport http pipeworx-io-veterinary-fda https://gateway.pipeworx.io/veterinary-fda/mcp{"mcpServers":{"pipeworx-io-veterinary-fda":{"type":"http","url":"https://gateway.pipeworx.io/veterinary-fda/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-veterinary-fda":{"type":"http","url":"https://gateway.pipeworx.io/veterinary-fda/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-veterinary-fda":{"type":"http","url":"https://gateway.pipeworx.io/veterinary-fda/mcp"}}}{"mcpServers":{"pipeworx-io-veterinary-fda":{"serverUrl":"https://gateway.pipeworx.io/veterinary-fda/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
48| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | いいえ | question の別名。 |
| ask | string | いいえ | question の別名。 |
| text | string | いいえ | question の別名。 |
| input | string | いいえ | question の別名。 |
| packs | array | いいえ | 任意。ルーティング対象をこれらのパックスラッグに限定します(例:["sec-form-d","sec-13f"])。その場合、ルーターは該当パック内のツールのみを選択します。省略すると、デフォルトの全カタログへのルーティングになります。スラッグは list_packs / search_packs / https://pipeworx.io/directory から取得できます。リストにない、または不明なスラッグは無視され、_meta.pack_scope.ignored に記載されます。該当するスラッグが 1 つもない場合は、カタログ全体にルーティングし、_meta.pack_scope.full_catalog:true を設定します(空の回答にはなりません)。 |
| query | string | いいえ | question の別名。 |
| prompt | string | いいえ | question の別名。 |
| message | string | いいえ | question の別名。 |
| question | string | はい | 自然言語での質問またはリクエスト。query、q、prompt、text、input、ask、message をエイリアスとして使用できます。 |
詳細
Veterinary FDA — 承認済み動物用医薬品、副作用、有害事象、ペット製品のリコール、ペットサービス
動物・獣医療分野における、承認済み動物用医薬品、副作用報告、製品リコール、近隣のペットサービスを対象としています。対象動物は犬、猫、馬、牛です。データソースは3つです。FDA Green Book(Animal Drugs @ FDA — 承認済み新規動物用医薬品申請の公式リスト。API キー不要)、openFDA の Center for Veterinary Medicine 有害事象データベース(2026-09-04 時点で犬の報告 985,705 件、猫の報告 148,091 件。API キー不要)、OpenStreetMap(動物病院、ドッグパーク、ペットショップ、保護施設)。この MCP エコシステムで動物の有害事象データを扱うパックは、これが初めてです。openfda はこのデータに一切対応しておらず、openfda の医薬品エンドポイントもヒト用医薬品のみを対象としているため、Green Book のデータも同様に未対応でした。
Pipeworx の一部です。AI エージェントを 1684 以上の稼働中データソースに接続する MCP ゲートウェイです。
これらを組み合わせることで、次の一連の疑問に最初から最後まで回答できます。この動物に承認されているものは何か(Green Book)→ それを使った動物に何が起きたか(有害事象)→ リコールされたか(執行報告)。
AI エージェントにとって重要な理由
「犬のノミ駆除薬によるこの副作用は普通ですか?」「このドッグフードはリコールされましたか?」は、実際によく尋ねられる質問です。これまでは、FDA の一次情報データを使って回答する手段がありませんでした。
よくある利用例:
- 承認されているものを調べる。「カルプロフェンを含む FDA 承認薬は何ですか?」→
animal_drug_search({query: "carprofen"})→ スポンサー、ステータス、承認日を含む承認済み申請 24 件。「犬に承認されているものは何ですか?」→animal_drug_search({species: "Dogs"})→ 694 件。 - 承認の実際の適用範囲を調べる。「Rimadyl は何に対して承認されましたか?」→
animal_drug_search({brand_name: "Rimadyl"})→ applicationId 1024 →animal_drug_detail({application_id: 1024})→ FDA 自身による FOI 承認概要、動物種ごとの用量と適応症、ラベル PDF。 - 医薬品の副作用を調べる。「犬に Bravecto を使った場合、どのような副作用が報告されていますか?」→
vet_adverse_events({drug: "Bravecto", species: "Dog"})→ 反応、転帰、用量を含む個別報告。 - 安全性の全体像を把握する。「犬にフルララネルを使った場合、発作はどれくらいよく起きますか?」→
vet_adverse_event_summary({active_ingredient: "fluralaner", species: "Dog"})→ 反応、転帰、年ごとの件数。 - リコールを確認する。「Blue Buffalo のドッグフードはリコールされましたか?」→
vet_product_recalls({product: "Blue Buffalo"})。 - 近隣サービスを探す。「テキサス州オースティン近郊の緊急対応可能な動物病院」→
pet_services_near({place: "Austin TX", kind: "emergency_vet"})。
認証
すべて公開データで、API キーは不要です。
Green Book のツール(animal_drug_*)は、Animal Drugs @ FDA SPA が独自に使用するバックエンド API、animaldrugsatfda.fda.gov を直接呼び出します。openFDA とは異なる上流サービスです。API キーは適用されず、PLATFORM_DATAGOV_KEY は送信されません。また、_apiKey も機能しません。
api.fda.gov は api-umbrella(openfda と同じ api.data.gov スタック)上で稼働しているため、ゲートウェイは PLATFORM_DATAGOV_KEY を注入します(workers/gateway/src/index.ts の veterinary-fda 用 MCP_PACKS エントリー)。これにより、匿名利用時の上限である 40 リクエスト/分・1,000 リクエスト/日が 120,000 リクエスト/日に引き上げられます。このプラットフォームキーは、すでに openfda、fac、nasa、govinfo、regulations-gov など、ほかの 15 の連邦政府向けパックを支えています。独自のクォータを使うには、_apiKey でご自身のキーを指定してください。プラットフォームキーが拒否または失効した場合は、呼び出しが失敗するのではなく、匿名利用に切り替わります。
ジオコーディングの Nominatim と pet_services_near の Overpass は、別個の API キー不要の公開 OSM インフラストラクチャです。
ツール
| ツール | 回答できる内容 |
|---|---|
animal_drug_search | 成分、動物種、スポンサー、ブランド、適応症、ステータスに一致する FDA 承認済み動物用医薬品 |
animal_drug_detail | 1 件の承認申請に関するすべての情報:製品、動物種、用量、適応症、FOI 承認概要、ラベル PDF |
animal_drug_monthly_updates | Green Book の月次変更 PDF(新規承認、販売中止、ラベル変更) |
vet_adverse_events | 医薬品/動物種ごとの個別の動物有害事象報告 |
vet_adverse_event_summary | 医薬品/動物種の組み合わせごとの反応、転帰、年別の件数 |
vet_product_recalls | ペットフードまたは動物用医薬品製品に関する FDA Enforcement Report の回収情報 |
pet_services_near | 近隣の動物病院、救急動物病院、ドッグパーク、ペットショップ、保護施設(OpenStreetMap) |
データ上の注意点(2026-09-04 に測定。これらのツールの設計に不可欠)
drug.brand_nameはほとんど役に立ちません。 有害事象のエンドポイントでは、ほぼ常に登録者の内部略称(例:Merck Animal Health の"MSK")が格納されており、市販製品名ではありません。drug.brand_nameを「Bravecto」、「Frontline」、「Heartgard」、「Simparica」で検索しても、4 件すべてで該当は 0 件 です。実際の製品名はdrug.active_ingredients.name内に記録されています(実際の化学成分名と混在しており、上流データは整理されていません)。vet_adverse_events/vet_adverse_event_summaryはまずbrand_nameを検索し、自動的にactive_ingredients.nameに切り替えて、どのフィールドが実際に一致したかを呼び出し元に知らせるためresolved_fromを返します。count=<field>.exactはフィールドごとに機能し、どのフィールドでも使えるわけではありません。count=reaction.veddra_term_name.exactとcount=outcome.medical_status.exactは機能しますが、count=animal.species.exactとcount=original_receive_date.exactはどちらも"Nothing to count"を返します。vet_adverse_event_summaryの年別テーブルは、日付フィールドの制限を回避するためにcount=original_receive_dateをリクエストし(年ではなく正確な日ごとに分類されます)、クライアント側で集計します。- 複数語の語句を引用符なしで検索すると OR 検索になり、openFDA は関連度順に並べ替えません。
search=product_description:dog+food(引用符なし)では約 29,000 件が一致します。ほとんどはホットドッグやコーンドッグです。「dog」または「food」が食品回収データの大部分に一致し、openFDA の任意の順序で返されるためです。引用符でフレーズを指定した形式search=product_description:"dog food"だけが、実際のペットフードに関する 2 件(Freshpet)を返します。このためvet_product_recallsは複数語の製品名を常にフレーズとして引用符で囲み、曖昧な OR 検索には切り替えません。回収/安全性に関する回答では、「Blue Buffalo」の検索で「Blue Bell」のアイスクリーム回収が表示されるような偽陽性は、正直に 0 件と答えるよりも悪いため、このパック独自の有害事象検索のフォールバックやopenfdaのフリーテキスト検索のフォールバックとは異なり、ここには曖昧な一致の段階はありません。 - openFDA のペットフード回収情報は、検索構文の問題ではなく、実際に網羅性が不十分です。 動物用/ペットフード専用の回収エンドポイントはありません。
vet_product_recallsはopenfdaが人用食品/医薬品に使うものと同じフィードであるfood/enforcement.jsonとdrug/enforcement.jsonを再利用します。FDA が確認した、よく知られたペットフードの回収情報のいくつかは、このデータセットに まったく含まれていません。これは検索が 1 回失敗しただけではなく、FDA 自身のプレスリリースにある正確な名称を含め、製品名/企業名のあらゆる妥当な表記を網羅的に試して確認した結果です。Blue Buffalo の 2010 年、2017 年、2022 年の回収、および 2021 年の Sportmix アフラトキシン回収(犬が約 70 匹死亡し、FDA により正式にクラス I 回収に分類)は、どの検索でも 0 件 です。FDA 自身の回収履歴ページ(fda.gov/animal-veterinary/safety-health/recalls-withdrawals)のデータと openFDA の Enforcement Reports API のデータは同じではなく、openFDA は前者を反映していません。この場合、vet_product_recallsはtotal: 0と明示的な注記を返します。0 件は「Enforcement Report に記録が見つからない」と解釈し、「回収されたことがない」と解釈しないでください。
Green Book の注意点(2026-09-05 に測定)
/advancedSearchはbasicSearchTermを黙って破棄します。 これが危険な点です。エラーではなく、正しいように見える誤った行を返す 200 応答になります。{basicSearchTerm: "carprofen", speciesName: "Cats"}は、carprofen∩cats の結果ではなく、Pentobarbital Sodium を先頭とする 338 件を返します。つまり、Cats の結果一式が返され、フリーテキストの検索語は無視されます。応答には、検索語が無視されたことを示す情報は何もありません。そのためanimal_drug_searchは、フリーテキストを/advancedSearchに渡しません。queryが構造化フィルターとともに渡された場合は、activeIngredientName(空の場合はproprietaryName)に解決し、query_resolved_toでどちらに解決したかを応答に含めます。- 実際の件数にかかわらず、
totalPagesは常に1です。pageSize: 2で犬の結果が 694 件あっても、totalPages: 1と報告されます。これを信頼すると、大量の結果はすべて 1 ページ分しか取得できません。animal_drug_searchはtotalElements / page_sizeから再計算します。 publishDateとvoluntaryWithdrawalDateはエポックからのミリ秒であり、秒ではありません。 秒として扱うと、1970 年の日付になります。YYYY-MM-DD形式に整形します。- 一覧行の
applicationStatusValueは常にnullです。 値が設定されるのは、単独のA/W/G/RであるapplicationStatusCodeだけです。そのため、そのまま返すとすべての結果でステータスが不明になります。/codes/application_statusと照合してデコードします(isolate ごとにメモ化し、4 行のルックアップで一時的な障害が起きてもステータスが単独の文字に劣化しないよう、ハードコードしたフォールバックテーブルを用意しています)。 proprietaryNameには改行が含まれることがあります。"Carprofen Caplets\nNovox® Caplets"は、2 つの名称を宣伝する 1 行です。proprietary_names[]と、最初の名称を格納するproprietary_nameの両方として返されます。/retrievePreviewBean/{id}は不明な ID に対して 500 と HTML の Weblogic エラーページを返すため、単純な判定ではupstream_downになります。 呼び出し元が誤った ID を渡した場合(またはapplicationIdが必要なのに NADA 番号を渡した場合)に、FDA がダウンしていると報告することになります。animal_drug_detailは先に/preview/{id}を確認します。このエンドポイントは同じ ID に対してapplicationId: nullを含む正常な 200 応答を返し、2 種類の ID の違いを示す不正引数エラーを発生させます。/retrievePreviewBean自体のapplicationブロックは使用できません。 有効な ID であっても、applicationNumber: 0、type と status はnullです。詳細なコンテンツ自体は正しいため、識別情報は/preview/{id}から取得する必要があります。どちらか一方のエンドポイントだけでは不十分です。/specandstatus/{id}は意図的に接続していません。specandstatus/1024は、申請番号 1024(Rimadyl)とは無関係のクロルテトラサイクリンの VFD レコードを返します。別の ID 空間をキーにしているようです。もっともらしく見える誤った回答を提供するより、機能から除外しました。- ドキュメントのダウンロード先には 3 種類の異なるパス形式があり、いずれも
application/pdfを返す 200 応答を確認済みです。/document/downloadFoi/{foiId}、/document/downloadLabeling/{labelingId}、そして/document/配下ではない/monthlyUpdates/downloadMonthlyUpdate/{greenbookMonthlyUpdatesId}です。
その他の注意点
- OpenStreetMap では
emergency=yesのタグ付けが不十分です。 実際には救急動物病院でも、そのようにタグ付けされていないケースが多くあります。救急タグ付きの検索で何も見つからなかった場合、pet_services_near({kind: "emergency_vet"})は「見つかりませんでした」と誤って返すのではなく、近隣の動物病院全般にフォールバックします(その旨を注記します)。
このパックで回答できる質問の例
- 「カルプロフェンを含む、FDA 承認済みの医薬品は?」
- 「犬用に承認されている医薬品は?」
- 「Rimadyl は何に対して、いつ承認されましたか?」
- 「Zoetis が販売を中止した動物用医薬品は?」
- 「犬に Bravecto を使用した場合、どのような副作用が報告されていますか?」
- 「猫のフルララナーによる有害事象は何件あり、その後どうなりましたか?」
- 「Blue Buffalo のドッグフードはリコールされましたか?」
- 「テキサス州オースティン近郊の救急動物病院」
- 「オレゴン州ポートランド近郊のドッグパーク」
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"veterinary-fda": {
"url": "https://gateway.pipeworx.io/veterinary-fda/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/veterinary-fda/mcp の tools/list は、上の表にあるツールに加えて、Pipeworx 共通のメタツール(ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できる一連のツール)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック独自のツールに加えて、共通ツールがおよそ 30 個表示されます。接続の initialize レスポンスに正確な対象範囲が記載されており、その日の情報として正式な回答となります。
これは意図的な仕様であり、偶然の多重化ではありません。メタツールを使うと、このパックでは対応していない質問にも、カタログ全体を検索する ask_pipeworx 経由で回答できます。そのため、MCP サーバーを追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマがもたらすコンテキストコストがルーティングのメリットを上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックのツールだけでなく、各パックのツールがすべて直接一覧表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も、同じゲートウェイと同じ 1684 以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがなくても、HTTP で呼び出せます
curl -X POST https://gateway.pipeworx.io/v1/tools/vet_adverse_events \
-H 'Content-Type: application/json' \
-d '{"drug":"Bravecto","species":"Dog"}'
最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/vet_adverse_events を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も必要ありません。
{
"mcpServers": {
"veterinary-fda": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-veterinary-fda"]
}
}
}
または、直接実行して起動を確認できます。
npx -y @pipeworx/mcp-veterinary-fda
stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に対して、このパックのツールのみを返します。上記のゲートウェイ接続で追加される共通メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Veterinary Fda data" })
ゲートウェイが適切なツールを選択し、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。