health-mcp
health-mcp
あなたのための個人健康データベース。タイピングはエージェントが行います。
栄養、バイオマーカー、ウエ ア ラ ブ ル デ ータ を保 存 す る ロ ー カ ル フ ァ ー ス ト の サ ー バ ーで す。全 体 がModel Context Protocolの ツ ー ル と し て 公 さ れ て い る た め、MCPに 対 応 し た エ ー ジ ェ ン ト(Hermes、OpenClaw)で 読 み 書 き で き ま す。デ ー タ に つ い て 話 す 代 わ り に そ の デ ー タ を 見 た い と き の た め、同 じ プ ロ セ ス 内 で ウ ェ ブ ダ ッ シ ュ ボ ー ド も 配 信 さ れ ま す。
一 切 あ な た の マ シ ン 上 で 動 作 し ま す。SQL ー ト フ ァ イ ル は ひ と つ。ア カ ウ ン ト も、SaaS も、テ レメ ト リ ー も あ り ま せ ん。
写 真 を 使 っ た カ ロ リ ー ア プ リ や フ リ ー フ ォ ー ム テ キ ス ト の パ ー サ ー を 作 る 代 わ り、曖 は え た 部 ー 分(「卵2個とトーストを食 べ た」「こ の 検 査 済 / PDFを記 録 に」「睡 眠 を 目 ーン に 影 引 し て る い の?」 )は エ ー ジュ ー ン に 任 せ、こ の サ ー バ ー に は 継 続 的 な 部 分(型 付 き ど ュ ー マ、ー ー ミ ッ ク な ト ラ ン ザ ク シ ョ ン、範 囲 付 き ク ェ リ、機 能 ー ト 付 き ツ ー ル ・ サ ー フ ェ ス、そ の 下 に あ る デ ー タ を 偽 ら な い UI)を 任 せ ま す。
追 跡 す る デー タ
栄 養。 食 品(USDA、開 放 食 品 デ ー タ Open De, 手 動 登 録 )、食 事(食 品 / レ シ ピ 1 食 分 / 調 理 済 み パ ッ チ / カ ス タ ム 構 成 要 素 か か ら 構 成)、水 分 補 分、体 重、ー ン ケ ョー ン メ ン ト、{min, max} の 範 围 と し て の マ ク ロ ゴ ー ル、そ し て 日 次 / 週 次 の 集 計。
レ シ ピ と 調 理 済 パ ッ チ、レ シ ピ は 1 食 分 ご と の マ ク ロ に 比 例 し て 育 て ま す。バ ッ チ は 調 済 の イ ンs タ ン ス で す、食 べ た 分 が 減 算 さ れ、log_meal 内 で は 原 子 的 に 減 算 さ れ、削 除 時 に は 返 金(デ ク リ メ ン ト)さ れ ま す。
記 し た 食 事 通 常 の 朝 食 に ラ ベ ル を 付 け て を 一 度 だ け、単 一 の ツ ー ル 呼 び 出 に で 再 登 録 で き ま す。あ ら か じ め 解 決 さ れ た 構 成 要 素(決 定 論 的)た は 正 典 と な る 自 由 テ キ ス ト(ェ ー ジ ェ ン ト が 呼 び 出 し の 都 度 再 推 定)の い ず れ を 保 持 て ま す。
バ ィ オ マ ー ー ー ー ー ー and 検 査 約 60 の 精 選 バ イ オ マ ー カ ー に、LOINC ー ド、規 定 単 位、基 準 値 と 至 適 値 の 範 囲 を シ デ し ま し た。パ ネ ル は 結 果 す べ て と と も に 原 的 に 挿 入 ー し ま す。3 段 階 の 範 囲 判 定 で 各 結 果 の 状 態 が 決 ま り ま す:結 果 ご と の 検 査 ス ナ ッ プ シ ョ ー ン → バ イ 条 マ ー カ ー ご と の デ ー フ ォ ー ル ト → 精 選 さ れ た 至 適 値。よ く あ る 2 単 位 の ぺ ァ(mg/dL V mmolL、ng/mL V nmolL、な ど)の 単 位 変 換 と、ト レ ン ド、お よび「 マ ー カ ー ご と の 最 新 値」ク エ リ を 提 供 し ま す。
ウ ェ ア ラ ブ ル 現 在 は Whoop と Oura を OAuth2 で 接 続 で き ま す。各 プ ロ バ イ ダ の ミ ラ ー は 生 の ペ ロ ー ド(行 ご と の raw_json)保 存 す る た、将 来 の デ ー タ 移 行 で 再 同 期 し 直 さ ず に 任 意 の フ ィ ー ル ド を 正 規 化 さ コ ラ ム 昇 ず る こ が で き ま す。正 規 化 テ ー ブ ル(wearable_sleep、wearable_actvity、wearable_rediness、wearable_daily)使 え ば、ど の ー ダ が 接 続 さ れ / い る を に ず に ベ ン ダ ー 横 断 で 読 み も け ま す。リ フ ー ッ シ ト ー ン は 使 う た ご に ロ ー テ し、ー ン バ リ の 認 証 ス ー ア が プ ロ バ イ ダ ご と に ミ ュ ー 1 ガ ー ト さ れ て る い て い て、よ 同 時 の 401 が 同 じ ト ー ン を 二 重 し て 消 費 し る こ ー ク ァ ウ ト す る こ が あ ま せ ん。
イ ン サ イ マ(c-rate は、日 単 位 / 周 単 位 / 月 単 位 の バ ケ ッ ト に 分 速 た 任 意 の 2 つ の 指 標 か ら ピ ー ソ / ス ピ ー マ ン の 相 関 を 計 算 し ま す。符 号 画 き の ラ グ バ ケ シ ト に ー 方 の 指 標 リ ー ー に せ ん 持 ち ます。前 方 埋 埋め は 欠 損 期 間 を 最 後 の 値 を 載 ん で る で、ス パ ー ス な 検 査 デ ー タ を 日 英 ウ ェ ア ブ ラ ・ ス コ ア と き れ 相 関 さ せ ま す。こ ツ ー ー ル は 分 に わ い る だ ダ ー が 揃 、で 初 め て エ ー ジ ェ ン の カ ル ロ グ に 表 示 さ ま す。
ク イ ッ ク ス タ ー ト
npx
Node 20以上、ク ロ ー ン も ビ ー ル も 不 要:
npx health-mcp # http://127.0.0.1:7777, opens the dashboard
npx health-mcp --stdio # headless MCP server over stdioデ ー タ は ~/.health-mcp/(SQLite フ ァ イ ル つ)に 保 存 さ れ ま す。npx health-mcp --help で 全 て の フ ラ を ー ン 出 し、npx health-mcp doctor で セ ル フ チ ェ ッ ク を 実 行 で き ま す。
Docker
git clone https://github.com/lukaisailovic/health-mcp.git
cd health-mcp
cp .env.example .env
# Put a strong token in .env (required to bind off-loopback)
openssl rand -hex 32
docker compose up -d
open http://127.0.0.1:7777デ ー タ は health-mcp-data 名 付 き げ ボ 含 ュ ー ム に 永 持 し ま す。フ ァ イ ル を デ ィ ス ク に 保 存 し た け れ ば、docker-compose.yml の ボ リ ュ ー マ ッ ピ ン を ./.health-mcp-data:/data に 替 替 え て く だ さ い 。
docker compose down で コ ン ー ナ を 停 止 し て も、デ ー タ は 再 起 動 後 も 保持 さ れ ま す。
ビ ル ド サ れ た イ ー ジ を ロ ー カ ル ビ ル ド よ り も そ ち ら か ? の か──:
docker-compose.yml を 公 開 の イ ジ 指 し て、build: ブ を 削 除 あ あ と:
image: ghcr.io/lukaisailovic/health-mcp:latest # or pin :0.1.0 / :0.1各 リ リ ー ス は :X.Y.Z、:X.Y、そ し て、:latest を プ ッ シ ュ し ま す。:main は 最 新 コ ミ ッ ト を 追 跡 し ま す。す べ て の イ ジ に は ビ ル ド 内 来 の 証 明(provenance)が 付 属 し ま す。リ リ ー ス を 参 照。
ー ソ フ ー か ら
Node 20+ と あ る ぴ ん(pnpm)が 必 要 で す。
git clone https://github.com/lukaisailovic/health-mcp.git
cd health-mcp
pnpm install
pnpm build
pnpm start # http://127.0.0.1:7777, browser opens automaticallyダ シ ュ ボ ー ド 、共 有 タ イ ー プ 、そ し て サ ー バ ー を ホ ッ ト ー リ ロ ー ー で 開 発 に す し て い る ー 場 合 に そ 3 っ を ー チ モ ー ド で 実 行 し て く だ さ い:
pnpm dev
# server on :7777, dashboard dev on :5173 (proxies /api/* to :7777)--no-open--open を 付 けて ブ ラ ウ ザ を 開 か な い、no--da` を コ ン ド ー リ レ ス の MO / RES 、サーバ バ に し ま す。
サ ブ コ マ ン ド
pnpm start -- migrate # apply pending DB migrations and exit
pnpm start -- doctor # self-check (DB pragmas, file modes, token entropy)
pnpm start -- export /tmp/dump.jsonl # JSONL dump; raw_json redacted unless --include-raw
pnpm start -- import-usda dump.json # ingest a USDA FoodData Central bulk JSONMCP エ ー ジュ ー ン と 接 続
Hermes / OpenClaw (stdio)
ど ち も 標 MCP コ ン フ ィ グ ー を 使 う の で、セ ッ ト ア ー プ は 同 で: ェ ー ジュ ー ン の mcpServers にhealth-mcpを加 ー る ラ。ク ロ ーン も ビ ル ー ー ド も 不 要 or,、公 付 済 み の ー ジ ー ジ を 指ー だ け で す:
{
"mcpServers": {
"health": {
"command": "npx",
"args": ["-y", "health-mcp", "--stdio"]
}
}
}こ の ブ ロ ッ ク の 置 場 こ は エ ー ジ ャブ ン て て 異 的 ま す。エ ー ジ ャ ン ト の MCP 設 定 で の パ を 確 認 め て く さ い。
そ し て ー ジ ャ ン ト に て 依 してください:
「 朝 り に 卵 と ト ー ス を 記 録 し て」 →
log_meal「 空 腹 時 血 の ト レ ン ド は ど う 」 →
biomarker_trend「 タ ン ぱ ク 質 摂 取 は 翌 日Whoopの リ カ バ リ ー と 相 関 す る?」 →
correlateにlag_buckets: 1
ローカルチ ェ ッ ク ア ウ ト し て 実 行 す 場 合 は ど ー ち ? pnpm buid の 後 に "commad": "node" の "args": ["/…th/health-mcp/…n..cs/server/d…/…js", "--stdio"] を 使 う、ま た は ビ ル ド を 飛 ひ 越 し て "commad": "node" の "args": ["--import", "tsx", "/…th/hhealth-mcp/…ns/s…/…c/tx", "--tdo"] を 使 い ま を 。
MCP イ ン ス ペ ク ー ー
cd apps/server
pnpm inspectこれ は MCP ン ス ペ ク ー を ー ス ト child に 対 して 開 き、手 で ー ル を 試 す た め の も あ で。
HTTP / カ ス タ ム ー ク
Streamable-HTP ト ー ザ ン ホ ー ー ト は ダッ シ ュ ボ ー ド 同 ポ ー ト の POST /mop に マ ウ ン ト さ て い る す。 HTTP対応 のMCP ク ィ ー ン 十 に ttp://27.0.0.1:7777/mcp を 向 け ・ ー ー ク が 設 さ れ てい を 場 は Authorization: Bearer <HEALTH_MCP_TOKEN> を 送 つ て く ー だ ま。
ウ ェ ア ブ ル プ ロ ー バ ー へ の 最 初 OAut 連 携 に は、コ lバ ッ ク ー ル がリダ ー レ ク ト を 受 け る で き る HTTP サ ーバ が 実 行 し て い る 必 が あ ー ま す。ー た 連 携 後、リ ー ッ シ ュ ー ク ン は auth.json に 保 存 さ れ、std モ ー ド か らも 永 続 的 同 期 で な ま す。
ダー シ ー ュー ボ ー ー ン
同 じ プ ロ セ の プロ の ー ス で / 提 配 供 さ れ す。現 時 ポ ー ー ジ:
本人 Today — 日 の の 食 事、目 標 と の 合 計、水 力ー 解決、体 重
: Log — 食‑、水ーー注、体 重、身 体 測 定 と 追 加
・Food、Recipes、Batches — 食 事 グ ・Goals — マ グ ロ の 範 囲、た 重 目 標
Labs — ッ ネ ル、件 結、ト レ ン、バィオ マー ー タ ご と の About カ ド
Tends — 週 間 集 計 (ロ ー ル ア ッ プ)
Wearables — プ ー バ イ ダ の 状 態、睡 睡 / ア ク ィ ティ / レ ィ ネ / 日indicator
Insights —
correlate用 の ュー ISettings — ト ー ク ン、く ー 界 タ 集、 テ ー
TanStack Router、ー リ ァ ン を Tailwind v4 の 上 で 使 う つ、Kumo UI お ぶ リ、Recharts に よ る ー チ デ ル の ダ ー ク モ は 標 準 で OS に 従 い、Settings で 固 定 で き が
設 定
優 先 順 フ ー グ > 環 境 変 > JSON ー)ca > デ ー ー ル
を 域 変 数 | 用 途 | デー ル |
| Bearr トー ン。ルー ー ッ バ 以 外 に 進 み 任 する時 に 必 ー。 | 未 設 置(アプバックのみ) |
| HTP ポ ー ト |
|
| 束 束 ホー ト |
|
|
|
|
| 日 単 位 ・ バ ケ ットの ク エ リに 使 用 用 ー タ ム ゾ ン | シ ス テ ム 店 |
| Whoop の OAuth ア プリ ー 情 報 | なし |
`HEALTH_MCP_OU_、など | Oura の OAut ア ー 情 報 | ー |
| USDA FoodData Centra の リ モ ー ト検 索 を 用 に | ロ ー カ ル検 索 のみ |
|
|
|
|
|
|
ー の す べて フ ー グ、ー の て 環ー 境 変 ー、JSON ン フ ィ ー の ュ ー マ、起 動 時 に 実 施 施 る あ セ ー リ テ ィ 不 変 は ocs/CONFIGURATION.md ま に ま す。
プ ラ イ バ ー と セ キ ュ リ ー 、主 体
サ ー バ ー は フ ェ ー ル ク ー ー さ る よう に 設 計 さ れ て ま す。
· ル ー ー バ ッ ク だ け が 安 全 な デ ー フォック や て 他の 場 所 に バ イ ン ド す る に は、HEALTH_MCP_TOKE に を32字 以上 の 高 エ ー ト ホ ー ー 文 字 列(openssl ran -hex 32)を に す る 必 要 が が す。 そ 以 外 で は サ ー バ ー は ソ ー ト フ ォ ー ル バ ッ ク な く 起 動 し 拒 む 行 動。
· data.db と auth.json は 0700 の 親 デ ー の中に 060 で 作 さ れ ま。 緩 な パ ミ ー は --llow-insecure-db / --aow-insecure-th を 渡 き と 拒 拒 し ま す。
· ェ ア ブ ラ ル の OAuth 認 証 報 は ー 資 と 別 分 ー て ~/.health-mcp/auth.json に 存 保 ま で、health-mcp exportが ド ー バー の ト ー ケ ン を る こ で な ー ranch。</degree。
· Whoop の よ に ⑥ ァ イ ダー は 使 う た たび で リ フ ー シ ュ ー ク ン を ロ ー テ ー し て ま。ー 証 認 ス ー ー は プ ロ ー バ ー ご る の リ フ レ ッ シ ュ を 直 列 化 す る た、同 同 401 つ つの トー ン を 同 ー 時 二 を 消 費 に め、ー ク ア ウ ト ン さ れ る こ る なく ン 。
· OAuth コ ー バ ン ク は ー ド 付 き の 状 ス ペ ロ ー ド ン(10 分 期限、シー ルー ン の ノ ン 除)を 使 用 し、SQL ライ に 記 録 し ま す。 リ プ レー も 偽 造 さ で ん。
これ が ら を う を 守 る す か、そ し 「て データ とは って い ー ー 、ま た サ ー ス バー を ロ ー カ ル ホー の 外 に 正 し く 露 ー す ー /( TLS終端子 ー ネ ル、医 み ュ ー ト の 注 ーム を 確 認 認 )は docs/SECURITY.md に 詳 解 さ て い き ま す。
、構 成 成
一 つの Node プロ ロ セ ご す。如 Hono ア プ リが ン バ ー を 条 /mcp に、REST ミー ラー を ま、の つ に、Wearable OAuth コ ル バ ー の を /auth/wearable/callback に、れ ダ ー シ ー ボー ド さ ん を ある セ つ に ッー ン ト し て い ま。ス ト レー ジ は ル を /し に て か り 、ト ー ン の マ の ー ル as to ん ッー ン。 journal_mod=WAL と foreign_keys=ON を 有 しかかにて ー ー す。 〇 て の ビ ジ ネ ン ロ ジ は ー で 。`ー ー。 な る 參 シ て ー ー よ し ま ー 。 MCP ー ール 、ハ ン ド ン ー ー ー ー ー ー ー だ サー ー ー ー ー ー ーーは Mail な Zod 検ー さ っ レ ー ー 、 し ー く ン し の は ー そ ー れ る い ま す。 W--able デ ー が ら 大 ー ン ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー 。 同 ー ン ー お る の 同 ー ン ー ぢ ー ン ー ー で、ア ン ー ー ロ ン の ー ラ ー ミ 出 る ー ー ル ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー。
** ウ ェブ ーG ス さ ん い ー 。** に ょ う バ イプ イ、N げ む ー ク マ ン ーー ー こ 、み こ 、い んレ ミー ー ー ー ー ー ー ー ー ー ー し 。 ア り ま ー に こ ー る レ 、 に よ ー る 、各 リ ー ー ー 、 ー グ ジ ク ン に ー ー て い ー 。 そ ー を え 、ま ー ー ー ー 、ー ー ー 。 ー ー 、ー ー ー ー ー ー ー ー ー ー ー 。 、 reg、ー、ーー 、その え ー 。
。 ー ー 。 ー。
ー ー 、 prose、 ーー 。ー 。 ー ー 。 ーー ー。 。 ー ー 。 。 ー 。 ー。
ー 。 discover_capabilities ー は 、 エ ー ジ ェ ー ト の ー ー ー ー 。 ー ー ー ー ー 。ー ー ー ー ー ン ー ー 、 ー ー ー ー 。 ー ー ー ー ー ー ー 。 ー ー ー。
ping, discover_capabilities
# food
search_food, search_foods, lookup_barcode, get_food
create_custom_food, bulk_upsert_custom_foods, update_custom_food, delete_custom_food
# meals
log_meal, list_meals, get_meal, update_meal, delete_meal, undo_last_meal,
add_meal_component, update_meal_component, remove_meal_component
# recipes + batches
create_recipe, update_recipe, delete_recipe, list_recipes, get_recipe
create_batch, list_batches, get_batch, archive_batch, delete_batch
# remembered meals (read tools hidden until you save one)
remember_meal, list_remembered_meals, get_remembered_meal,
update_remembered_meal, forget_meal, log_remembered_meal
# simple logs
log_hydration, list_hydration, delete_hydration
log_weight, list_weight, delete_weight
log_measurement, list_measurements, delete_measurement
get_goals, set_goals
# summaries
daily_summary, weekly_summary, range_summary
# biomarkers + labs
search_biomarker, get_biomarker, create_custom_biomarker, update_biomarker, set_optimal_range
log_lab_panel, log_lab_result, list_lab_results, latest_biomarkers, biomarker_trend
list_lab_panels, get_lab_panel, delete_lab_result, delete_lab_panel
# insights (hidden until ≥7 days intake AND (≥1 wearable_daily row OR ≥3 lab_results))
correlate, list_correlate_metrics
# wearables (most hidden until a provider is linked)
wearables_list_providers, wearables_status,
wearable_connect_url, wearable_disconnect, sync_wearables,
wearable_sleep, wearable_activity, wearable_readiness, wearable_daily, wearable_metric_minutes,
set_activity_type_map
# whoop (hidden until linked)
whoop_recovery, whoop_cycles, whoop_sleep_raw, whoop_workouts_raw,
whoop_profile, whoop_body_measurement**ャ、能力 プ ー ル バ 、できる が 、 ー 、 ー ー ー 。 ー 、 ー ー 、 ー ー ー ー ー 、 ー。 ー ー 、 ー ー ー。 キー ー ー 、 ー ー ー ー 、 ー ー。 パ 、 返 り 、 ー 、 を 含 め た 完 ー ー ー な カ タ ロ は、 ー ー / ー。 ー docs/MCP.md に ま と あ て い に す。
ド キ ュ メ ン ト ー ー
コントリビュート
伊シューとPRを歓迎します。
pnpm install
pnpm typecheck && pnpm lint && pnpm testいくつか基本ルール:
ビジネスロジックは
apps/server/src/services/に置きます。MCPツール(src/mcp/tools/)とRESTルート(src/rest/)はそれらの薄いラッパーです。ハンドラーにロジックを置かないてください。マイグレーションは
apps/server/src/db/sql/000N-*.tsのチェックイ星TypeScriptモジュールです。前方のみ(forward-only)です。共有的Zodスキーマは
packages/sharcdにあります。サーバーとダッシュボードはそこで一致します。新しいサービスにはVitestケース(
*.test.ts)または整ー版スイート(apps/server/src/integration.test.ts)でのカバレッジが必要です。プッシュ前に
pnpm lint:fixを実装します — Biome。
新しいウェアブル・プロバイダーの追加は自己完結した作業です: apps/server/src/wearables/providers/<id>/を作成し、生ミラー・テーブルを含むマイグレーションを追加し、ウェアブル・レジストリに登録します。正規化された読み取りツールがそれに自動的に繋がります。詳しくはdocs/WEARABLES.mdをご参照ください。
リリースの作成はワンクリックのGitHub Actions実行です: バンプ、タグ付け、npm公開(OIDC)、GHCRタグを一度に行います。docs/RELEASING.mdをご参照ください。
ステータス
個人プロジェクトで、熱心に開発しています。データモデルは栄養、バイオマーカー、Whoop / Oura同期で安定しています。マイグレーションは前方のみ(forward-only)で、起動時に実行されます。1.0タグまではツール・パラメータとダッシュボードルートの破壊的変更が発生します。何かで止まってしまった場合は、イシューを登録してください。
ことは個人用途のツールであり、医学的アドバイスや医療機器ではありません。ここて通知される値、レンジ、相関は自己量化め定的で、診断目てはありません。
テクノロジー
Node ≥ 20 · pnpm · TypeScript(ESM、strict) · Hono · @modelcontextprotocol/sdk v1 · better-sqlite3 · Zod · croner · Vitest · Biome.
ダッシュボード: Vite · React 18 · TanStack Router + TanStack Query · Tailwind v4 · Kumo UI · Recharts.
ライセンス
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gavinxiong668/health-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server