Skip to content
Squatch MCP

io.github.cyanheads/openfda-mcp-server

io.github.cyanheads/openfda-mcp-server

by io.github.cyanheads· v0.10.0Source: Official MCP Registry

All versions

VersionRegistry status
0.10.0latestActive
0.9.1Active
0.9.0Active
0.8.2Active
0.8.1Active
0.8.0Active
0.7.9Active
0.7.8Active
0.7.7Active
0.7.6Active
0.7.5Active
0.7.4Active
0.7.3Active
0.7.2Active
0.7.1Active
0.7.0Active
0.6.0Active
0.5.0Active
0.4.3Active
0.4.2Active
0.4.1Active
0.4.0Active
0.3.3Active
0.3.2Active
0.3.1Active
0.3.0Active
0.2.0Active
0.1.9Active
0.1.8Active
0.1.7Active
0.1.6Active
0.1.20Active
0.1.19Active
0.1.18Active
0.1.17Active
0.1.16Active
0.1.15Active
0.1.14Active
0.1.13Active
0.1.12Active
0.1.11Active
0.1.10Active

Version details

Version
0.10.0
Source
Source: Official MCP Registry
Published
Registry last updated
First observed by Squatch
Content fingerprint
88ba07c731e685e0e0e7053ad611d850fa432647baef92a6601d29448b7ad47e

Transports in this version

  • remotestreamable-httphttps://openfda.caseyjhand.com/mcpNo authentication
  • packagestdionpm @cyanheads/openfda-mcp-serverUnknown
  • packagestreamable-httpnpm @cyanheads/openfda-mcp-serverUnknown
