The FDA safety data terminal. Every drug adverse event, device recall, food contamination, and product label the FDA publishes — synced locally, searchable offline, with trend analysis no other tool offers.
The recommended path installs both the openfda-pp-cli binary and the pp-openfda agent skill in one shot:
npx -y @mvanhorn/printing-press install openfdaFor CLI only (no skill):
npx -y @mvanhorn/printing-press install openfda --cli-onlyThe generated install path is category-agnostic until this CLI is published. If npx is not available before publish, install Node or use the category-specific Go fallback from the public-library entry after publish.
Download a pre-built binary for your platform from the latest release. On macOS, clear the Gatekeeper quarantine: xattr -d com.apple.quarantine <binary>. On Unix, mark it executable: chmod +x <binary>.
From the Hermes CLI:
hermes skills install mvanhorn/printing-press-library/cli-skills/pp-openfda --forceInside a Hermes chat session:
/skills install mvanhorn/printing-press-library/cli-skills/pp-openfda --forceTell your OpenClaw agent (copy this):
Install the pp-openfda skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openfda. The skill defines how its required CLI can be installed.
See Install above.
Get your API key from your API provider's developer portal. The key typically looks like a long alphanumeric string.
export FDA_API_KEY="<paste-your-key>"You can also persist this in your config file at ``.
openfda-pp-cli doctorThis checks your configuration and credentials.
openfda-pp-cli animal-eventsRun openfda-pp-cli --help for the full command reference and flag list.
Animal drug and device adverse event reports.
openfda-pp-cli animal-events list- Search animal adverse event reports
Premarket notification submissions demonstrating substantial equivalence.
openfda-pp-cli device-510k list- Search 510(k) clearance records
Medical device product codes, specialty areas, and regulatory class.
openfda-pp-cli device-classification list- Search device classifications
COVID-19 serological testing evaluation data.
openfda-pp-cli device-covid19 list- Search COVID-19 serology test evaluations
Medical device adverse event reports (MAUDE/MDR) — injuries, deaths, malfunctions.
openfda-pp-cli device-events count- Count device events by fieldopenfda-pp-cli device-events list- Search device adverse event reports
Class III medical device premarket approval decisions.
openfda-pp-cli device-pma list- Search premarket approval records
Detailed device recall actions addressing defects or health risks.
openfda-pp-cli device-recall-detail list- Search device recall action details
Medical device recall enforcement reports.
openfda-pp-cli device-recalls list- Search device recall enforcement reports
Medical device manufacturing establishment registrations and product listings.
openfda-pp-cli device-registration list- Search device registrations and listings
Global Unique Device Identification Database (GUDID).
openfda-pp-cli device-udi list- Search unique device identifiers
FDA-approved drug products since 1939 — applications, submissions, and marketing status.
openfda-pp-cli drug-approvals list- Search approved drug products
Reports of drug side effects, medication errors, product quality problems (FAERS). 4.9M+ reports since 2003.
openfda-pp-cli drug-events count- Count adverse events by fieldopenfda-pp-cli drug-events list- Search drug adverse event reports
Structured product information including prescribing info, black box warnings, indications.
openfda-pp-cli drug-labels list- Search drug product labels
National Drug Code directory — product identifiers, packaging, and classification.
openfda-pp-cli drug-ndc list- Search NDC directory
Drug product recall enforcement reports.
openfda-pp-cli drug-recalls count- Count drug recalls by fieldopenfda-pp-cli drug-recalls list- Search drug recall enforcement reports
Current and historical drug shortages from manufacturing issues, delays, and discontinuations.
openfda-pp-cli drug-shortages list- Search drug shortages
CAERS reports — food, dietary supplement, and cosmetic adverse events.
openfda-pp-cli food-events list- Search food/supplement adverse event reports
Food product recall enforcement reports.
openfda-pp-cli food-recalls count- Count food recalls by fieldopenfda-pp-cli food-recalls list- Search food recall enforcement reports
Non-Standardized Drug Entities — drug names that don't map to standard terminology.
openfda-pp-cli nsde list- Search non-standardized drug entities
Substance data from the FDA substance registration system.
openfda-pp-cli substance list- Search substance records
Tobacco product problem reports.
openfda-pp-cli tobacco-problems list- Search tobacco problem reports
# Human-readable table (default in terminal, JSON when piped)
openfda-pp-cli animal-events
# JSON for scripting and agents
openfda-pp-cli animal-events --json
# Filter to specific fields
openfda-pp-cli animal-events --json --select id,name,status
# Dry run — show the request without sending
openfda-pp-cli animal-events --dry-run
# Agent mode — JSON + compact + no prompts in one flag
openfda-pp-cli animal-events --agentThis CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows the request without sending - Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.
Install the focused skill — it auto-installs the CLI on first invocation:
npx skills add mvanhorn/printing-press-library/cli-skills/pp-openfda -gThen invoke /pp-openfda <query> in Claude Code. The skill is the most efficient path — Claude Code drives the CLI directly without an MCP server in the middle.
Use as an MCP server in Claude Code (advanced)
If you'd rather register this CLI as an MCP server in Claude Code, install the MCP binary first:
Install the MCP binary from this CLI's published public-library entry or pre-built release.
Then register it:
claude mcp add openfda openfda-pp-mcp -e FDA_API_KEY=<your-key>This CLI ships an MCPB bundle — Claude Desktop's standard format for one-click MCP extension installs (no JSON config required).
To install:
- Download the
.mcpbfor your platform from the latest release. - Double-click the
.mcpbfile. Claude Desktop opens and walks you through the install. - Fill in
FDA_API_KEYwhen Claude Desktop prompts you.
Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (darwin-arm64) and Windows (amd64, arm64); for other platforms, use the manual config below.
Manual JSON config (advanced)
If you can't use the MCPB bundle (older Claude Desktop, unsupported platform), install the MCP binary and configure it manually.
Install the MCP binary from this CLI's published public-library entry or pre-built release.
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"openfda": {
"command": "openfda-pp-mcp",
"env": {
"FDA_API_KEY": "<your-key>"
}
}
}
}openfda-pp-cli doctorVerifies configuration, credentials, and connectivity to the API.
Config file: ``
Static request headers can be configured under headers; per-command header overrides take precedence.
Environment variables:
| Name | Kind | Required | Description |
|---|---|---|---|
FDA_API_KEY |
per_call | Yes | Set to your API credential. |
Authentication errors (exit code 4)
- Run
openfda-pp-cli doctorto check credentials - Verify the environment variable is set:
echo $FDA_API_KEYNot found errors (exit code 3) - Check the resource ID is correct
- Run the
listcommand to see available items
Generated by CLI Printing Press