Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cyanheads/openfda-mcp-server --skill openfda-guidegit clone --depth 1 https://github.com/cyanheads/openfda-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cyanheads/openfda-mcp-server/openfda-guide)<a href="https://agentmods.dev/skills/cyanheads/openfda-mcp-server/openfda-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/openfda-mcp-server/openfda-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cyanheads/openfda-mcp-server/openfda-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/openfda-mcp-server/openfda-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.02626 |
| Opus 5.5 | $0.00035 | $0.01050 |
| Sonnet 5.5 | $0.00017 | $0.00525 |
| Haiku 4.5 | $0.00009 | $0.00263 |
Grade A, and why
openfda-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope
openFDA's public API: drug, device, and food adverse-event reports, enforcement reports and device recalls, drug labels (SPL), the NDC directory, Drugs@FDA applications, drug shortages, 510(k) and PMA records, veterinary events, and tobacco problem reports. Each record is an FDA submission or listing. The API returns no exposure data, so it cannot give rates, and openFDA's API disclaimer says to treat every result as unvalidated. Trial outcomes, pricing, and prescribing volume come from other sources.
Identifiers
| Identifier | Shape | Yielded by | Consumed by |
|---|---|---|---|
| Product NDC | 69339-364, hyphenated labeler-product |
openfda_lookup_ndc, openfda_drug_profile identity, openfda.product_ndc on shortage and label records |
product_ndc:"…" in openfda_lookup_ndc |
| Package NDC | 69339-364-05 |
shortage records (one record per package), packaging[].package_ndc on NDC records |
packaging.package_ndc:"…" in openfda_lookup_ndc |
| Application number | ANDA077861, NDA…, BLA… |
openfda_search_drug_approvals, NDC records, openfda.application_number blocks |
application_number:"…" in openfda_search_drug_approvals |
| SPL set ID | UUID | label records, openfda.spl_set_id on NDC and shortage records, profile identity |
set_id:"…" in openfda_get_drug_label; openFDA keeps one current label per set |
| K-number / PMA number | K201189 / P… |
openfda_search_device_clearances; k_numbers / pma_numbers on device recall records |
k_number:"…" / pma_number:"…" in openfda_search_device_clearances |
| Product code | 3 letters, e.g. OLO |
device recall, 510(k), and PMA records | product_code:"…" on those endpoints |
| Recall number | D-321-2016, Z-0050-2025 |
enforcement records (recall_number); device recall records (product_res_number) |
device enforcement recall_number equals device recall product_res_number; enforcement event_id equals device recall res_event_number |
canvas_id |
10 characters | any search tool with stage: true |
openfda_dataframe_describe, openfda_dataframe_query, later stage calls |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines d9aa5379071d
- yesterday First seen · 68 lines · 87 tokens per session scan A 2e6e522ef44b
openfda-guide is a skill published in the GitHub repository cyanheads/openfda-mcp-server (4 stars, last pushed yesterday), licensed Apache-2.0. It adds 87 tokens to every session and 2,626 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-26.
Other skills, from other repositories
alexandria
Reach for this when a research question needs cited sources across academic papers, public domain books, legal records, government archives, security advisories, news, or developer documentation. Alexandria is an MCP server backed by 152 public digital libraries; use it whenever an answer should point at real…
arxiv-guide
Resolve citations to arXiv IDs, find an author's papers, follow a paper's versions, and read long papers section by section with the arxiv tools. Use when a task needs arXiv preprints found by citation (author-year, CoRR abs/ refs, arXiv DOIs), author, category, or date, or needs a paper's full text.
rhylthyme
Schedule multi-step procedures that a person carries out against a clock, with parallel tracks, shared equipment and steps that end when the person says so. Use when turning a lab protocol, recipe, event run sheet or workout into a timed plan; when several procedures must share one instrument (one centrifuge, one…
certificate-audited-analysis
Treat every computed result as unverified until its certificate checks out, review what was omitted rather than only what was included, and digest-chain every published number back to a retained computation. Use when citing any compiled or pipeline output in a document, when reviewing an analysis that publishes…
noodle-biomedical-literature-discovery
Find, inspect, compare, and traverse public biomedical research literature. Use for PubMed or scholarly paper search, publication details, PMID/DOI/PMCID lookup, related papers, citation paths, semantic literature neighborhoods, corpus coverage, or questions asking what research exists about a gene, variant…
noodle-biomedical-literature-discovery-mcp
Select Noodle Biomedical Literature Discovery MCP from Biorouter for public biomedical paper search, PMID DOI or PMCID lookup, publication inspection, related papers, citation or semantic graph traversal, and corpus metadata even when the user does not know the Noodle name.