使用说明
项目简介
Nutrient_db_MCP 项目是一个 MCP 服务器的实现,它允许用户通过 Claude Desktop 或其他兼容 MCP 协议的客户端访问美国农业部 (USDA) 的食品营养数据库。该服务器提供了一系列资源和工具,使得用户可以查询食物的营养成分、进行营养分析以及查找符合特定营养需求的食物。
主要功能点
- USDA 营养数据访问: 提供对全面 USDA 食品营养数据库的访问接口。
- 食物搜索与过滤: 支持按名称、营养成分和数据质量等条件搜索和过滤食物。
- 详细食物信息查询: 能够获取特定食物的完整营养信息,包括宏量营养素、微量营养素和常用份量信息。
- 营养密度分析: 提供基于营养密度的食物排名和分析功能。
- 工具调用: 内置多种工具,如食物搜索、营养分析和查找营养密集型食物,可通过 MCP 客户端调用。
- Claude Desktop 集成: 专为与 Claude Desktop 等 MCP 客户端无缝集成而设计。
安装步骤
-
克隆仓库:
git clone https://github.com/LoggerApp/Nutrient_db_MCP.git cd Nutrient_db_MCP -
创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # Unix/macOS # 或 venv\Scripts\activate # Windows -
安装依赖:
pip install -r requirements.txt -
下载 USDA 数据:
- 访问 FoodData Central。
- 下载 "Full Download of All Data Types" (CSV 格式)。
- 将下载的 CSV 文件解压到 'data/FoodData_Central_csv' 目录 (需要手动创建 'data' 目录)。
-
初始化数据库:
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 中进行营养相关的查询和分析。
信息
分类
数据库与文件