Wellness Nourish

io.github.davidmosiah由 GitHub 帳號 davidmosiah 發布v0.7.0更新於 Oct 28, 2026

Local-first nutrition MCP for AI agents: food, barcode, photo, intake, hydration, goals.

已驗證STDIO僅桌面位置與生活檔案與儲存

概覽

AI 產生的概覽

本地優先的營養 MCP 伺服器,讓助理搜尋食物、查詢條碼、依照片估算餐點,並記錄攝取、飲水與目標。

可以做什麼
  • 以文字或圖片搜尋食物、查詢條碼,解碼失敗時提供備援提示
  • 依照片、營養標示或文字描述估算餐點,含巴西葡語餐點估算
  • 記錄攝取、飲水與目標,寫入操作須有明確使用者儲存意圖才會執行
  • 產生每日與每週摘要、匯出資料,並保留個人餐點記憶
  • 依目標提供下一餐建議等教練式提示
適用情境
適合想讓助理在自己電腦上協助日常營養管理的場合:估算一餐、查詢商品條碼、維護飲食與飲水紀錄,或取得依目標的建議,且不需要託管帳號。
執行需求
以 npm 套件透過 stdio 在本機執行(需 Node.js,使用 npx);可選僅限回環位址的 HTTP 模式。不需 OAuth 或託管帳號。除非啟用離線範例模式,查詢會連線至 USDA FoodData Central 與 Open Food Facts。本機資料存於使用者家目錄下的路徑,可用環境變數覆寫。
安裝前請注意
記錄攝取、飲水、目標以及清除當日資料會寫入本機資料;伺服器會先暫緩,直到傳入明確的使用者意圖,儲存前應先確認。查詢時食物照片、條碼與搜尋詞會傳送給 USDA 與 Open Food Facts。估算值僅為近似結果,不構成醫療建議。本專案為非官方專案,與資料提供者無關聯。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Wellness Nourish,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

其他 MCP 客戶端

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

README

Wellness Nourish

Local-first nutrition MCP — food search, barcode lookup, intake logging, hydration. Works without OAuth.
Local-first MCP server — tokens never leave your machine.

[npm version] [GitHub release] [npm downloads] [CI] [License MIT] [Site]

[GitHub stars] [Built for MCP] [Verified release index] [Hermes one-command setup] [OpenClaw one-command setup] [Nourish]

📈 Published on npm and used by AI agents and MCP clients — see the live download badge above for current numbers.
If Nourish helps your agent, a ⭐ on this repo makes it easier for other AI builders to find.

⚡ One-command install — pick your runtime:

Both preconfigure this connector and the full Delx Wellness stack into a dedicated profile. Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below.

Want runnable agent examples? Use the Delx Wellness hub for prompt packs, MCP client configs and local-first workflow templates.

What's new in 0.7.1: Offline fixture demo works from the published npm package (fixtures shipped + path resolved from package root). 0.7.0: Brazilian TACO 4 meal estimator for pt-BR foods (cafezinho, feijão, concha, churrasco-style meals) plus Smithery install. Offline demo: NOURISH_FIXTURE_MODE=1 npx -y [email protected] search banana. Notes: CHANGELOG.md · eval: docs/evals/pt-br-meal-estimator.json (52 cases).

Public proof: Nourish is tracked in the Delx Open Source Growth Snapshot alongside downloads, stars and next-action priorities. If this saves you setup time, star this repo so other agent builders can find the local-first nutrition path faster.


HTTP (v2 stateless)

Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:

bash
npx -y [email protected] --http# GET  http://127.0.0.1:3000/health# POST http://127.0.0.1:3000/mcp   (sessionless)

Env: NOURISH_MCP_HOST, NOURISH_MCP_PORT, NOURISH_MCP_TRANSPORT=http.

Local-first nutrition MCP for AI agents — food search, barcode lookup, photo-assisted meal estimation, intake logging, hydration, goals and coach-style workflows. No OAuth, no hosted account.

Front door

  • Install one connector — npx -y [email protected] setup --client claude
  • Run it in Claude · Cursor · ChatGPT · Hermes · OpenClaw — see the client examples.
  • Local-first — your tokens and food logs never leave your machine (privacy).
  • Which connector should I use? — see the front-door guide.

Quickstart (60 seconds)

bash
npx -y [email protected] doctornpx -y [email protected] search banananpx -y [email protected] barcode 0000000000000npx -y [email protected] log --preview "2 ovos, banana e café preto"

doctor checks readiness, search/barcode hit the food providers, and log --preview estimates a meal locally without writing anything.

How you can help

ActionLink
Star if it earned itstargazers
Docs GFI — first meal in 2 minutes#25
File a real bug / pt-BR food mississues
Full wellness hubdelx-wellness

Zero-secret demo (offline, no API key)

NOURISH_FIXTURE_MODE=1 serves the bundled fixtures/ instead of calling USDA or Open Food Facts, so you can see the exact shape of every response with zero network access or keys:

bash
$ NOURISH_FIXTURE_MODE=1 wellness-nourish search bananaBananas, raw	usda	89 kcal/100gBANANA	usda	312 kcal/100g

