← 返回目录
M

MyFitnessPal MCP Server

社区
让 AI 助手直接读写你的 MyFitnessPal 饮食与健康数据
GitHub 源仓库 ↗
★ 53 Stars 分类 · 其他 热门
51FMRS · D

这是一个功能覆盖较广的本地 MyFitnessPal MCP 服务器:20 个工具涵盖饮食日记读写、食物搜索、自定义食物管理、体重等测量、运动、营养目标、饮水量、营养报告和断食写入,并支持从浏览器自动发现会话 Cookie。但它并非官方项目:MyFitnessPal 没有公开 API,读取靠网页抓取,写入依赖未公开且随时可能变更的内部接口;作者也明确说明旧版表单登录在迁移到 NextAuth 后基本失效,实际可靠的认证方式是在浏览器登录后由 MCP 读取 Cookie。适合接受这些限制的个人用户,不适合需要稳定官方支持或不愿在本机保存会话凭据的场景。

可靠性
9/20
安全与权限
8/20
维护活跃度
10/20
文档质量
14/20
安装易用性
10/20
查看 FMRS 评分方法 →

这是一个基于 Model Context Protocol 的本地 MCP 服务器,让 Claude 等 AI 助手可以访问和修改你的 MyFitnessPal 数据,包括饮食日记、运动记录、体重等身体测量、营养目标、饮水量和间歇性断食记录。MyFitnessPal 没有公开 API:读取通过 python-myfitnesspal 抓取网页实现,饮食写入走 MFP 内部的 v2 JSON 接口(与其网页客户端相同,使用你的会话令牌认证),自定义食物则使用另一组基于 Cookie 认证的网页接口。服务器通过 stdio 在本机运行,数据只在你的电脑与 myfitnesspal.com 之间传输。

工具能力

mfp_get_diary
获取指定日期的饮食日记条目
mfp_search_food
搜索 MyFitnessPal 食物数据库
mfp_get_food_details
获取某个食物的详细营养信息
mfp_add_food_to_diary
把某个食物添加到指定日期和餐次的日记中
mfp_remove_food_from_diary
从日记中删除一条已记录条目
mfp_create_custom_food
创建一份带完整营养面板的私人自定义食物
mfp_list_own_foods
列出你自己的自定义食物(私人食物不会出现在搜索中)
mfp_delete_custom_food
删除你自己的某个自定义食物
mfp_get_measurements
获取体重/身体测量历史
mfp_set_measurement
记录新的体重或身体测量值
mfp_get_exercises
获取已记录的运动(有氧与力量训练)
mfp_get_goals
获取每日营养目标
mfp_set_goals
更新每日营养目标
mfp_get_water
获取某日饮水量
mfp_set_water
记录某日饮水量
mfp_log_fast
记录一次已完成的间歇性断食窗口(开始与结束时间)
mfp_update_fast
更新已有断食记录的开始/结束时间
mfp_delete_fast
按 id 删除一条断食记录
mfp_get_report
获取某日期范围内的营养报告
refresh_browser_cookies
从浏览器中提取并保存会话 Cookie

安装接入

  1. 确认 Python 版本为 3.10–3.12(3.13+ 不支持,因为 lxml 没有对应 wheel)。
  2. 克隆仓库并进入目录:git clone https://github.com/YOUR_USERNAME/myfitnesspal-mcp-python.git && cd myfitnesspal-mcp-python。
  3. 创建虚拟环境:python3 -m venv venv,然后激活(macOS/Linux:source venv/bin/activate;Windows:.\venv\Scripts\activate)。
  4. 升级 pip:pip install --upgrade pip。
  5. 以可编辑模式安装:pip install -e .。
  6. 验证可启动:python -m mfp_mcp.server(通过 stdio 通信,Ctrl+C 退出)。
  7. 编辑 Claude Desktop 配置文件(macOS:~/Library/Application Support/Claude/claude_desktop_config.json;Windows:%APPDATA%\Claude\claude_desktop_config.json),加入 mcpServers 配置,command 使用虚拟环境 Python 的绝对路径,args 为 ["-m", "mfp_mcp.server"]。
  8. 完全退出并重启 Claude Desktop,看到锤子图标即表示工具已加载。
  9. 认证建议:在任意 Chromium 浏览器(macOS 推荐)或 Firefox 中登录 myfitnesspal.com;也可在 env 中配置 MFP_USERNAME / MFP_PASSWORD(旧版表单登录在 NextAuth 后端已基本失效)。
