Health Data (your own Supabase)

io.github.almostjacked由 GitHub 帳號 almostjacked 發布v0.1.3更新於 Oct 24, 2026

Your health data (weight, macros, weigh-ins) as MCP tools — in your own Supabase, zero custody.

發布方自己的服務:Supabase

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓助理讀取你自己建立並擁有的 Supabase 專案中的 Apple 健康資料(體重、熱量、巨量營養素、飲水)。

可以做什麼
檢視資料庫結構與指標登錄表,並檢查同步狀態以判斷每日匯入是否中斷。讀取最近若干天的紀錄,可限定單一指標,並取得某一天全部指標的總計與各項測量。對單一指標在日期範圍內計算最小值、最大值、平均值與滾動平均序列,支援按日、週、月彙總。作為備用手段執行一條唯讀 SQL 語句,寫入會被拒絕並強制列數上限。匯出依日期、體重、熱量整理的項目,方便與獨立的 TDEE 工具搭配。
適用情境
如果你已在 Apple 健康中記錄體重、熱量或身體組成,並希望助理根據你自己的資料庫回答趨勢與攝取問題,就值得加入。適合願意架設 Supabase 專案並用 iOS 捷徑每日同步的使用者。
執行需求
透過 npm 套件以 stdio 在本機執行,需要 Node 18 或更新版本。需要一個你自行建立的 Supabase 專案,設定 SUPABASE_URL 與 SUPABASE_SECRET_KEY 環境變數,並部署連接器與寫入函式。需要裝有健康 App 的 iPhone 和用於每日同步的 iOS 捷徑;匯入歷史資料需使用 Apple 健康匯出檔。
安裝前請注意
伺服器持有 Supabase 金鑰,可對你的專案進行廣泛存取,請勿放入共用設定。安裝過程還會產生寫入金鑰與連接器權杖,以機密形式保存在你的專案中。query 工具會對健康資料庫執行 SQL,但僅限唯讀語句,且資料庫角色只有 SELECT 權限。健康資料屬敏感資訊,雖保存在你自己的專案中,但捷徑會將其傳送到你專案的端點。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Health Data (your own Supabase),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

health-mcp

[CI] [npm] [MCP Registry]

Your health data (weight, body composition, calories, macros, water) as an MCP data layer your AI can query. Zero custody: it lives in a Postgres database in a Supabase project you create and own — nobody but you ever holds your data or your keys. An iOS Shortcut syncs it daily from Apple Health; Claude (or any MCP client) reads it back through a connector that runs entirely inside your own project.

Get set up (four steps, ~20 minutes)

1. Create your database + connector

Three ways, pick one — all three end with the same thing: your connector URL, plus your ingest URL and ingest key.

  • The setup page — no terminal, guided clicks through your Supabase dashboard.
  • npx @almostjacked/health-mcp setup — fastest, needs Node ≥ 18. Walks you through logging in to Supabase, picking or creating a project, applying the schema, deploying both functions, and minting your secrets, then prints the connector URL and Shortcut config.
  • Manual dashboard walkthrough — the same steps as the setup page, written out for anyone who'd rather read them first or do them by hand.

Supabase's free tier allows 2 active projects, so this fits alongside one other free project you may already have.

2. Load your history

Without this, adaptive-TDEE needs about two weeks of daily syncs before it has enough data to work. With it, everything works immediately.

  1. On your iPhone: Health app → your profile picture → Export All Health Data. This produces an export.zip (can take a few minutes for a long history).
  2. Get that file to whatever device you're setting up from, then drop it on the setup page's Import panel. Leave Dry run checked first to preview what would be sent before you commit to it.

3. Set up the daily sync