Registry metadata (server.json, sanitized)
{
  "_meta": {
    "io.modelcontextprotocol.registry/official": {
      "status": "active",
      "isLatest": true,
      "updatedAt": "2026-11-11T07:56:06.5232Z",
      "publishedAt": "2026-11-11T07:56:06.5232Z",
      "statusChangedAt": "2026-11-11T07:56:06.5232Z"
    }
  },
  "server": {
    "name": "io.github.cyanheads/openfda-mcp-server",
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
    "remotes": [
      {
        "url": "https://openfda.caseyjhand.com/mcp",
        "type": "streamable-http"
      }
    ],
    "version": "0.10.0",
    "packages": [
      {
        "version": "0.10.0",
        "transport": {
          "type": "stdio"
        },
        "identifier": "@cyanheads/openfda-mcp-server",
        "runtimeHint": "npx",
        "registryType": "npm",
        "registryBaseUrl": "https://registry.npmjs.org",
        "environmentVariables": [
          {
            "name": "OPENFDA_API_KEY",
            "format": "string",
            "description": "Free API key from open.fda.gov — increases daily limit from 1K to 120K requests."
          },
          {
            "name": "OPENFDA_CLAMP_LIMITS",
            "format": "string",
            "default": "true",
            "description": "Clamp a limit above its endpoint's cap to that cap, with a notice naming the requested value and the cap. On by default; set to 'false' to reject such a limit instead and advertise the cap as the schema maximum."
          },
          {
            "name": "CANVAS_PROVIDER_TYPE",
            "format": "string",
            "default": "duckdb",
            "description": "DataCanvas staging, on by default: stage=true or a canvas_id on an openfda_search_* tool or openfda_lookup_ndc stages the matched records as a SQL table for the openfda_dataframe_* tools. The DuckDB binding ships with the server. Set to 'none' to disable."
          },
          {
            "name": "OPENFDA_DATAFRAME_DROP_ENABLED",
            "format": "string",
            "default": "false",
            "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)."
          },
          {
            "name": "OPENFDA_MIRROR_ENABLED",
            "format": "string",
            "default": "false",
            "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."
          },
          {
            "name": "OPENFDA_MIRROR_PATH",
            "format": "string",
            "default": "./data/openfda-mirror",
            "description": "Directory holding one SQLite file per mirrored dataset."
          },
          {
            "name": "OPENFDA_MIRROR_REFRESH_CRON",
            "format": "string",
            "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."
          },
          {
            "name": "OPENFDA_MIRROR_FALLBACK_LIVE",
            "format": "string",
            "default": "true",
            "description": "Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead."
          },
          {
            "name": "OPENFDA_MIRROR_REFRESH_TIMEOUT_MS",
            "format": "string",
            "default": "21600000",
            "description": "Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset."
          },
          {
            "name": "OPENFDA_MIRROR_BASE_URL",
            "format": "string",
            "default": "https://api.fda.gov",
            "description": "Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps."
          },
          {
            "name": "MCP_LOG_LEVEL",
            "format": "string",
            "default": "info",
            "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
          }
        ]
      },
      {
        "version": "0.10.0",
        "transport": {
          "url": "http://localhost:3010/mcp",
          "type": "streamable-http"
        },
        "identifier": "@cyanheads/openfda-mcp-server",
        "runtimeHint": "npx",
        "registryType": "npm",
        "registryBaseUrl": "https://registry.npmjs.org",
        "environmentVariables": [
          {
            "name": "OPENFDA_API_KEY",
            "format": "string",
            "description": "Free API key from open.fda.gov — increases daily limit from 1K to 120K requests."
          },
          {
            "name": "MCP_TRANSPORT_TYPE",
            "value": "http",
            "format": "string",
            "description": "Selects the HTTP transport."
          },
          {
            "name": "MCP_HTTP_HOST",
            "format": "string",
            "default": "127.0.0.1",
            "description": "The hostname for the HTTP server."
          },
          {
            "name": "MCP_HTTP_PORT",
            "format": "string",
            "default": "3010",
            "description": "The port to run the HTTP server on."
          },
          {
            "name": "MCP_HTTP_ENDPOINT_PATH",
            "format": "string",
            "default": "/mcp",
            "description": "The endpoint path for the MCP server."
          },
          {
            "name": "MCP_AUTH_MODE",
            "format": "string",
            "default": "none",
            "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
          },
          {
            "name": "OPENFDA_CLAMP_LIMITS",
            "format": "string",
            "default": "true",
            "description": "Clamp a limit above its endpoint's cap to that cap, with a notice naming the requested value and the cap. On by default; set to 'false' to reject such a limit instead and advertise the cap as the schema maximum."
          },
          {
            "name": "CANVAS_PROVIDER_TYPE",
            "format": "string",
            "default": "duckdb",
            "description": "DataCanvas staging, on by default: stage=true or a canvas_id on an openfda_search_* tool or openfda_lookup_ndc stages the matched records as a SQL table for the openfda_dataframe_* tools. The DuckDB binding ships with the server. Set to 'none' to disable."
          },
          {
            "name": "OPENFDA_DATAFRAME_DROP_ENABLED",
            "format": "string",
            "default": "false",
            "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)."
          },
          {
            "name": "OPENFDA_MIRROR_ENABLED",
            "format": "string",
            "default": "false",
            "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."
          },
          {
            "name": "OPENFDA_MIRROR_PATH",
            "format": "string",
            "default": "./data/openfda-mirror",
            "description": "Directory holding one SQLite file per mirrored dataset."
          },
          {
            "name": "OPENFDA_MIRROR_REFRESH_CRON",
            "format": "string",
            "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."
          },
          {
            "name": "OPENFDA_MIRROR_FALLBACK_LIVE",
            "format": "string",
            "default": "true",
            "description": "Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead."
          },
          {
            "name": "OPENFDA_MIRROR_REFRESH_TIMEOUT_MS",
            "format": "string",
            "default": "21600000",
            "description": "Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset."
          },
          {
            "name": "OPENFDA_MIRROR_BASE_URL",
            "format": "string",
            "default": "https://api.fda.gov",
            "description": "Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps."
          },
          {
            "name": "MCP_LOG_LEVEL",
            "format": "string",
            "default": "info",
            "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
          }
        ]
      }
    ],
    "repository": {
      "url": "https://github.com/cyanheads/openfda-mcp-server",
      "source": "github"
    },
    "description": "Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP."
  }
}