openfda-mcp-server in namespace io.github
Local package path declaredNo credentials listedRepository declared by sourceUpdated 2026-10-04
io.github.cyanheads/openfda-mcp-server · Registry status: active
No name of its own reaches this register for this entry. The heading therefore carries the trailing segment of the identifier; the identifier itself is listed below as a coordinate.
At a glance
Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.
Vendor's own description, untranslated and unverified
- Execution location
- Local package path declaredMCP-Register · 2026-08-06
- Required secrets declared
- No credentials listedMCP-Register · 2026-08-06
- Declared version and change
0.8.0· Source-reported change date 2026-10-04MCP-Register · 2026-10-05- Repository as declared
- github.com/cyanheads/openfda-mcp-serverMCP-Register · 2026-08-06
- Configuration
- can be built from the disclosed start template
Inspect connection paths and prerequisites
Related categories
- MCP servers without declared required secrets35,800
- Locally executed MCP servers17,056
- MCP servers with a repository URL30,107
- Local MCP servers without declared required secrets13,238
- Local MCP servers with a repository URL16,152
- MCP servers as a package and as an endpoint2,067
6 of 7 categories. All categories in the segment catalogue
Page last changed:
Sources and collection
- Runs
- Local package path declared
- Credentials
- No credentials listed
- Registry record changed
- 2026-10-04
- Setup
- Template available
- Registry name
io.github.cyanheads/openfda-mcp-server- Package coordinate
npm:@cyanheads/openfda-mcp-server- Declared version
0.8.0- Source-reported listing date
- 2026-10-04
- Source-reported change date
- 2026-10-04
- First seen by tracevero
- 2026-08-06
- Vendor's website
- https://github.com/cyanheads/openfda-mcp-server
Evidence for this page: The values on this page come from several collections. Each row therefore states its own origin. What the confidence levels mean
Measured values
| Required secrets declared | No credentials listed no Original data – Required secret variables (raw): confirmed absent Original data – Required secret headers (raw): confirmed absent Source: MCP-Register · collected on 2026-08-06 · derived |
|---|---|
| Execution location | Local package path declared local Original data – Transports (raw): stdio, streamable-http, streamable-http Source: MCP-Register · collected on 2026-08-06 · derived |
| Path argument present | no Original data – Path arguments (raw): confirmed absent Original data – Path environment variables (raw): confirmed absent Source: MCP-Register · collected on 2026-08-06 · derived |
| Repository URL listed | Repository declared by source yes Original data – Repository (raw): https://github.com/cyanheads/openfda-mcp-server Source: MCP-Register · collected on 2026-08-06 · derived |
| Declared version | 0.8.0 Source: MCP-Register · collected on 2026-10-05 · self-declared |
What is measured is what a manifest declares, not what a piece of software does. This registry fetches no repository URL, no endpoint and no package index; nothing here is verified. Which value comes from which source, and by which rule it was formed, is set out in the Methodology.
Where this server connects to
- Address as stated in the raw record
https://openfda.caseyjhand.com/mcp- Host
openfda.caseyjhand.comEntries carrying exactly this value: 1
Taken verbatim from the raw record. The registry does not call this address and does not infer a shared operator from a shared host.
Source data25
Evidence for this page: The values on this page come from several collections. Each row therefore states its own origin.
| Description (raw) | Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP. Source: MCP-Register · collected on 2026-08-26 · self-declared |
|---|---|
| Environment variables (raw) | OPENFDA_API_KEY, CANVAS_PROVIDER_TYPE, OPENFDA_DATAFRAME_DROP_ENABLED, OPENFDA_MIRROR_ENABLED, OPENFDA_MIRROR_PATH, OPENFDA_MIRROR_REFRESH_CRON, OPENFDA_MIRROR_FALLBACK_LIVE, OPENFDA_MIRROR_REFRESH_TIMEOUT_MS, OPENFDA_MIRROR_BASE_URL, MCP_LOG_LEVEL, OPENFDA_API_KEY, MCP_TRANSPORT_TYPE, MCP_HTTP_HOST, MCP_HTTP_PORT, MCP_HTTP_ENDPOINT_PATH, MCP_AUTH_MODE, CANVAS_PROVIDER_TYPE, OPENFDA_DATAFRAME_DROP_ENABLED, OPENFDA_MIRROR_ENABLED, OPENFDA_MIRROR_PATH, OPENFDA_MIRROR_REFRESH_CRON, OPENFDA_MIRROR_FALLBACK_LIVE, OPENFDA_MIRROR_REFRESH_TIMEOUT_MS, OPENFDA_MIRROR_BASE_URL, MCP_LOG_LEVEL Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Required secret variables (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-06 · self-declared |
| Transports (raw) | stdio, streamable-http, streamable-http Source: MCP-Register · collected on 2026-08-06 · self-declared |
| Path arguments (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-06 · self-declared |
| Repository (raw) | https://github.com/cyanheads/openfda-mcp-server Source: MCP-Register · collected on 2026-08-06 · self-declared |
| Package registries (raw) | npm, npm Source: MCP-Register · collected on 2026-08-06 · self-declared |
| Required secret headers (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Path environment variables (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Remote URLs (raw) | https://openfda.caseyjhand.com/mcp Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Remote hosts (raw) | openfda.caseyjhand.com Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Registry status message (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-16 · self-declared |
| First listed in the registry (raw) | 2026-10-04 Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Last changed in the registry (raw) | 2026-10-04 Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Schema version of the raw record (raw) | https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Delivery form (raw) | package and remote Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Repository platform (raw) | github Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Repository subfolder (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Package identifiers (raw) | @cyanheads/openfda-mcp-server Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Package versions (raw) | 0.8.0 Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Runtime hints (raw) | npx Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Environment variable formats (raw) | string Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Environment variable descriptions (raw) | 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. · MCP_AUTH_MODE=Authentication mode to use: 'none', 'jwt', or 'oauth'. · MCP_HTTP_ENDPOINT_PATH=The endpoint path for the MCP server. · MCP_HTTP_HOST=The hostname for the HTTP server. · MCP_HTTP_PORT=The port to run the HTTP server on. · MCP_LOG_LEVEL=Sets the minimum log level for output (e.g., 'debug', 'info', 'warn'). · MCP_TRANSPORT_TYPE=Selects the HTTP transport. · OPENFDA_API_KEY=Free API key from open.fda.gov — increases daily limit from 1K to 120K requests. · 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_BASE_URL=Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps. · 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_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_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_REFRESH_TIMEOUT_MS=Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset. Source: MCP-Register · collected on 2026-10-05 · self-declared |
| Icon formats (raw) | confirmed absent Source: MCP-Register · collected on 2026-08-16 · self-declared |
| Connection paths (source structure) | {"packages":[{"registryType":"npm","identifier":"@cyanheads/openfda-mcp-server","version":"0.8.0","runtimeHint":"npx","transport":"stdio","environment":[{"name":"OPENFDA_API_KEY","description":"Free API key from open.fda.gov — increases daily limit from 1K to 120K requests.","format":"string","required":false,"secret":false},{"name":"CANVAS_PROVIDER_TYPE","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_DATAFRAME_DROP_ENABLED","description":"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).","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_ENABLED","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_PATH","description":"Directory holding one SQLite file per mirrored dataset.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_REFRESH_CRON","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_FALLBACK_LIVE","description":"Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_REFRESH_TIMEOUT_MS","description":"Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_BASE_URL","description":"Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.","format":"string","required":false,"secret":false},{"name":"MCP_LOG_LEVEL","description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","required":false,"secret":false}],"additional_arguments_declared":false},{"registryType":"npm","identifier":"@cyanheads/openfda-mcp-server","version":"0.8.0","runtimeHint":"npx","transport":"streamable-http","environment":[{"name":"OPENFDA_API_KEY","description":"Free API key from open.fda.gov — increases daily limit from 1K to 120K requests.","format":"string","required":false,"secret":false},{"name":"MCP_TRANSPORT_TYPE","description":"Selects the HTTP transport.","format":"string","required":false,"secret":false},{"name":"MCP_HTTP_HOST","description":"The hostname for the HTTP server.","format":"string","required":false,"secret":false},{"name":"MCP_HTTP_PORT","description":"The port to run the HTTP server on.","format":"string","required":false,"secret":false},{"name":"MCP_HTTP_ENDPOINT_PATH","description":"The endpoint path for the MCP server.","format":"string","required":false,"secret":false},{"name":"MCP_AUTH_MODE","description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","required":false,"secret":false},{"name":"CANVAS_PROVIDER_TYPE","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_DATAFRAME_DROP_ENABLED","description":"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).","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_ENABLED","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_PATH","description":"Directory holding one SQLite file per mirrored dataset.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_REFRESH_CRON","description":"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.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_FALLBACK_LIVE","description":"Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_REFRESH_TIMEOUT_MS","description":"Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.","format":"string","required":false,"secret":false},{"name":"OPENFDA_MIRROR_BASE_URL","description":"Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.","format":"string","required":false,"secret":false},{"name":"MCP_LOG_LEVEL","description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","required":false,"secret":false}],"additional_arguments_declared":false}],"remotes":[{"url":"https://openfda.caseyjhand.com/mcp","transport":"streamable-http","headers":[]}]} Source: MCP-Register · collected on 2026-10-05 · self-declared |
Embed this badge
Paste this line into a README of your own. The badge states how many values the registry holds for the entry and when it last looked, and it links back to this page.
[](https://tracevero.com/mcp/io-github-cyanheads-openfda-mcp-server)
The image is drawn again on every request, so it always reports the current state while the pasted line stays as it is. It carries no rating and no traffic light – only the two measured figures.
Changes
| 2026-10-05 | Declared version: 0.7.9 → 0.8.0 |
|---|---|
| 2026-10-05 | Last changed in the registry (raw): 2026-09-22 → 2026-10-04 |
| 2026-10-05 | First listed in the registry (raw): 2026-09-22 → 2026-10-04 |
These are the 3 most recent changes to this entry. Full history
tracevero · https://tracevero.com/mcp/io-github-cyanheads-openfda-mcp-server