关于 Fitatu MCP Unofficial
Fitatu MCP Unofficial 是用于访问和更新个人 Fitatu 账户数据的 MCP 服务,面向管理饮食记录和营养信息的用户。它提供饮食计划、身体测量、食物搜索及食谱管理工具,并支持 stdio 和 Streamable HTTP。
主要功能
- 01查询个人资料和营养摘要
- 02查找食物及食谱
- 03管理餐食项目
- 04创建和编辑食谱
- 05更新身体测量与设置
适用场景
- 01查询指定日期的饮食计划
- 02搜索食物并添加到餐食
- 03汇总日期范围内的营养数据
- 04维护个人食谱和测量记录
MCP 相关
它向 MCP 客户端提供 Fitatu 账户查询与更新工具,并支持 stdio 和 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

Fitatu MCP Unofficial
用于访问和更新你自己的 Fitatu 账户数据的非官方 Model Context Protocol (MCP) 服务。它通过 stdio 或 Streamable HTTP 提供用于个人资料数据、膳食计划、营养摘要、食物搜索和食谱管理的类型化工具。
重要
本项目与 Fitatu 无关,也未得到 Fitatu 的认可或赞助。请仅将其用于你自己的账户,并将 Fitatu 凭据和账户数据视为敏感信息。
功能
- 查询个人资料、每日计划和营养摘要。
- 查询最新或指定日期的身体测量数据,并针对明确的日历日期进行部分更新。
- 搜索食物和食谱,并获取变更工具所需的标识符。
- 创建、更新、替换、移动和移除膳食项目。
- 创建、查看、更新和删除食谱。
- 为本地 stdio 和 Streamable HTTP 客户端提供 MCP 传输方式。
- 本地开发和 Docker 工作流。
要求
- Node.js
>=22.18.0 - npm
- Fitatu 账户
Docker 和 ngrok 为可选项,仅在相应工作流中需要。
快速开始
安装依赖并创建本地配置文件:
npm install
cp .env.example .env
在 .env 中设置 FITATU_EMAIL 和 FITATU_PASSWORD,然后启动开发服务:
npm run dev
默认 MCP 端点为 http://localhost:3000/mcp。
MCP 客户端配置
使用 MCP_TRANSPORT 选择一种传输方式:
| 传输方式 | 适用场景 | 进程模型 |
|---|---|---|
stdio | 启动自身 MCP 服务的本地客户端 | 每个客户端启动一个服务进程 |
http | 由一个或多个客户端共用的持久服务 | 在 /mcp 上运行的长期服务 |
stdio
配置客户端前先构建服务:
npm run build
使用指向仓库中 .env 和 dist/index.js 文件的绝对路径:
{
"mcpServers": {
"fitatu": {
"command": "node",
"args": [
"--env-file=/absolute/path/to/fitatu-mcp-unofficial/.env",
"/absolute/path/to/fitatu-mcp-unofficial/dist/index.js"
],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}
客户端负责启动和停止服务。在 stdio 模式下,日志会写入 stderr,因为 stdout 专用于 JSON-RPC 流。
Streamable HTTP
使用 npm run dev 启动服务,或构建并运行:
npm run build
npm start
支持原生 Streamable HTTP 的客户端可直接连接到:
http://localhost:3000/mcp
对于通过命令启动远程 MCP 连接的客户端,请使用 mcp-remote:
{
"mcpServers": {
"fitatu": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp"]
}
}
}
若要交互式检查本地服务:
npm run inspector
将 Inspector 连接到 http://localhost:3000/mcp。
使用 ngrok 访问远程 MCP
安装并验证 ngrok。在 .env 中,使用 FITATU_* 和 FITATU_INTEGRATION_* 配置两个不同的 Fitatu 账户,然后添加分配给你的域名:
NGROK_DOMAIN=your-assigned-domain.ngrok-free.dev
npm run dev:all # Both accounts and the tunnel
npm run dev:test-account # Test account only (alternative)
在任何支持远程 Streamable HTTP 连接的 MCP 客户端中,使用以下任一无需身份验证的 URL:
- 个人:
https://YOUR_NGROK_DOMAIN/personal/mcp - 测试:
https://YOUR_NGROK_DOMAIN/test/mcp
可用工具
| 工具 | 用途 |
|---|---|
get_current_user | 返回已认证用户个人资料中的安全子集。 |
get_body_measurement | 返回最新的身体测量数据,或指定可选 YYYY-MM-DD 日期的完整记录。 |
save_body_measurement | 使用个人资料中的单位,部分更新 YYYY-MM-DD 日期的身体测量数据。 |
get_user_settings | 返回按日期解析的能量、计算和饮水设置,以及请求日期和生效日期;日期默认为 Fitatu 时区的今天。 |
update_user_settings | 设置手动或自动能量目标、更新饮水份量大小,或同时应用这两项更改。 |
get_day_plan_items | 返回 YYYY-MM-DD 日期的餐食和食物项目。 |
get_diet_summary | 汇总包含起止日期在内的日期范围内的营养和能量。 |
search_food | 搜索 Fitatu 食物目录并返回可用于修改的标识符。 |
search_food_by_barcodes | 并行搜索公开食物目录,最多查询 10 个条形码。 |
add_meal_items | 向餐食添加产品、食谱或自定义项目。 |
update_meal_item | 更新数量、计量方式或食用状态。 |
replace_meal_item | 替换一条精确的餐食记录。 |
move_meal_item | 将项目移至另一餐食、日期,或同时更改两者。 |
remove_meal_items | 按 UUID 原子性地移除选定的每日计划条目。 |
search_recipes | 搜索私人食谱、公开食谱,或同时搜索两个目录。 |
get_recipe | 返回规范的每份食谱详情。 |
create_recipe | 使用产品和计量方式标识符创建私人食谱。 |
update_recipe | 部分更新自己拥有且可编辑的食谱。 |
delete_recipe | 在确认名称完全一致后软删除食谱。 |
配置
运行时配置从环境变量读取,并在启动时进行验证。
| 变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
FITATU_EMAIL | 是 | — | Fitatu 账户邮箱地址。 |
FITATU_PASSWORD | 是 | — | Fitatu 账户密码。 |
FITATU_INTEGRATION_EMAIL | 集成测试和隧道命令需要 | — | 专用 Fitatu 测试账户的邮箱地址。 |
FITATU_INTEGRATION_PASSWORD | 集成测试和隧道命令需要 | — | 专用 Fitatu 测试账户的密码。 |
MCP_TRANSPORT | 否 | http | MCP 传输方式:http 或 stdio。 |
PORT | 否 | 3000 | HTTP 端口;stdio 模式下不使用。 |
HOST | 否 | 0.0.0.0 | HTTP 绑定地址;stdio 模式下不使用。隧道启动器会强制使用环回地址。 |
NODE_ENV | 否 | development | development、production 或 test。 |
SERVER_NAME | 否 | fitatu-mcp | MCP 服务报告的名称。 |
SERVER_VERSION | 否 | 3.0.0 | MCP 服务报告的版本。 |
LOG_LEVEL | 否 | info | silent、error、warn、info 或 debug。 |
FITATU_USER_AGENT | 否 | Dart/3.10 (dart:io) | Fitatu 移动运行时 User-Agent。 |
FITATU_APP_VERSION | 否 | 4.14.4 | Fitatu 移动应用版本。 |
FITATU_API_APK_UUID | 否 | BE4B.251210.005 | Fitatu 移动版本标识符。 |
请勿提交 .env。移动客户端配置文件的默认值与 2026-07-30 捕获的 Fitatu 4.14.4 流量相匹配,无需更改代码即可覆盖这些默认值。
Docker
当前镜像构建需要配置好的 .env 文件:
cp .env.example .env
docker build -t fitatu-mcp .
docker run --name fitatu-mcp -p 3000:3000 fitatu-mcp
Dockerfile 会将 .env 复制到镜像中。请将生成的镜像视为敏感内容;不要发布或分享。
开发
| 任务 | 命令 |
|---|---|
| 开发服务器 | npm run dev |
| 使用 ngrok 启动两个账户 | npm run dev:all |
| 使用 ngrok 启动测试账户 | npm run dev:test-account |
| 生产构建 | npm run build |
| 启动构建后的服务器 | npm start |
| 类型检查 | npm run typecheck |
| 代码检查 | npm run lint |
| 格式检查 | npm run format:check |
| 运行单元测试并生成覆盖率 | npm run test:ci |
| 本地覆盖率报告 | npm run test:coverage |
| 集成测试 | npm run test:integration |
npm run test:ci 具有确定性,不会加载 Fitatu 凭据。集成测试使用上文介绍的专用 Fitatu 测试账户,并可能修改其膳食计划、食谱和身体测量数据。
有关分层边界和设计规则,请参阅 ARCHITECTURE.md;有关贡献指南,请参阅 CONTRIBUTING.md。
许可证
基于 MIT License 授权。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。