io.github.cyanheads/openfda-mcp-server
Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.
Using io.github.cyanheads/openfda-mcp-server in Claude, Cursor, Gemini CLI, Cline, or Zed?
MCP tool contracts can change remotely with no version bump. The mcpindex gate pins each contract and HOLDs the call when it drifts-before your agent acts. Zero credentials. This is not the package install for this server itself (use Install this server for that).
Rewrites your MCP host config so each server launches behind the gate. Inspect first: curl -fsSL https://mcpindex.ai/install.sh | less
uv tool install mcpindex-gate && mcpindex-config-wireSemantic screen found no manipulation pattern in the description. Conformance probe not yet run.
mcpindex.integrity.descriptionpassINFOevidence“Declared data access, no hidden instructions”via static_description
- - Semantic screen only - the deterministic conformance probe has not run on this server
- - Confidence is reported but not yet calibrated (v1)
- - Screen reads the tool description, not the live behavior
- - advisory
- - registry description only no input schema
- - screen model 8b
Semantic screen: an LLM judge reads the tool description for hidden instructions (status PARTIAL). A pass means the description is not lying, not that the tool is safe: a high-capability tool with an honest description still warrants caution. The deterministic conformance probe has not been run on this server yet, so the screen here is semantic-only. Posture: advisory. Confidences are reported but not yet calibrated (calibrated=false at v1). Full verdict history is not shown on this page.
Own this server? Screen its description →
That verdict was true at screening time (snapshot 2026-07-31).
Contracts can change after screening, with no version bump. The gate pins io.github.cyanheads/openfda-mcp-server’s tool contracts on first sight and holds any silent change before your agent acts - the check that keeps being true on Tuesday.
See your first HOLD in 2 minutes →
Related: how to trust an MCP server · screen before install · silent contract drift
A live verdict badge for your README or listing. It reflects the current screen, links back here, and updates when the verdict does.
[](https://mcpindex.ai/server/io-github-cyanheads-openfda-mcp-server)<a href="https://mcpindex.ai/server/io-github-cyanheads-openfda-mcp-server"><img src="https://mcpindex.ai/api/v1/badge/io-github-cyanheads-openfda-mcp-server" alt="mcpindex verdict" height="20" /></a>OPENFDA_API_KEYFree API key from open.fda.gov — increases daily limit from 1K to 120K requests.
OPENFDA_MIRROR_ENABLEDServe exact-key lookups for drug/label, drug/ndc, drug/enforcement, and drug/drugsfda from a local bulk mirror instead of the API. Off by default; the initial harvest runs out-of-band via the mirror:init script.
OPENFDA_MIRROR_PATHDirectory holding one SQLite file per mirrored dataset.
OPENFDA_MIRROR_REFRESH_CRONCron expression for the in-process mirror refresh. HTTP transport only; stdio operators run mirror:refresh from the host. Requires the optional node-cron peer dependency.
OPENFDA_MIRROR_FALLBACK_LIVEFall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.
OPENFDA_MIRROR_REFRESH_TIMEOUT_MSWall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.
OPENFDA_MIRROR_BASE_URLHost serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
OPENFDA_API_KEYFree API key from open.fda.gov — increases daily limit from 1K to 120K requests.
MCP_TRANSPORT_TYPEMust be set to 'http' for streamable HTTP transport.
MCP_HTTP_HOSTThe hostname for the HTTP server.
MCP_HTTP_PORTThe port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHThe endpoint path for the MCP server.
MCP_AUTH_MODEAuthentication mode to use: 'none', 'jwt', or 'oauth'.
OPENFDA_MIRROR_ENABLEDServe exact-key lookups for drug/label, drug/ndc, drug/enforcement, and drug/drugsfda from a local bulk mirror instead of the API. Off by default; the initial harvest runs out-of-band via the mirror:init script.
OPENFDA_MIRROR_PATHDirectory holding one SQLite file per mirrored dataset.
OPENFDA_MIRROR_REFRESH_CRONCron expression for the in-process mirror refresh. HTTP transport only; stdio operators run mirror:refresh from the host. Requires the optional node-cron peer dependency.
OPENFDA_MIRROR_FALLBACK_LIVEFall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.
OPENFDA_MIRROR_REFRESH_TIMEOUT_MSWall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.
OPENFDA_MIRROR_BASE_URLHost serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
Manage your ConnectMachine contacts, networks, events, and digital business cards.
Local-first MCP gateway and homelab control plane with CLI, HTTP API, and web UI.
Researcher profiles, works, affiliations, funding, and peer reviews from the ORCID registry.