# 安装 io.github.cyanheads/openfda-mcp-server

- 类型: MCP 工具
- 说明: 查询 FDA 药品、食品、器械与召回数据，支持研究、分析与接口集成。
- 仓库: https://github.com/cyanheads/openfda-mcp-server
- ⚠ 安全: 整体风险以需留意为主：该工具来自官方 Registry、开源且近期有维护，但会本地运行并需要 API Key。需特别注意其声明的远程端点为自定义域名 openfda.caseyjhand.com，而非典型的 FDA 官方域名，用户查询内容可能经第三方服务转发。

## 方式一 · 一键代装（复制提示词让 AI 代劳）

### Claude Code
```
请帮我安装 askskill 上的 "io.github.cyanheads/openfda-mcp-server" MCP 服务：
执行：claude mcp add 'io-github-cyanheads-openfda-mcp-server' -- npx -y @cyanheads/openfda-mcp-server
```

### Codex
```
请帮我安装 askskill 上的 "io.github.cyanheads/openfda-mcp-server" MCP 服务：
在 ~/.codex/config.toml 中添加：
[mcp_servers.io-github-cyanheads-openfda-mcp-server]
command = "npx"
args = ["-y","@cyanheads/openfda-mcp-server"]
然后重启 Codex 生效
```

### Cursor
```
请帮我安装 askskill 上的 "io.github.cyanheads/openfda-mcp-server" MCP 服务：
在 .cursor/mcp.json 的 "mcpServers" 中添加：
"io-github-cyanheads-openfda-mcp-server": { "command": "npx", "args": ["-y","@cyanheads/openfda-mcp-server"] }
然后在 Cursor 设置 > MCP 中启用
```

## 方式二 · 命令行安装（原生命令与配置）

### Claude Code
```bash
claude mcp add --env OPENFDA_API_KEY=YOUR_VALUE --env CANVAS_PROVIDER_TYPE=YOUR_VALUE --env OPENFDA_DATAFRAME_DROP_ENABLED=YOUR_VALUE --env OPENFDA_MIRROR_ENABLED=YOUR_VALUE --env OPENFDA_MIRROR_PATH=YOUR_VALUE --env OPENFDA_MIRROR_REFRESH_CRON=YOUR_VALUE --env OPENFDA_MIRROR_FALLBACK_LIVE=YOUR_VALUE --env OPENFDA_MIRROR_REFRESH_TIMEOUT_MS=YOUR_VALUE --env OPENFDA_MIRROR_BASE_URL=YOUR_VALUE --env MCP_LOG_LEVEL=YOUR_VALUE --transport stdio io-github-cyanheads-openfda-mcp-server -- npx -y @cyanheads/openfda-mcp-server
```
需要环境变量：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

### Codex
```bash
codex mcp add --env OPENFDA_API_KEY=YOUR_VALUE --env CANVAS_PROVIDER_TYPE=YOUR_VALUE --env OPENFDA_DATAFRAME_DROP_ENABLED=YOUR_VALUE --env OPENFDA_MIRROR_ENABLED=YOUR_VALUE --env OPENFDA_MIRROR_PATH=YOUR_VALUE --env OPENFDA_MIRROR_REFRESH_CRON=YOUR_VALUE --env OPENFDA_MIRROR_FALLBACK_LIVE=YOUR_VALUE --env OPENFDA_MIRROR_REFRESH_TIMEOUT_MS=YOUR_VALUE --env OPENFDA_MIRROR_BASE_URL=YOUR_VALUE --env MCP_LOG_LEVEL=YOUR_VALUE io-github-cyanheads-openfda-mcp-server -- npx -y @cyanheads/openfda-mcp-server
```
配置文件 ~/.codex/config.toml：
```toml
[mcp_servers.io-github-cyanheads-openfda-mcp-server]
command = "npx"
args = ["-y","@cyanheads/openfda-mcp-server"]

[mcp_servers.io-github-cyanheads-openfda-mcp-server.env]
OPENFDA_API_KEY = "YOUR_VALUE"
CANVAS_PROVIDER_TYPE = "YOUR_VALUE"
OPENFDA_DATAFRAME_DROP_ENABLED = "YOUR_VALUE"
OPENFDA_MIRROR_ENABLED = "YOUR_VALUE"
OPENFDA_MIRROR_PATH = "YOUR_VALUE"
OPENFDA_MIRROR_REFRESH_CRON = "YOUR_VALUE"
OPENFDA_MIRROR_FALLBACK_LIVE = "YOUR_VALUE"
OPENFDA_MIRROR_REFRESH_TIMEOUT_MS = "YOUR_VALUE"
OPENFDA_MIRROR_BASE_URL = "YOUR_VALUE"
MCP_LOG_LEVEL = "YOUR_VALUE"
```
需要环境变量：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

### Cursor
配置文件 .cursor/mcp.json：
```json
{
  "mcpServers": {
    "io-github-cyanheads-openfda-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openfda-mcp-server"
      ],
      "env": {
        "OPENFDA_API_KEY": "YOUR_VALUE",
        "CANVAS_PROVIDER_TYPE": "YOUR_VALUE",
        "OPENFDA_DATAFRAME_DROP_ENABLED": "YOUR_VALUE",
        "OPENFDA_MIRROR_ENABLED": "YOUR_VALUE",
        "OPENFDA_MIRROR_PATH": "YOUR_VALUE",
        "OPENFDA_MIRROR_REFRESH_CRON": "YOUR_VALUE",
        "OPENFDA_MIRROR_FALLBACK_LIVE": "YOUR_VALUE",
        "OPENFDA_MIRROR_REFRESH_TIMEOUT_MS": "YOUR_VALUE",
        "OPENFDA_MIRROR_BASE_URL": "YOUR_VALUE",
        "MCP_LOG_LEVEL": "YOUR_VALUE"
      }
    }
  }
}
```
一键安装：cursor://anysphere.cursor-deeplink/mcp/install?name=io-github-cyanheads-openfda-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3BlbmZkYS1tY3Atc2VydmVyIl0sImVudiI6eyJPUEVORkRBX0FQSV9LRVkiOiJZT1VSX1ZBTFVFIiwiQ0FOVkFTX1BST1ZJREVSX1RZUEUiOiJZT1VSX1ZBTFVFIiwiT1BFTkZEQV9EQVRBRlJBTUVfRFJPUF9FTkFCTEVEIjoiWU9VUl9WQUxVRSIsIk9QRU5GREFfTUlSUk9SX0VOQUJMRUQiOiJZT1VSX1ZBTFVFIiwiT1BFTkZEQV9NSVJST1JfUEFUSCI6IllPVVJfVkFMVUUiLCJPUEVORkRBX01JUlJPUl9SRUZSRVNIX0NST04iOiJZT1VSX1ZBTFVFIiwiT1BFTkZEQV9NSVJST1JfRkFMTEJBQ0tfTElWRSI6IllPVVJfVkFMVUUiLCJPUEVORkRBX01JUlJPUl9SRUZSRVNIX1RJTUVPVVRfTVMiOiJZT1VSX1ZBTFVFIiwiT1BFTkZEQV9NSVJST1JfQkFTRV9VUkwiOiJZT1VSX1ZBTFVFIiwiTUNQX0xPR19MRVZFTCI6IllPVVJfVkFMVUUifX0
需要环境变量：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
