jlfwong
服务介绍
Food Data Central MCP 服务器
这是一个用于访问 USDA 的 FoodData Central API 的 Model Context Protocol (MCP) 服务器。
功能
- 在 USDA FoodData Central 数据库中搜索食物
- 访问食物营养信息
- 分页结果
- 支持多种数据类型(Foundation、SR Legacy、Survey、Branded)
设置
-
克隆仓库
-
安装依赖项:
bash
npm install -
构建项目:
bash
npm run build
运行服务器
该服务器使用 stdio 传输,这意味着它被设计为由 MCP 客户端作为子进程运行。要直接运行:
bash
将 USDA API 密钥设置为环境变量
export USDA_API_KEY=your-api-key-here
npm start
开发时启用热重载:
bash
将 USDA API 密钥设置为环境变量
export USDA_API_KEY=your-api-key-here
npm run dev
与 Claude Desktop 一起使用
要将此 MCP 服务器与 Claude Desktop 一起使用:
-
打开 Claude Desktop 设置:
- 在 macOS 上:点击 Claude 菜单并选择 "Settings..."
- 在 Windows 上:点击 Claude 菜单并选择 "Settings..."
-
在设置面板中,点击左侧栏中的 "Developer",然后点击 "Edit Config"
-
这将在以下位置创建或打开一个配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json
- macOS:
-
将 Food Data Central MCP 服务器添加到配置文件中:
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替换为此仓库的绝对路径,并将<INSERT KEY HERE>替换为您的实际 USDA API 密钥。注意:如果您在 Windows 上,可能需要调整 PATH 值以包含您的 npm 全局安装目录。
-
保存配置文件并重启 Claude Desktop
-
重启后,您应该会在输入框右下角看到一个锤子图标。点击它以查看可用工具。
现在 Claude 可以通过这个 MCP 服务器访问 Food Data Central API。您可以要求 Claude 搜索食物、获取营养信息或检索详细的食物数据。
MCP 资源和工具
资源
-
food://details- 通过 ID 获取特定食物的详细信息- 查询参数:
fdcId: Food Data Central ID(必填)format: 可选。abridged表示简略元素集,full表示所有元素(默认值)nutrients: 可选。最多 25 个营养素编号(逗号分隔)
- 查询参数:
-
food://foods- 使用输入的 FDC ID 获取多个食物项目的详细信息- 查询参数:
fdcIds: 多个 FDC ID 列表(必填,逗号分隔)format: 可选。abridged表示简略元素集,full表示所有元素(默认值)nutrients: 可选。最多 25 个营养素编号(逗号分隔)
- 查询参数:
-
food://list- 获取分页的食物列表- 查询参数:
dataType: 可选。按特定数据类型过滤(逗号分隔列表)pageSize: 可选。返回的最大结果数(默认值:50)pageNumber: 可选。要检索的页码(默认值:1)sortBy: 可选。排序字段sortOrder: 可选。排序顺序,"asc" 或 "desc"
- 查询参数:
工具
search-foods- 使用关键词搜索食物- 参数:
query: 用于查找食物的搜索词(必填)dataType: 可选。按特定数据类型过滤(字符串数组)pageSize: 可选。返回的最大结果数(默认值:50)pageNumber: 可选。要检索的页码(默认值:1)-sortBy: 可选。用于排序的字段
- 参数:
sortOrder: 可选。排序顺序,"asc" 或 "desc"brandOwner: 可选。根据食品的品牌所有者进行过滤(仅适用于品牌食品)tradeChannel: 可选。过滤包含任何指定销售渠道的食品startDate: 可选。过滤在此日期或之后发布的食品(格式:YYYY-MM-DD)endDate: 可选。过滤在此日期或之前发布的食品(格式:YYYY-MM-DD)
示例用法
使用 MCP 资源获取食品详情:
food://details?fdcId=2345678&format=full
使用 MCP 资源获取多个食品:
food://foods?fdcIds=534358,373052,616350
使用 MCP 资源获取食品列表:
food://list?dataType=Foundation,SR%20Legacy&pageSize=10&pageNumber=1
使用 MCP 工具搜索食品:
json
{
"name": "search-foods",
"arguments": {
"query": "apple",
"dataType": ["Foundation", "SR Legacy"],
"pageSize": 10,
"pageNumber": 1
}
}