食品追踪器MCP
用于跟踪食物消耗、分析营养和管理饮食限制的模型上下文协议(MCP)服务器。
概述
Food Tracker MCP与OpenFoodFacts数据库集成,提供具有以下功能的全面食品跟踪系统:
- 按条形码或关键字搜索食品
- 分析食品的营养成分
- 根据特定的营养目标和饮食限制制定膳食计划
- 通过膳食记录跟踪食物消耗
- 管理饮食限制和过敏
- 检查产品与用户限制的兼容性
- 查看食物日志和营养摘要
安装
先决条件
- Python 3.8或更高版本
pip(Python包管理器)
设置
- 克隆存储库或下载
food_tracker.py文件:
# Option 1: Clone the repository (if available)
git clone https://github.com/yourusername/food-tracker-mcp.git
cd food-tracker-mcp
# Option 2: Create a new directory and save the file there
mkdir food-tracker-mcp
cd food-tracker-mcp
# Copy food_tracker.py into this directory- 创建虚拟环境(推荐):
python -m venv venv- 激活虚拟环境:
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate- 安装所需的依赖项:
pip install httpx fastmcp pydantic- 确保已创建数据目录(脚本将在首次运行时自动执行此操作):
mkdir -p data/users data/logs运行MCP服务器
使用以下命令运行服务器:
python food_tracker.py服务器将启动并准备好接收命令。
与克劳德一起使用
要在Claude中使用此MCP,您需要在Claude平台上注册它。操作方法如下:
- 按照Anthropic的文件注册您的MCP:
- 访问https://console.anthropic.com/mcps或您Anthropic帐户中的相关部分 - 通过提供必要的信息和终点来注册食品跟踪器MCP
- 注册后,您可以通过调用MCP的工具,通过Claude与Food Tracker进行交互。
与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:要执行的操作(获取、添加、删除、更新)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格式的日期(默认为今天)
示例使用场景
设置具有限制的新用户
- 添加麸质过敏:
manage_user_restrictions(
user_id="user123",
action="add",
restriction_type="allergen",
restriction_value="gluten",
severity="avoid",
notes="Avoid all wheat products"
)- 添加素食:
manage_user_restrictions(
user_id="user123",
action="add",
restriction_type="diet",
restriction_value="vegetarian"
)追踪食物消费
- 扫描产品并记录:
# First get product info
product = get_product_by_barcode(barcode="3270190119357")
# Then log consumption
log_food_consumption(
user_id="user123",
barcode="3270190119357",
quantity=1,
meal_type="breakfast"
)- 检查与限制的兼容性:
check_product_compatibility(
user_id="user123",
barcode="3270190119357"
)分析营养信息
- 获取详细的营养分析:
analyze_nutrition(barcode="3270190119357")- 查看食物记录和营养总量:
get_user_food_log(user_id="user123")数据存储
Food Tracker MCP在本地以JSON文件存储数据:
- 用户配置文件:
./data/users/{user_id}.json - 食物日志:
./data/logs/{user_id}_{date}.json
扩展MCP
您可以通过以下方式扩展MCP:
- 添加新的营养分析功能
- 实施更详细的饮食计划和目标
- 根据可用成分添加食谱建议
- 创建营养数据的报告和可视化
- 实施社交功能以分享进展
故障排除
- 如果遇到连接问题,请确保MCP连接到OpenFoodFacts API时您可以访问互联网
- 如果产品信息不完整,这可能是由于OpenFoodFacts数据库的限制
- 对于任何数据持久性问题,请检查数据目录的权限
