Garmin Nutrition Coach

Garmin Nutrition Coach

Enables Claude to act as a personal health coach by connecting to Garmin wearable data and Notion workspace for automated calorie tracking, photo food logging, and coaching insights.

Category
访问服务器

README

<p align="center"> <img src="assets/leanloop-cover.jpg" alt="LeanLoop for Garmin — private AI nutrition & fitness coach (Garmin + Claude + Notion + Google Cloud)" width="100%"> </p>

Turn Claude into your personal, data-driven health coach — self-hosted, private, ~$0/month.

License: MIT MCP Cloud Run Python

Your own MCP server connects Claude to your Garmin wearable data (14 lean tools) and your Notion workspace. A nightly job writes your real measured calorie burn into your food log — so your deficit numbers come from your body, not from generic formulas — and a built-in calibration loop checks them against your actual scale weight every two weeks.

Chat with Claude like a coach who has actually seen your data: "How did I sleep?" · "Coach me today" · "Why did my run feel bad?" · 📸 [photo of lunch]

✨ Features

Feature What it does
📸 Photo food logging Send a meal photo → macros estimated with a documented protocol (reference-object scaling, hidden oil/sauce accounting) → auto-saved to Notion
🌙 Automatic day close Every night your server pulls the finished day's true TDEE from Garmin and writes TDEE + workouts into your log (your deficit column recalculates itself instantly — it's a Notion formula) — self-heals 3 days back, colored sync tags show status at a glance
🔥 Progress you can see Cumulative deficit (≈ kg of fat) updated nightly right on your Notion food log
🏃 Coaching on real data One-call readiness verdicts, post-workout analysis (splits, HR zones, sleep context), weekly reviews, injury pattern tracking
📈 Second-by-second analysis FIT-file parsing: HR/pace/cadence streams + aerobic decoupling — the endurance metric real coaches use
⚖️ Calibration loop Every 2 weeks: logged deficit vs. actual weight change reveals your personal estimation bias, which corrects all future estimates
🔄 Live-updating brain Coaching rules live in playbook.md, fetched by your server at runtime — improvements reach every user instantly, no reinstall

🚀 Install (no coding needed)

Open Claude and paste:

Read https://github.com/bank3005-jpg/LeanLoop-for-Garmin/blob/stable/SETUP.md and set this up for me

Claude interviews you (goals, body stats), creates your Notion databases, walks you through the cloud steps, and wires everything into a Claude Project — a dedicated space where your coach lives, with your server and Notion connected and your coaching rules loaded automatically in every chat. 45–60 minutes, one time.

Prerequisites: a Garmin watch · Notion account (free) · Google account with billing enabled (stays within free tier) · Claude plan with custom connectors · Windows or macOS computer for one step.

🏗️ Architecture

Claude (any device, incl. phone)
   └── your Cloud Run server  ← this repo, deployed to YOUR Google account
         ├── Garmin Connect   ← your token, created on your own computer
         ├── your Notion      ← food / training / body logs
         └── playbook.md      ← coaching rules, served live from GitHub
   Cloud Scheduler → nightly close-day job + keep-warm pings

Privacy by design: everything runs in your accounts. No third party — including this repo's author — ever sees your data. The server is protected by a long random secret; Garmin credentials never pass through chat.

🧰 What's inside (14 lean MCP tools)

Health get_wellness(metric) — sleep, HRV, stress, body battery, heart rate, SpO2, respiration, intensity minutes, hydration, blood pressure, body composition, training readiness/status · get_daily_summary Training get_activities (recent or date range) · get_activity(id, view) — summary, splits, HR zones, FIT streams, aerobic decoupling · get_fitness(metric) — VO2max, race predictions, endurance/hill scores, lactate threshold, PRs, fitness age · get_coach_snapshot (one-call verdict data) · analyze_activity (one-call post-workout bundle) · weekly_report / calibrate_report (pre-computed reviews) Body get_weight_history · add_body_composition (write InBody/DEXA scans into Garmin) System foodlog_read / foodlog_upsert (direct Notion food log) · get_playbook (live coaching rules)

Few tools by design: a lean tool list keeps every chat's context small — grouped tools with a metric/view parameter carry the same 35 capabilities at ~half the token overhead.

🔄 Updating

  • Coaching rules — update automatically (served live from this repo)
  • Server codegit pull + one deploy command, or enable a Cloud Build trigger on stable for fully automatic deploys
  • Want to customize the code? Fork the repo and point your deployment at your fork

❓ FAQ

Is it really free? Yes — Cloud Run free tier covers personal use many times over. The setup guide includes guardrails so you stay in it. Does my data go anywhere? No. Your server, your Garmin token, your Notion. Self-hosted means self-owned. What if Garmin changes their API? The community library this builds on (python-garminconnect) gets patched quickly; update with one git pull + deploy. Garmin China accounts? Not supported (separate system). No watch some days? The nightly job falls back to your formula baseline and tags the day estimated.

💬 Why this exists

I'm not a programmer. I built LeanLoop together with Claude because I wanted to lose weight, get my confidence back, and just feel better — and I couldn't find a tracker that coached me on my real data instead of generic formulas. It worked for me, so I'm sharing it.

I use LeanLoop every single day and keep refining it as I go. If you hit a problem or want a feature, open a thread in Discussions — I read everything.

🙏 Credits

Built on python-garminconnect by cyberjunky · fitdecode · MCP by Anthropic.

⚠️ Disclaimer

This is a personal tracking and coaching tool, not medical advice or a medical device. Calorie and macro estimates are approximations. Consult a healthcare professional for medical decisions, and stop training and seek care for any concerning symptoms.

📄 License

MIT — use it, fork it, share it.

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选