卡路里追踪MCP服务

通过逆向工程Lose It的GWT-RPC API,提供卡路里追踪和营养数据的MCP服务。

  • by atfinke
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 atfinke/loseit-mcp

使用说明

失去它MCP

Lose It的非官方MCP服务器,根据观察到的网络应用流量进行反向工程,并根据API实时行为进行验证。

完全由Claude Opus 4.6通过Claude Code建造。

概述

该项目通过MCP使用web应用程序的GWT-RPC API公开Lose It卡路里跟踪和营养数据。

支持的功能包括:

  • 阅读每日卡路里摘要,包括预算、食用量和剩余卡路里
  • 阅读每周的卡路里历史记录,包括每天的细分
  • 读取包含食品名称和品牌的食品日志条目

API覆盖范围

当前实现使用Lose It web应用程序GWT-RPC端点(www.loseit.com/web/service)使用从以下来源获得的会话Cookie api.loseit.com/account/login.未使用iOS应用程序的protobuf API。

GWT-RPC策略哈希和置换标头与当前Lose It web应用程序构建相关联。如果Lose It部署了新版本,这些值可能需要通过环境变量进行更新。

设置

npm install
cp .env.example .env
npm test
npm run build

配置要求:

  • LOSEIT_EMAIL
  • LOSEIT_PASSWORD

可选值:

  • LOSEIT_TIMEZONE (IANA区域,默认 America/Chicago)
  • LOSEIT_SESSION_PATH (默认值 ~/.loseit-mcp/session.json)
  • LOSEIT_REQUEST_TIMEOUT_MS (默认值 15000)
  • LOSEIT_GWT_POLICY_HASH (如果Lose It部署了新的web构建,则覆盖)
  • LOSEIT_GWT_PERMUTATION (如果Lose It部署了新的web构建,则覆盖)

MCP设置

服务器通过stdio运行。

构建服务器的客户端配置示例:

{
  "mcpServers": {
    "loseit": {
      "command": "node",
      "args": ["/absolute/path/to/loseit-mcp/dist/index.js"],
      "cwd": "/absolute/path/to/loseit-mcp"
    }
  }
}

对于不先建设的地方发展:

{
  "mcpServers": {
    "loseit": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "/absolute/path/to/loseit-mcp"
    }
  }
}

如果客户不支持 cwd,直接在客户端配置中传递Lose It环境变量,而不是依赖 .env.

备注

  • 会话Cookie被缓存到 ~/.loseit-mcp/session.json 以避免在每次服务器启动时重新进行身份验证。缓存是使用受限的文件权限创建的。
  • 食物日志返回食物名称和品牌,但不包括每种食物的卡路里或宏观细分。每日汇总工具提供每日总计。
  • GWT-RPC响应解析器使用目标模式提取,而不是完整的通用反序列化器。