食品数据API服务

一个提供美国农业部食品数据中央API访问的MCP服务器,支持食品搜索、营养信息获取和分页结果。

  • by jlfwong
  • TypeScript
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 jlfwong/food-data-central-mcp-server

使用说明

食品数据中心MCP服务器

这是一个模型上下文协议(MCP)服务器,用于公开API对 这 美国农业部食品数据中心API.

特性

  • 在美国农业部食品数据中心数据库中搜索食品
  • 获取食品营养信息
  • 分页结果
  • 支持多种数据类型(基础、SR遗留、调查、品牌)

设置

  1. 克隆存储库
  2. 安装依赖项:
    npm install
    
  3. 构建项目:
    npm run build
    

运行服务器

服务器使用stdio传输,这意味着它被设计为由MCP客户端作为子进程运行。要直接运行它:

# Set the USDA API key as an environment variable
export USDA_API_KEY=your-api-key-here
npm start

对于热重载开发:

# Set the USDA API key as an environment variable
export USDA_API_KEY=your-api-key-here
npm run dev

与Claude Desktop一起使用

要将此MCP服务器与Claude Desktop一起使用:

  1. 打开克劳德桌面设置:

    • 在macOS上:单击Claude菜单并选择“设置…”
    • 在Windows上:单击Claude菜单并选择“设置…”
  2. 在“设置”窗格中,单击左侧栏中的“开发人员”,然后单击“编辑配置”

  3. 这将在以下位置创建或打开配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  4. 将Food Data Central 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> 使用实际的美国农业部API密钥。

    注意:如果你在Windows上,你可能需要调整PATH值以包含你的npm全局安装目录。

  5. 保存配置文件并重新启动Claude Desktop

  6. 重新启动后,您应该在输入框的右下角看到一个锤子图标。点击查看可用工具。

现在克劳德将能够通过这个MCP服务器访问食品数据中心API。你可以让克劳德搜索食物、获取营养信息或检索详细的食物数据。

MCP资源和工具

资源

  • food://details -通过ID获取特定食物的详细信息

    • 查询参数:
      • fdcId:食品数据中心ID(必填)
      • format:可选。“删节”表示一组删节的元素,“完整”表示所有元素(默认)
      • nutrients:可选。最多25个营养素编号列表(逗号分隔)
  • food://foods -使用输入的FDC ID获取多种食品的详细信息

    • 查询参数:
      • fdcIds:多个FDC ID列表(必填,逗号分隔)
      • format:可选。“删节”表示一组删节的元素,“完整”表示所有元素(默认)
      • 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 Legacy&pageSize=10&pageNumber=1

使用MCP工具搜索食物:

{
  "name": "search-foods",
  "arguments": {
    "query": "apple",
    "dataType": ["Foundation", "SR Legacy"],
    "pageSize": 10,
    "pageNumber": 1
  }
}