返回市场
食物追踪器-mcp

食物追踪器-mcp

作者:nagarjun2265 星标更新:2025-03-30

项目介绍

食物追踪器 MCP

这是一个用于跟踪食物摄入、分析营养成分并管理饮食限制的模型上下文协议(MCP)服务器。

概述

食物追踪器 MCP 与 OpenFoodFacts 数据库集成,提供一个全面的食物追踪系统,具有以下功能:

  • 通过条形码或关键词搜索食品产品
  • 分析食品产品的营养成分
  • 根据特定的营养目标和饮食限制创建餐食计划
  • 通过记录餐食来跟踪食物摄入
  • 管理饮食限制和过敏反应
  • 检查产品是否符合用户的饮食限制
  • 查看食物日志和营养总结

安装

先决条件

  • Python 3.8 或更高版本
  • pip(Python 包管理器)

设置

  1. 克隆仓库或下载 food_tracker.py 文件:
# 选项 1:克隆仓库(如果可用)
git clone https://github.com/yourusername/food-tracker-mcp.git
cd food-tracker-mcp

# 选项 2:创建新目录并将文件保存在那里
mkdir food-tracker-mcp
cd food-tracker-mcp
# 将 food_tracker.py 复制到此目录中
  1. 创建虚拟环境(推荐):
python -m venv venv
  1. 激活虚拟环境:
# 在 Windows 上
venv\Scripts\activate

# 在 macOS/Linux 上
source venv/bin/activate
  1. 安装所需的依赖项:
pip install httpx fastmcp pydantic
  1. 确保数据目录已创建(脚本会在首次运行时自动创建这些目录):
mkdir -p data/users data/logs

运行 MCP 服务器

使用以下命令运行服务器:

python food_tracker.py

服务器启动后即可接收命令。

使用 Claude

要将此 MCP 与 Claude 结合使用,您需要将其注册到 Claude 平台上。以下是操作步骤:

  1. 按照 Anthropic 的文档注册您的 MCP:

  2. 注册完成后,您可以通过调用 MCP 的工具与食物追踪器进行交互。

与 Claude 一起使用的示例提示:

  • "扫描这个条形码查看营养信息:3270190119357"
  • "在我的饮食限制中添加花生过敏"
  • "记录我早餐吃了能量棒"
  • "搜索包含 '燕麦' 的产品"
  • "检查这个产品是否符合我的饮食限制"
  • "显示我今天的饮食日志"

可用工具

此 MCP 提供以下工具,Claude 可以访问:

1. get_product_by_barcode

使用条形码获取食品产品的详细信息。

参数:

  • barcode:产品条形码(EAN、UPC 等)

2. search_products

按名称或描述搜索食品产品。

参数:

  • query:搜索查询
  • page:分页的页数(默认:1)
  • page_size:每页的结果数量(默认:10)

3. manage_user_restrictions

管理用户的饮食限制。

参数:

  • user_id:用户的唯一标识符
  • action:执行的操作(get、add、remove、update)
  • restriction_type:限制类型(过敏原、饮食、成分、医疗、偏好)
  • restriction_value:具体的限制值(例如,“花生”、“素食”)
  • severity:限制的严重程度(避免、限制、致命)
  • notes:关于限制的附加说明

4. check_product_compatibility

检查产品是否符合用户的饮食限制。

参数:

  • user_id:用户的唯一标识符
  • barcode:要检查的产品条形码

5. analyze_nutrition

分析食品产品的营养成分。

参数:

  • barcode:产品条形码

6. log_food_consumption

记录用户的食品摄入。

参数:

  • user_id:用户的唯一标识符
  • barcode:产品条形码
  • quantity:摄入量(默认:1份)
  • meal_type:餐食类型(早餐、午餐、晚餐、小吃)

7. get_user_food_log

获取用户在特定日期的食物日志。

参数:

  • user_id:用户的唯一标识符
  • date:日期,格式为 YYYY-MM-DD(默认为今天)

示例使用场景

设置具有限制的新用户

  1. 添加麸质过敏:
manage_user_restrictions(
    user_id="user123",
    action="add",
    restriction_type="allergen", 
    restriction_value="gluten",
    severity="avoid",
    notes="避免所有小麦制品"
)
  1. 添加素食饮食:
manage_user_restrictions(
    user_id="user123",
    action="add",
    restriction_type="diet", 
    restriction_value="vegetarian"
)

跟踪食物摄入

  1. 扫描产品并记录:
# 首先获取产品信息
product = get_product_by_barcode(barcode="3270190119357")

# 然后记录摄入
log_food_consumption(
    user_id="user123",
    barcode="3270190119357",
    quantity=1,
    meal_type="breakfast"
)
  1. 检查与限制的兼容性:
check_product_compatibility(
    user_id="user123",
    barcode="3270190119357"
)

分析营养信息

  1. 获取详细的营养分析:
analyze_nutrition(barcode="3270190119357")
  1. 查看食物日志和营养总计:
get_user_food_log(user_id="user123")

数据存储

食物追踪器 MCP 将数据本地存储在 JSON 文件中:

  • 用户资料:./data/users/{user_id}.json
  • 食物日志:./data/logs/{user_id}_{date}.json

扩展 MCP

您可以扩展 MCP 通过:

  1. 添加新的营养分析功能
  2. 实现更详细的饮食计划和目标
  3. 根据可用食材添加食谱建议
  4. 创建营养数据报告和可视化
  5. 实现分享进度的社会功能

故障排除

  • 如果遇到连接问题,请确保有互联网访问权限,因为 MCP 会连接到 OpenFoodFacts API
  • 如果产品信息不完整,这可能是由于 OpenFoodFacts 数据库的限制
  • 对于任何数据持久性问题,请检查数据目录的权限