wellness-nourish
v0.7.0
Published
Local-first nutrition MCP server for AI agents: food search, barcode lookup, meal photos, hydration, goals and safe intake logging.
Maintainers
Readme
⚡ One-command install — pick your runtime:
- Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup- Delx Wellness for OpenClaw:
npx -y delx-wellness-openclaw setupBoth 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 Agent Workbench for prompt packs, MCP client configs and local-first workflow templates.
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.
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 wellness-nourish 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)
npx -y wellness-nourish doctor
npx -y wellness-nourish search banana
npx -y wellness-nourish barcode 0000000000000
npx -y wellness-nourish 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.
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:
$ NOURISH_FIXTURE_MODE=1 wellness-nourish search banana
Bananas, raw usda 89 kcal/100g
BANANA usda 312 kcal/100gTry 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).
- Full CLI (20+ commands), install, client configs & ChatGPT dashboard →
docs/cli.md - Hermes / Telegram personal setup (10-step flow) →
docs/telegram.md - Data providers & attribution (USDA, Open Food Facts, ZXing) →
docs/providers.md - pt-BR meal-estimator eval set (52 examples) →
docs/evals/pt-br-meal-estimator.json - Reproducible Telegram/Hermes demo transcript →
docs/telegram-demo-transcript.json
Food photo decision tree
Agents should route Telegram/Hermes/OpenClaw food photos by the strongest signal they can extract:
- Barcode is visible and image bytes are available: call
nourish_lookup_barcode_image. - Barcode is blurry or no product is found: ask for sharper barcode digits, or call
nourish_analyze_food_imagewithbarcode_observationplus any OCR/meal clues. - Nutrition facts are readable: OCR the label and call
nourish_analyze_food_imagewithproduct_nameandnutrition_label_text. - It is a plate or unpackaged food: describe visible foods/portions and call
nourish_analyze_food_imagewithdetected_itemsorimage_description. - 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:
{ "image_path": "/tmp/telegram-food-photo.jpg" }{ "image_base64": "<base64 image bytes>", "image_mime_type": "image/jpeg" }{ "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.
The capture above is generated from a real MCP run in fixture mode with a temporary local directory:
npm run demo:captureThe 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:
npx -y delx-living-body demoAnchor 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:
| Provider | Package | Repo |
|---|---|---|
| WHOOP | whoop-mcp-unofficial | whoop-mcp |
| Oura | oura-mcp-unofficial | ouramcp |
| Garmin | garmin-mcp-unofficial | garmin-mcp |
| Strava | strava-mcp-unofficial | strava-mcp |
| Fitbit | fitbit-mcp-unofficial | fitbitmcp |
| Google Health | google-health-mcp-unofficial | google-health-mcp |
| Withings | withings-mcp-unofficial | withingsmcp |
| Apple Health | apple-health-mcp-unofficial | apple-health-mcp |
| Samsung Health | samsung-health-mcp-unofficial | samsung-health-mcp |
| Polar | polar-mcp-unofficial | polarmcp |
| Nourish (nutrition) | wellness-nourish | wellness-nourish |
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
- 📨 [email protected] — general questions, integration help, partnerships
- 🐛 Bug reports / feature requests — GitHub Issues
- 🐦 Updates — @delx369 on X
- 🌐 Site — wellness.delx.ai
