article
README
🚀 美国农业部食品数据中央 MCP 服务器
本项目是一个模型上下文协议(MCP)服务器,借助 API 实现对 美国农业部的食品数据中央 API 的访问,可帮助用户便捷地获取食品相关数据。
✨ 主要特性
- 可在 USDA 食品数据中央数据库中搜索食物。
- 能够访问食物的营养信息。
- 支持分页结果展示。
- 支持多种数据类型,包括基础、SR Legacy、调查、品牌类型。
📦 安装指南
- 克隆仓库。
- 安装依赖:
npm install - 构建项目:
npm run build
💻 使用示例
基础用法
运行服务器
该服务器使用 stdio 传输,设计为由 MCP 客户端作为子进程运行。若要直接运行:
# 设置 USDA API 密钥为环境变量
export USDA_API_KEY=your-api-key-here
npm start
开发时带有热重载:
# 设置 USDA API 密钥为环境变量
export USDA_API_KEY=your-api-key-here
npm run dev
与 Claude Desktop 使用
要将此 MCP 服务器与 Claude Desktop 一起使用,可按以下步骤操作:
- 打开 Claude Desktop 设置:
- 在 macOS 上:点击 Claude 菜单,选择“设置...”
- 在 Windows 上:点击 Claude 菜单,选择“设置...”
- 在设置窗格中,点击左侧栏的“开发者”,然后点击“编辑配置”。
- 这将创建或打开配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 将食品数据中央 MCP 服务器添加到配置文件中:
替换{ "mcpServers": { "food-data-central": { "command": "npx", "args": ["tsx", "/path/to/food-data-central-mcp-server/src/index.ts"], "env": { "PATH": "/opt/homebrew/bin", "USDA_API_KEY": "<INSERT KEY HERE>" } } } }/path/to/food-data-central-mcp-server为您仓库的实际绝对路径,并将<INSERT KEY HERE>换为您的实际 USDA API 密钥。 注意:如果您使用的是 Windows,可能需要调整 PATH 值以包含 npm 全局安装目录。 - 保存配置文件并重新启动 Claude Desktop。
- 重新启动后,您应该会在输入框的右下角看到一个锤子图标。点击它即可查看可用工具。
高级用法
使用 MCP 资源获取食品详细信息:
food://details?fdcId=2345678&format=full
使用 MCP 资源获取多个食品的详细信息:
food://foods?fdcIds=534358,373052,616350
使用 MCP 资源获取食品列表:
food://list?dataType=Foundation,SR Legacy&pageSize=10&pageNumber=1
使用 MCP 工具搜索食物:
{
"name": "search-foods",
"arguments": {
"query": "apple",
"dataType": ["Foundation", "SR Legacy"],
"pageSize": 10,
"pageNumber": 1,
"brandOwner": "Some Brand Owner",
"tradeChannel": "Some Trade Channel",
"startDate": "2023-01-01",
"endDate": "2023-12-31"
}
}
📚 详细文档
MCP 资源和工具
资源
food://details- 获取特定食品的详细信息(ID)- 查询参数:
fdcId: 食品数据中央 ID(必需)format: 可选。'abridged' 表示缩略版本,'full' 表示所有元素(默认)nutrients: 可选。最多 25 个营养素编号列表(逗号分隔)
- 查询参数:
food://foods- 使用输入的 FDC ID 获取多个食品的详细信息- 查询参数:
fdcIds: 以逗号分隔的字符串,包含一个或多个 FDC IDs
- 查询参数:
food://list- 获取食品列表- 查询参数:
dataType: 数据类型(例如 Foundation, SR Legacy)pageSize: 每页显示的条目数pageNumber: 当前页码
- 查询参数:
工具
search-foods: 搜索食物- 参数:
query: 要搜索的食物名称dataType: 受支持的数据类型列表(例如 Foundation, SR Legacy)pageSize: 每页显示的条目数pageNumber: 当前页码brandOwner: 特定品牌所有者(仅限品牌食品)tradeChannel: 包含指定贸易渠道的食物startDate: 发布日期起始(格式:YYYY-MM-DD)endDate: 发布日期结束(格式:YYYY-MM-DD)
- 参数:
Scan to join WeChat group