Skip to content
mcp/skillhub

Openfda MCP Server

by cyanheadsio.github.cyanheads/openfda-mcp-serverv0.8.0

Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.

4Node.jsstdioremoteofficial registry

context tax

queued

security

queued

cold start

queued

freshness

Active6d ago

Install Openfda MCP server

Install in Claude Code

claude mcp add openfda-cyanheads -- npx -y @cyanheads/openfda-mcp-server

Configuration

VariableRequiredSecretDescription
OPENFDA_API_KEY——Free API key from open.fda.gov — increases daily limit from 1K to 120K requests.
CANVAS_PROVIDER_TYPE——Set to 'duckdb' to enable DataCanvas staging: stage=true or a canvas_id on an openfda_search_* tool or openfda_lookup_ndc stages the matched records as a SQL table, and the openfda_dataframe_* tools are listed. The DuckDB binding ships with the server.
OPENFDA_DATAFRAME_DROP_ENABLED——Enable openfda_dataframe_drop, which deletes a table staged on a DataCanvas. Off by default; applies only when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb).
OPENFDA_MIRROR_ENABLED——Serve 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_PATH——Directory holding one SQLite file per mirrored dataset.
OPENFDA_MIRROR_REFRESH_CRON——Cron 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_LIVE——Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.
OPENFDA_MIRROR_REFRESH_TIMEOUT_MS——Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.
OPENFDA_MIRROR_BASE_URL——Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.
MCP_LOG_LEVEL——Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_TRANSPORT_TYPE——Selects the HTTP transport.
MCP_HTTP_HOST——The hostname for the HTTP server.
MCP_HTTP_PORT——The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATH——The endpoint path for the MCP server.
MCP_AUTH_MODE——Authentication mode to use: 'none', 'jwt', or 'oauth'.

Remote endpoints

  • streamable-httphttps://openfda.caseyjhand.com/mcp

Freshness

Active — last maintenance signal 6d ago. The newest of the signals below sets the band.

  1. Last commit (default branch)

    2026-10-04 · 6d ago · GitHub

  2. Latest release

    2026-10-04 · 6d ago · GitHub · v0.8.0

  3. Package published

    no data · npm/PyPI

  4. Registry entry updated

    2026-10-04 · 6d ago · official registry · v0.8.0

FAQ

›How do I install the Openfda MCP server in Claude Code?

Run: claude mcp add openfda-cyanheads -- npx -y @cyanheads/openfda-mcp-server. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.

›Does Openfda require an API key?

No required environment variables are declared in its published metadata.

›Can I use Openfda as a remote (hosted) MCP server?

Yes — it offers both a hosted endpoint and a local stdio package.

›Is Openfda in the official MCP registry?

Yes, as io.github.cyanheads/openfda-mcp-server.