使用说明

项目简介

Nutrient_db_MCP 项目是一个 MCP 服务器的实现,它允许用户通过 Claude Desktop 或其他兼容 MCP 协议的客户端访问美国农业部 (USDA) 的食品营养数据库。该服务器提供了一系列资源和工具,使得用户可以查询食物的营养成分、进行营养分析以及查找符合特定营养需求的食物。

主要功能点

  • USDA 营养数据访问: 提供对全面 USDA 食品营养数据库的访问接口。
  • 食物搜索与过滤: 支持按名称、营养成分和数据质量等条件搜索和过滤食物。
  • 详细食物信息查询: 能够获取特定食物的完整营养信息,包括宏量营养素、微量营养素和常用份量信息。
  • 营养密度分析: 提供基于营养密度的食物排名和分析功能。
  • 工具调用: 内置多种工具,如食物搜索、营养分析和查找营养密集型食物,可通过 MCP 客户端调用。
  • Claude Desktop 集成: 专为与 Claude Desktop 等 MCP 客户端无缝集成而设计。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/LoggerApp/Nutrient_db_MCP.git
    cd Nutrient_db_MCP
  2. 创建并激活虚拟环境 (推荐):

    python -m venv venv
    source venv/bin/activate  # Unix/macOS
    # 或
    venv\Scripts\activate  # Windows
  3. 安装依赖:

    pip install -r requirements.txt
  4. 下载 USDA 数据:

    • 访问 FoodData Central
    • 下载 "Full Download of All Data Types" (CSV 格式)。
    • 将下载的 CSV 文件解压到 'data/FoodData_Central_csv' 目录 (需要手动创建 'data' 目录)。
  5. 初始化数据库:

    python src/usda_mcp_server/setup_nutrient_db.py --db-path ./usda.db

    这个过程可能需要较长时间,取决于硬件性能。

服务器配置

为了让 MCP 客户端 (例如 Claude Desktop) 连接到 Nutrient_db_MCP 服务器,需要在客户端的配置文件中添加服务器信息。以 Claude Desktop 为例,编辑其配置文件 (通常是 'claude_desktop_config.json'),在 'mcpServers' 字段下添加如下配置:

{
  "mcpServers": {
    "usda_nutrition": { // 服务器名称,可以自定义
      "command": "python", // 启动服务器的命令,这里使用 python 解释器
      "args": [ // 传递给启动命令的参数
        "src/usda_mcp_server/server.py", // 服务器脚本路径
        "--db-path", // 数据库路径参数
        "./usda.db"  // 数据库文件路径,需要与初始化数据库步骤中指定的路径一致
      ]
    }
  }
}

注意:

  • '"command"' 和 '"args"' 字段指定了如何启动 Nutrient_db_MCP 服务器。
  • '"args"' 数组中的参数 '--db-path ./usda.db' 指定了数据库文件的路径。请确保该路径与您在初始化数据库步骤中使用的路径一致。
  • '"usda_nutrition"' 是您为该服务器自定义的名称,在 Claude Desktop 中可以通过这个名称来引用该服务器。

基本使用方法

配置完成后,在 Claude Desktop 中,您就可以通过以下方式与 Nutrient_db_MCP 服务器交互:

  • 提问示例: 在 Claude Desktop 中,您可以提出类似以下的问题,以利用 Nutrient_db_MCP 服务器的功能:

    哪些食物富含维生素D?
    给我一份低碳水化合物、高蛋白的食谱建议。
    查询香蕉的营养成分。
  • 资源 URI 示例: 您也可以直接在 Claude Desktop 中使用资源 URI 来访问数据:

    • 'usda://foods/list?limit=10&category=Fruits%20and%20Vegetables' (列出 10 种水果和蔬菜)
    • 'usda://foods/170537' (获取 FDC ID 为 170537 的食物的详细信息,例如香蕉)
    • 'usda://nutrients/list' (列出所有可用的营养素)

通过这些方式,您可以利用 Nutrient_db_MCP 服务器提供的营养数据和工具,在 Claude Desktop 中进行营养相关的查询和分析。

信息

分类

数据库与文件