pp-openfda について
pp-openfdaは、OpenFDA CLI向けの読み取り専用エージェントスキルです。医薬品、医療機器、食品などの規制記録を検索でき、構造化出力やローカルキャッシュ検索、結果の送信に対応します。
主な機能
- 01医薬品・医療機器の規制記録を検索
- 02食品などの有害事象を照会
- 03リコール・供給不足・製品ラベルを検索
- 04JSON出力とフィールド選択
- 05プロファイル保存と結果の送信
活用シーン
- 01医薬品の有害事象報告やラベルを調査
- 02医療機器のリコールや承認記録を検索
- 03食品やサプリメントの有害事象を照会
- 04定期検索の結果をファイルやWebhookへ送信
MCP 対応
openfda-pp-mcpをインストールしてMCPサーバーとして登録し、MCPクライアントから利用する手順を記載しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-openfdaインストール後、Claude Code で/pp-openfdaを入力して読み込まれたか確認します。
詳細
Openfda — Printing Press CLI
前提条件:CLI をインストールする
このスキルでは openfda-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールしてください。
- Printing Press インストーラーを使用してインストールします。デフォルトでは、macOS/Linux では
$HOME/.local/binに、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binにバイナリがインストールされます。npx -y @mvanhorn/printing-press-library install openfda --cli-only - 確認します:
openfda-pp-cli --version - 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの
$PATHに含まれていることを確認します。
npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go による直接インストールに切り替えてください(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/developer-tools/openfda/cmd/openfda-pp-cli@latest
インストール後に --version が「command not found」と報告する場合、ランタイムからバイナリディレクトリを $PATH 経由で参照できていません。確認に成功するまで、このスキルのコマンドを実行しないでください。
この CLI を使用しない場合
リモートの状態を作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、メッセージの送信、予約、購入、または変更する必要があるリクエストでは、この CLI を有効にしないでください。この印刷用 CLI には、調査、エクスポート、同期、分析を行う読み取り専用コマンドが用意されています。
コマンドリファレンス
animal-events — 動物用医薬品および医療機器の有害事象報告。
openfda-pp-cli animal-events— 動物の有害事象報告を検索
device-510k — 実質的同等性を証明する市販前届出申請。
openfda-pp-cli device-510k— 510(k) の承認記録を検索
device-classification — 医療機器の製品コード、専門分野、規制上のクラス。
openfda-pp-cli device-classification— 医療機器の分類を検索
device-covid19 — COVID-19 血清学的検査の評価データ。
openfda-pp-cli device-covid19— COVID-19 血清学的検査の評価を検索
device-events — 医療機器の有害事象報告(MAUDE/MDR)— 負傷、死亡、故障。
openfda-pp-cli device-events count— フィールド別に医療機器の有害事象を集計openfda-pp-cli device-events list— 医療機器の有害事象報告を検索
device-pma — クラス III 医療機器の市販前承認決定。
openfda-pp-cli device-pma— 市販前承認記録を検索
device-recall-detail — 欠陥や健康リスクに対処する、詳細な医療機器のリコール措置。
openfda-pp-cli device-recall-detail— 医療機器のリコール措置の詳細を検索
device-recalls — 医療機器のリコールに関する規制措置報告。
openfda-pp-cli device-recalls— 医療機器のリコールに関する規制措置報告を検索
device-registration — 医療機器の製造施設の登録情報および製品一覧。
openfda-pp-cli device-registration— 医療機器の登録情報および製品一覧を検索
device-udi — グローバル機器固有識別データベース(GUDID)。
openfda-pp-cli device-udi— 機器固有識別子を検索
drug-approvals — 1939 年以降に FDA が承認した医薬品 — 申請、提出情報、販売状況。
openfda-pp-cli drug-approvals— 承認済み医薬品を検索
drug-events — 医薬品の副作用、投薬ミス、製品品質の問題に関する報告(FAERS)。2003 年以降、490 万件以上の報告。
openfda-pp-cli drug-events count— フィールド別に有害事象を集計openfda-pp-cli drug-events list— 医薬品の有害事象報告を検索
drug-labels — 処方情報、黒枠警告、効能などを含む構造化された製品情報。
openfda-pp-cli drug-labels— 医薬品の製品ラベルを検索
drug-ndc — 国立医薬品コード(NDC)ディレクトリ — 製品識別子、包装、分類。
openfda-pp-cli drug-ndc— NDC ディレクトリを検索
drug-recalls — 医薬品のリコールに関する規制措置報告。
openfda-pp-cli drug-recalls count— フィールド別に医薬品のリコールを集計openfda-pp-cli drug-recalls list— 医薬品のリコールに関する規制措置報告を検索
drug-shortages — 製造上の問題、遅延、販売中止による現在および過去の医薬品不足。
openfda-pp-cli drug-shortages— 医薬品不足を検索
food-events — CAERS 報告 — 食品、栄養補助食品、化粧品の有害事象。
openfda-pp-cli food-events— 食品/栄養補助食品の有害事象報告を検索
food-recalls — 食品のリコールに関する規制措置報告。
openfda-pp-cli food-recalls count— フィールド別に食品のリコールを集計openfda-pp-cli food-recalls list— 食品のリコールに関する規制措置報告を検索
nsde — 非標準化医薬品エンティティ — 標準用語に対応しない医薬品名。
openfda-pp-cli nsde— 非標準化医薬品エンティティを検索
substance — FDA の物質登録システムの物質データ。
openfda-pp-cli substance— 物質記録を検索
tobacco-problems — たばこ製品の問題に関する報告。
openfda-pp-cli tobacco-problems— たばこの問題に関する報告を検索
最適なコマンドを見つける
何をしたいかは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接尋ねてください。
openfda-pp-cli which "<capability in your own words>"
which は自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最も一致するコマンドに対応付けます。終了コード 0 は少なくとも 1 件一致したことを示し、終了コード 2 は確度の高い一致がないことを示します。その場合は --help を確認するか、より具体的な問い合わせを使ってください。
認証の設定
環境変数で API キーを設定します。
export FDA_API_KEY="<your-key>"
または、`` に保存します。
openfda-pp-cli doctor を実行して、設定を確認してください。
エージェントモード
任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ接続可能 — JSON は stdout に、エラーは stderr に出力されます
-
フィルタリング可能 —
--selectでフィールドを絞り込めます。ドット区切りのパスはネストされた構造をたどり、配列では各要素を順にたどります。冗長な API でコンテキストを小さく保つうえで重要です。openfda-pp-cli animal-events --agent --select id,name,status -
プレビュー可能 —
--dry-runで送信せずにリクエストを表示します -
オフラインでも利用可能 — 同期/検索コマンドでは、利用できる場合にローカルの SQLite ストアを使用できます
-
非対話型 — プロンプトは表示されず、すべての入力をフラグで指定します
-
読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信、その他の変更を伴うリクエストには、この CLI を使用しないでください
レスポンスのエンベロープ
ローカルストアまたは API から読み取るコマンドは、出力を来歴エンベロープでラップします。
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を参照してください。人間が読みやすい N results (live) の概要が stderr に出力されるのは stdout が端末の場合のみです。パイプやエージェントの利用では、stdout に純粋な JSON が出力されます。
エージェントからのフィードバック
この CLI に問題があることに(あなたやエージェントが)気付いたら、記録してください。
openfda-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
openfda-pp-cli feedback --stdin < notes.txt
openfda-pp-cli feedback list --json --limit 10
エントリーは ~/.openfda-pp-cli/feedback.jsonl にローカル保存されます。OPENFDA_FEEDBACK_ENDPOINT が設定されていて、かつ --send が指定されているか、OPENFDA_FEEDBACK_AUTO_SEND=true が設定されていない限り、POST されることはありません。デフォルトではローカルにのみ保存されます。
バグ報告ではなく、意外だったことを書いてください。簡潔かつ具体的に、1 行で記してください。積み重ねにつながるのは、その部分です。
出力の配信
すべてのコマンドで --deliver <sink> を指定できます。出力は stdout に加えて、または stdout の代わりに、指定されたシンクに送られるため、エージェントはコマンド結果を手作業でパイプ接続せずに振り分けられます。次の 3 つのシンクに対応しています。
| シンク | 動作 |
|---|---|
stdout | デフォルト。stdout のみに書き込みます |
file:<path> | 出力を <path> にアトミックに書き込みます(tmp + rename) |
webhook:<url> | 出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson) |
不明なスキームは、対応しているスキームを示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の終了コードが返され、stderr に URL と HTTP ステータスが記録されます。
名前付きプロファイル
プロファイルは、保存して呼び出し間で再利用できるフラグ値のセットです。スケジュールされたエージェントが毎回同じ設定で同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。
openfda-pp-cli profile save briefing --json
openfda-pp-cli --profile briefing animal-events
openfda-pp-cli profile list --json
openfda-pp-cli profile show briefing
openfda-pp-cli profile delete briefing --yes
明示的に指定したフラグは常にプロファイル値より優先され、プロファイル値はデフォルト値より優先されます。agent-context は利用可能なすべてのプロファイルを available_profiles の下に一覧表示するため、情報を調べるエージェントは実行時にプロファイルを検出できます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が誤っています) |
| 3 | リソースが見つかりません |
| 4 | 認証が必要です |
| 5 | API エラー(上流の問題) |
| 7 | レート制限中(待機して再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→openfda-pp-cli --helpの出力を表示 installで始まる →mcpで終わる場合は MCP のインストール。それ以外の場合は上記の「前提条件」を参照- その他すべて → 直接利用(
--agentを付けて CLI コマンドとして実行)
MCP サーバーのインストール
この CLI の公開済みパブリックライブラリーエントリーまたはビルド済みリリースから MCP バイナリをインストールし、登録します。
claude mcp add openfda-pp-mcp -- openfda-pp-mcp
確認:claude mcp list
直接使用
- インストール済みか確認します:
which openfda-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照)。 - ユーザーのクエリに最適なコマンドを、上記の「固有の機能とコマンドリファレンス」から選びます。
--agentフラグを付けて実行します:openfda-pp-cli <command> [subcommand] [args] --agent- あいまいな場合は、サブコマンドのヘルプを確認します:
openfda-pp-cli <command> --help。