claude_desktop_config.json
{
  "mcpServers": {
    "myfitnesspal": {
      "command": "/Users/yourname/myfitnesspal-mcp-python/venv/bin/python",
      "args": ["-m", "mfp_mcp.server"]
    }
  }
}

选型与风险

适合谁

  • 希望用自然语言查看和整理 MyFitnessPal 饮食、运动与体重记录的个人用户
  • 在 macOS 上使用 Claude Desktop、愿意用浏览器 Cookie 认证的用户
  • 想自动化记录(例如根据睡眠窗口推断断食)或批量修正记录的人
  • 接受数据抓取方案、明白接口可能随时失效的技术用户

不适合谁

  • 需要官方支持或稳定公开 API 承诺的生产环境
  • 不愿在本机保存会话 Cookie 或账号凭据的用户
  • 使用 Python 3.13+ 或无法安装 lxml 的环境
  • 非 Claude Desktop 的 MCP 客户端(文档仅提供 Claude Desktop 配置示例)
  • 需要读取断食历史的人——MFP 没有断食读取接口

所需权限

  • 读取并修改你的 MyFitnessPal 账号数据(日记、目标、测量、饮水、断食)
  • 访问 ~/.mfp_mcp/cookies.json(权限 0600,等同密码,含完整账号访问权)
  • 在 macOS 上读取浏览器 Safe Storage 密钥链条目以解密 Cookie 数据库
  • 读取浏览器 Cookie(Chromium 系列或 Firefox)或 b64 中的 MFP 账号凭据
  • 可选:从环境变量或操作系统密钥链读取 MFP_SECRET_KEY 以解密凭据

风险与副作用

  • 服务器可以修改你的日记、目标、测量值与饮水量,误用会造成数据变更
  • 会话 Cookie 等同完整账号访问权,保存在本机 ~/.mfp_mcp/cookies.json,泄露即等于泄露账号
  • 明文凭据配置会把 MyFitnessPal 密码以明文存放在磁盘上,任何以你的用户身份运行的程序都能读取
  • 读写依赖 MFP 未公开的内部接口,官方可随时改动使其失效(作者称已发生过一次)
  • 页面抓取与内部 API 使用可能违反 MyFitnessPal 的服务条款
  • 若把 MFP_SECRET_KEY 与加密后的凭据放在同一个配置文件里,加密保护基本无效

常见排障

  1. 提示“python: command not found”或版本错误:用 python3 --version 检查,需要 3.10–3.12;macOS 可 brew install [email protected] 后创建虚拟环境
  2. pip install -e . 报 setup.py not found:先执行 pip install --upgrade pip
  3. 认证失败:在 Chromium 浏览器登录 myfitnesspal.com,或调用 refresh_browser_cookies(browser 可设为 arc、chrome、edge、brave、firefox 或 auto)
  4. macOS 首次运行弹出密钥链授权对话框:点“始终允许”;若后台运行容易错过,先把 Claude Desktop 切到前台重试
  5. 报 No module named 'mfp_mcp':确认使用虚拟环境中的 Python,并重新执行 pip install -e .,配置里使用绝对路径
  6. Claude Desktop 中看不到工具:检查 JSON 语法、使用绝对路径、彻底重启 Claude Desktop,并查看日志目录
  7. 有认证但返回空数据:确认该日期确有记录,日期格式为 YYYY-MM-DD
  8. 食物写入突然失效:MFP 内部接口变更(历史上 /food/diary/{user}/add 已改为返回 404),属于最可能的原因

使用场景

查看今天或指定日期的饮食日记与昨天吃了什么
让 AI 搜索食物并估算/查询营养信息
把食物添加到早餐、午餐、晚餐或零食
查看体重历史与本月体重趋势,并记录新体重
对比每日营养目标与实际摄入,检查蛋白质是否达标
查看今日或昨日的运动记录
生成一周或某月的营养报告
更新每日热量、蛋白质、碳水与脂肪目标
查询和记录每日饮水量
记录、修改或删除间歇性断食窗口
创建私人自定义食物以便重复记录

支持客户端

Claude Desktop完整支持