Food Tracker MCP

Food Tracker MCP

一个简单的模型上下文协议(MCP)服务器,将 Claude AI 与 OpenFoodFacts 数据库连接起来,以创建一个智能营养助手。

nagarjun226

研究与数据
访问服务器

README

食品追踪器 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:

    • 访问 https://console.anthropic.com/mcps 或 Anthropic 帐户中的相关部分
    • 通过提供必要的信息和端点来注册食品追踪器 MCP
  2. 注册后,您可以通过调用 MCP 的工具与 Claude 上的食品追踪器进行交互。

与 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 数据库的限制
  • 对于任何数据持久性问题,请检查数据目录的权限

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python