fitatu-wrapper

fitatu-wrapper

Enables programmatic access to Fitatu nutrition tracking via MCP tools for login, food search, product lookup, daily nutrition read, and adding entries.

Category
访问服务器

README

Fitatu Wrapper

CLI and MCP wrapper for Fitatu.

Scope

This repository currently targets v1 of a product-only wrapper.

Included:

  • programmatic login
  • session refresh
  • product search
  • product details
  • day read
  • daily nutrition summary
  • add product
  • delete entry

Not included in v1:

  • recipes
  • water
  • Own / Favorites / Fridge
  • editing existing entries

Install

python3 -m pip install -e .
cp .env.example .env

Run

fitatu --help

Start the MCP server over stdio with:

fitatu-mcp

The CLI entrypoint is fitatu.

Implemented commands:

  • fitatu login --email ... --password ...
  • fitatu whoami
  • fitatu logout
  • fitatu search-food --date YYYY-MM-DD --meal breakfast --query banana
  • fitatu get-product --product-id 105392008
  • fitatu read-day --date YYYY-MM-DD
  • fitatu read-day-summary --date YYYY-MM-DD
  • fitatu read-days --from-date YYYY-MM-DD --to-date YYYY-MM-DD
  • fitatu read-day-summaries --from-date YYYY-MM-DD --to-date YYYY-MM-DD
  • fitatu add-product --date YYYY-MM-DD --meal breakfast --product-id ... --measure-id ... --quantity ...
  • fitatu delete-entry --date YYYY-MM-DD --entry-id ...

All CLI output is JSON. Read-oriented commands also support --out PATH for writing snapshots directly to disk.

The MCP entrypoint is fitatu-mcp.

Implemented tools:

  • fitatu_login
  • fitatu_whoami
  • fitatu_logout
  • fitatu_search_food
  • fitatu_get_product
  • fitatu_read_day
  • fitatu_read_day_summary
  • fitatu_add_product
  • fitatu_delete_entry

The server uses FastMCP over stdio.

Automation Examples

Range exports for a dashboard:

fitatu read-days --from-date 2026-03-01 --to-date 2026-03-07 --out data/fitatu-days.json
fitatu read-day-summaries --from-date 2026-03-01 --to-date 2026-03-31 --out data/fitatu-summaries.json

Example cronjobs:

# macOS / BSD `date`
5 6 * * * cd /absolute/path/to/fitatu-wrapper && /absolute/path/to/.venv/bin/fitatu read-day --date $(date +\%F) --out data/today.json
10 6 * * * cd /absolute/path/to/fitatu-wrapper && /absolute/path/to/.venv/bin/fitatu read-day-summaries --from-date $(date -v-6d +\%F) --to-date $(date +\%F) --out data/weekly-summaries.json

Linux / GNU date variant:

10 6 * * * cd /absolute/path/to/fitatu-wrapper && /absolute/path/to/.venv/bin/fitatu read-day-summaries --from-date $(date -d '6 days ago' +\%F) --to-date $(date +\%F) --out data/weekly-summaries.json

For dashboard ingestion, prefer the CLI over MCP and persist JSON snapshots locally.

Configuration

Copy .env.example to .env for local development. The runtime loads .env automatically.

Important rules:

  • never commit a real .env
  • never put real credentials or tokens into .env.example
  • treat .env.example as documentation, not as a secrets file

Supported environment variables:

  • FITATU_API_BASE_URL
  • FITATU_SESSION_PATH
  • FITATU_USERNAME
  • FITATU_PASSWORD
  • FITATU_API_KEY
  • FITATU_API_SECRET
  • FITATU_LOGIN_API_CLUSTER
  • FITATU_APP_LOCATION_COUNTRY
  • FITATU_APP_UUID
  • FITATU_APP_VERSION
  • FITATU_APP_LOCALE
  • FITATU_APP_SEARCHLOCALE
  • FITATU_APP_STORAGELOCALE
  • FITATU_APP_TIMEZONE
  • FITATU_APP_OS

Zero-Bootstrap Login

The default path is now browserless and zero-bootstrap:

  • fitatu login --email ... --password ... can work with only credentials
  • the client fetches the public Fitatu login page and web bundle
  • it extracts the public web-app config needed for the first login request
  • after login, the session file stores the user tokens and user-scoped headers for normal reuse

This means:

  • browser automation is not required for normal CLI or MCP use
  • manual FITATU_API_* / FITATU_APP_* values are not required for first login
  • those header env vars are now advanced debug or override inputs, not mandatory setup

The repository does not include real values for any of these fields. Populate them from your own local setup only.

Live Smoke

The repo includes opt-in live smoke tests for zero-bootstrap browserless operation.

By default they are skipped. To run them:

FITATU_RUN_LIVE=1 python3 -m pytest -m live tests/test_live_smoke.py

Required live-smoke inputs:

  • FITATU_USERNAME
  • FITATU_PASSWORD
  • FITATU_LIVE_DATE
  • optionally FITATU_LIVE_MEAL and FITATU_LIVE_QUERY

Optional write smoke inputs:

  • FITATU_LIVE_PRODUCT_ID
  • FITATU_LIVE_MEASURE_ID
  • FITATU_LIVE_QUANTITY

The live smoke tests unset all manual FITATU_API_* and FITATU_APP_* env vars before building the client config. They then perform programmatic login and run the v1 read and write flows. That proves the browserless path works without manual bootstrap configuration.

Development

The project uses:

  • Python 3.12+
  • typer for the CLI
  • pydantic for public models
  • mcp for the MCP server
  • pytest for tests
  • ruff for linting

Checks:

ruff check .
python3 -m pytest

If you are changing CLI or MCP behavior, update this README in the same change.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选