Try it with your agent

Three copy-paste prompts, all backed by existing tools:

  • "Estimate the calories and protein in 2 eggs, a banana and black coffee." → nourish_estimate_meal
  • "Look up the barcode 737628064502 and tell me what it is." → nourish_lookup_barcode
  • "What should I eat next today, given my goals?" → nourish_daily_coach / nourish_suggest_next_meal

Mutating tools (log intake, water, goals, clear-day) never run without explicit user save intent — they return USER_ACTION_REQUIRED until the agent passes explicit_user_intent: true.

Tools

Nourish exposes food search, barcode lookup (text + image), photo-assisted meal estimation, intake logging, hydration, goals, exports, daily/weekly summaries, personal meal memory, and coach-style workflows over stdio (default) or Streamable HTTP (POST /mcp).

Food photo decision tree

Agents should route Telegram/Hermes/OpenClaw food photos by the strongest signal they can extract:

  1. Barcode is visible and image bytes are available: call nourish_lookup_barcode_image.
  2. Barcode is blurry or no product is found: ask for sharper barcode digits, or call nourish_analyze_food_image with barcode_observation plus any OCR/meal clues.
  3. Nutrition facts are readable: OCR the label and call nourish_analyze_food_image with product_name and nutrition_label_text.
  4. It is a plate or unpackaged food: describe visible foods/portions and call nourish_analyze_food_image with detected_items or image_description.
  5. Never log from an image response until the user confirms the product or meal, serving size and save intent.

Image tools accept exactly one of these input forms:

json
{ "image_path": "/tmp/telegram-food-photo.jpg" }
json
{ "image_base64": "<base64 image bytes>", "image_mime_type": "image/jpeg" }
json
{ "image_data_uri": "data:image/jpeg;base64,<base64 image bytes>" }

If barcode decoding fails, the response includes fallback and next_actions so the agent can ask the user for the typed digits, OCR the nutrition label, or route the photo as a meal without silently inventing a food.

[Wellness Nourish Telegram and Hermes demo capture showing estimate, confirmation, log and daily summary]

The capture above is generated from a real MCP run in fixture mode with a temporary local directory:

bash
npm run demo:capture

The committed transcript proves the exact tool sequence: nourish_estimate_meal → user confirmation → nourish_log_intake → nourish_daily_summary.

Privacy & what runs offline

Intake, hydration and goals are stored locally under ~/.wellness-nourish/ (override with NOURISH_LOCAL_DIR). The connector does not require hosted accounts and does not send local intake logs to Delx Wellness. Provider lookups may contact USDA FoodData Central or Open Food Facts — unless NOURISH_FIXTURE_MODE=1 keeps everything offline against the bundled fixtures.

Agents should never ask users to paste API keys, tokens, raw health exports, or private food logs into chat — configure secrets through environment variables or local files. Full detail in docs/providers.md.

See the full agent demo →

Watch Nourish work alongside the other connectors in one reproducible run:

bash
npx -y delx-living-body demo

Anchor question: "Should I train hard today?" — the demo combines wearable recovery signals with nutrition context to answer it. This is the shared, reproducible proof for the whole Delx Wellness stack.

See also

The full Delx Wellness connector library:

One-command setup for Hermes — preconfigures every connector above plus wellness skills + onboarding: delx-wellness-hermes.


Not medical advice

Nutrition estimates are approximate and intended for personal tracking and agent workflow context. They are not diagnosis, treatment, or medical advice. Confirm important nutrition decisions with a qualified professional.

Unofficial. Not affiliated with, endorsed by, or sponsored by USDA, Open Food Facts, or any third party. All trademarks belong to their respective owners.

📧 Contact & Support

First meal in 2 minutes: docs/first-meal-2-minutes.md

Wearable context fields (no invention): docs/wearable-context-schema.md

Skill or MCP

Same package, two doors. MCP registers tools on stdio/HTTP. The skill can drive the same tools through the CLI when the client has no MCP:

bash
npx -y [email protected] call nourish_connection_status --json '{}'

Copy skill/SKILL.md into your agent skills dir.

0.9.0 — candidate (2026-11-02)

This is a release candidate, not evidence of an npm publication. Existing installations are not updated automatically.

Migration and security boundaries

  • HTTP transport accepts loopback only. LAN addresses and wildcard binds are rejected; use stdio or a local loopback client instead.
  • Wellness profiles are validated, limited to 256 KiB, and protected with a cooperative lock. Oversized or invalid existing profiles must be corrected before use. Symbolic links, including dangling links and legacy profile paths, are rejected. These checks do not guarantee safety against a hostile local filesystem or non-cooperating processes.
  • MCP inputs have a 10,000-element budget and HTTP bodies are limited to 1 MiB; compressed request bodies are rejected. Previously accepted oversized requests may now fail; reduce request sizes rather than disabling validation.
  • Dependency fixes are included. Upgrade explicitly after publication and restart the connector; old installations retain their previous behavior.

來源:README.md,提交 587a414

工具

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

版本歷史

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

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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