The Shortcut panel has one download button — no signing step, no Terminal. Download the shortcut, install it on your iPhone (iOS asks you to paste in your ingest URL and key during import), then turn on the 9 AM daily automation. Full click-by-click detail (including what to do if a step doesn't survive the iOS import): docs/shortcut.md.

Easiest install (Mac-first): download the signed shortcut on your Mac and double-click it — the two import prompts appear right next to the page's copy buttons, and iCloud syncs the shortcut to your iPhone automatically. (No Mac? Send the file to your phone and answer the prompts there.)

4. Connect Claude

  1. Open claude.ai → Settings → Connectors → Add custom connector.
  2. Paste in your connector URL from step 1.
  3. Save. Claude can now use your health-mcp tools.

If adding the connector fails with "Couldn't register with [name]'s sign-in service", that's a transient claude.ai hiccup, not a problem with your connector — just try adding it again.

Use it

Ask Claude things like:

What's my average calorie intake this week vs last?

Show me my weight trend over the last 90 days.

Has my daily sync stalled? Check get_sync_status.

Pair it with fitness-tools

health-mcp answers "what happened" (your logged weight and calories); fitness-tools answers "so what" (TDEE, macros, body fat, 1RM). The get_energy_inputs tool returns {date, weight, kcal} entries shaped exactly for fitness-tools' adaptive-tdee — no reformatting needed. Ask Claude:

Get my energy inputs for the last 90 days, then compute my adaptive TDEE with fitness-tools.

adaptive-tdee needs at least 10 days that have BOTH a weigh-in and a calorie total — if you skipped step 2, expect ~2 weeks of syncing before the pairing works.

If you also train with Hevy, pair with hevy-mcp for the training side of the picture (routines, logged sets, 1RM trend).

Tools

ToolDescription
get_schemaThe Postgres schema (two tables) and the metric registry (names, units, classes). Call before writing SQL for the query tool.
get_sync_statusLatest date, row count, and days-since-last-entry per metric. Use to detect a stalled daily sync before trusting an analysis.
get_recentRows for the last N days (default 30), optionally one metric. Daily totals and individual measurements in one date-sorted list.
get_daily_summaryAll metrics for one day (default: the most recent day with any data): totals plus every weigh-in/measurement.
get_statsMin/max/avg plus a rolling-average series for one metric over a date range (daily/weekly/monthly rollup).
queryEscape hatch: run one read-only SQL statement (SELECT or WITH…SELECT) against the schema from get_schema. Writes/DDL rejected; LIMIT 500 enforced.
get_energy_inputsDaily (date, weight, kcal) entries for days with both a calorie total and a weigh-in — shaped exactly for fitness-tools' adaptive-tdee.

Architecture

Apple Health --> "Sync Health Data" Shortcut --> your health-ingest function --> your Postgres                                                                                      |Claude  <-- run_readonly (SELECT-only) <-- your health-mcp connector function <------+

Nothing above touches infrastructure we operate. The two Edge Functions run on your Supabase project; the only thing that ever leaves your device is the Shortcut's HTTP POST straight to your own project's URL.

Privacy Policy

Zero custody. health-mcp is software you run against infrastructure you own — we (the maintainers) never operate a server that sees your health data or your keys, and there is nothing to disconnect from us because nothing was ever connected to us.

  • Your data lives only in the Supabase Postgres project you created. We have no access to it, no copy of it, and no way to see it.
  • Your keys (MCP_TOKEN, INGEST_KEY, your Supabase secret key) are generated by you or the wizard running on your machine, stored as secrets in your own Supabase project, and — for the stdio/.mcpb install path — held locally by your MCP client (Claude Desktop / Claude Code) and sent only to your own project's URL.
  • The Shortcut sends data straight from your phone to your Edge Function URL; it never passes through any server of ours.
  • The query tool is SQL-guarded to read-only statements, and the database role it runs as (health_reader) is granted SELECT only — enforced at the Postgres level, not just in application code.

Other clients

Prefer Claude Desktop, or running the server yourself instead of the hosted connector? Both use the same Supabase project from step 1 — just a different way of talking to it.

Claude Desktop: download health-mcp.mcpb, double-click it, and paste in your Supabase project URL and secret key when prompted.

Any stdio MCP client (Claude Code, etc.):

bash
claude mcp add health-mcp -e SUPABASE_URL=<url> -e SUPABASE_SECRET_KEY=<key> -- npx -y @almostjacked/health-mcp

Repo layout

packages/core   @almostjacked/health-mcp-core — tools, ingest/normalization, setup.sqlapps/mcp        @almostjacked/health-mcp       — stdio server, .mcpb, setup wizardweb             the setup page (provision + import + Shortcut panels)supabase/functions/health-mcp     the read connector (deployed to your project)supabase/functions/health-ingest  the write endpoint the Shortcut posts to

Develop

bash
corepack enablepnpm installpnpm -r testpnpm -r typecheck

License

MIT — see LICENSE.

來源:README.md,提交 e002ced

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Supabase 整合