本项目是一个模型上下文协议(MCP)服务器,借助 API 实现对 美国农业部的食品数据中央 API 的访问,可帮助用户便捷地获取食品相关数据。
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
要将此 MCP 服务器与 Claude Desktop 一起使用,可按以下步骤操作:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"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": ""
}
}
}
}
替换 /path/to/food-data-central-mcp-server 为您仓库的实际绝对路径,并将 换为您的实际 USDA API 密钥。
注意:如果您使用的是 Windows,可能需要调整 PATH 值以包含 npm 全局安装目录。使用 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"
}
}
food://details - 获取特定食品的详细信息(ID)
fdcId: 食品数据中央 ID(必需)format: 可选。'abridged' 表示缩略版本,'full' 表示所有元素(默认)nutrients: 可选。最多 25 个营养素编号列表(逗号分隔)food://foods - 使用输入的 FDC ID 获取多个食品的详细信息
fdcIds: 以逗号分隔的字符串,包含一个或多个 FDC IDsfood://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)