Openfda-mcp-server MCP Server

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

Local + remotestreamable-httpstdio

What is the Openfda-mcp-server MCP Server?

Openfda-mcp-server is an MCP integration. Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.

Hosted connection

The registry lists a streamable-http connection at https://openfda.caseyjhand.com/mcp.

Packages and local setup

The published npm package is @cyanheads/openfda-mcp-server, version 0.8.1. Its declared MCP transport is stdio.

The package declares 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')..

The published npm package is @cyanheads/openfda-mcp-server, version 0.8.1. Its declared MCP transport is streamable-http.

The package declares OPENFDA_API_KEY: Free API key from open.fda.gov — increases daily limit from 1K to 120K requests.; 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'.; 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')..

Before connecting

Check the maintainer’s instructions for account access, authentication and the supported client configuration. Once connected, inspect the tools your client receives and try a small task that matches the server’s stated purpose. The registry description does not include a verified, complete tool list.

Project and source

View the publisher’s registry entry · Project repository. This profile uses version 0.8.1 from the registry. Registration identifies the publisher namespace; it does not establish that this is a first-party integration for every service it connects.

Browse related developer tools MCP servers for tools that cover the same kind of work.

Configuration

VariableDescriptionRequired
OPENFDA_API_KEYFree API key from open.fda.gov — increases daily limit from 1K to 120K requests.Check documentation
CANVAS_PROVIDER_TYPESet 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.Check documentation
OPENFDA_DATAFRAME_DROP_ENABLEDEnable openfda_dataframe_drop, which deletes a table staged on a DataCanvas. Off by default; applies only when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb).Check documentation
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.Check documentation
OPENFDA_MIRROR_PATHDirectory holding one SQLite file per mirrored dataset.Check documentation
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.Check documentation
OPENFDA_MIRROR_FALLBACK_LIVEFall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.Check documentation
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.Check documentation
OPENFDA_MIRROR_BASE_URLHost serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.Check documentation
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').Check documentation