{
  "markdown": "<!-- delx-wellness header v2 -->\n<h1 align=\"center\">Wellness Nourish</h1>\n\n<div align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Wellness Nourish — Nourish MCP for AI agents\" width=\"85%\" />\n</div>\n\n<h3 align=\"center\">\n  Local-first nutrition MCP &mdash; food search, barcode lookup, intake logging, hydration. Works without OAuth.<br>\n  Local-first MCP server &mdash; <strong>tokens never leave your machine</strong>.\n</h3>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/wellness-nourish\"><img src=\"https://img.shields.io/npm/v/wellness-nourish?style=for-the-badge&labelColor=0F172A&color=10B981&logo=npm&logoColor=white\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/davidmosiah/wellness-nourish/releases/latest\"><img src=\"https://img.shields.io/github/v/release/davidmosiah/wellness-nourish?style=for-the-badge&labelColor=0F172A&color=2563EB&logo=github\" alt=\"GitHub release\" /></a>\n  <a href=\"https://www.npmjs.com/package/wellness-nourish\"><img src=\"https://img.shields.io/npm/dm/wellness-nourish?style=for-the-badge&labelColor=0F172A&color=0EA5A3&logo=npm&logoColor=white\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/davidmosiah/wellness-nourish/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/davidmosiah/wellness-nourish/ci.yml?branch=main&style=for-the-badge&labelColor=0F172A&label=CI\" alt=\"CI\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/LICENSE-MIT-22C55E?style=for-the-badge&labelColor=0F172A\" alt=\"License MIT\" /></a>\n  <a href=\"https://wellness.delx.ai/nutrition\"><img src=\"https://img.shields.io/badge/SITE-wellness.delx.ai-0EA5A3?style=for-the-badge&labelColor=0F172A\" alt=\"Site\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/davidmosiah/wellness-nourish/stargazers\"><img src=\"https://img.shields.io/github/stars/davidmosiah/wellness-nourish?style=for-the-badge&labelColor=0F172A&color=FBBF24&logo=github\" alt=\"GitHub stars\" /></a>\n  <a href=\"https://modelcontextprotocol.io\"><img src=\"https://img.shields.io/badge/BUILT_FOR-MCP-7C3AED?style=for-the-badge&labelColor=0F172A\" alt=\"Built for MCP\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness/blob/main/docs/release-index.md\"><img src=\"https://img.shields.io/badge/VERIFIED-release_index-0EA5A3?style=for-the-badge&labelColor=0F172A\" alt=\"Verified release index\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness-hermes\"><img src=\"https://img.shields.io/badge/HERMES-one--command_setup-10B981?style=for-the-badge&labelColor=0F172A\" alt=\"Hermes one-command setup\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness-openclaw\"><img src=\"https://img.shields.io/badge/OPENCLAW-one--command_setup-FB923C?style=for-the-badge&labelColor=0F172A\" alt=\"OpenClaw one-command setup\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness\"><img src=\"https://img.shields.io/badge/Nourish-10B981?style=for-the-badge&labelColor=0F172A&logoColor=white\" alt=\"Nourish\" /></a>\n</p>\n\n<p align=\"center\">\n  <strong>📈 Published on npm and used by AI agents and MCP clients</strong> &mdash; see the live <a href=\"https://www.npmjs.com/package/wellness-nourish\">download badge</a> above for current numbers.<br>\n  <sub>If Nourish helps your agent, a ⭐ on this repo makes it easier for other AI builders to find.</sub>\n</p>\n\n> ⚡ **One-command install** &mdash; pick your runtime:\n> - [Delx Wellness for Hermes](https://github.com/davidmosiah/delx-wellness-hermes): `npx -y delx-wellness-hermes setup`\n> - [Delx Wellness for OpenClaw](https://github.com/davidmosiah/delx-wellness-openclaw): `npx -y delx-wellness-openclaw setup`\n>\n> Both preconfigure this connector and the full Delx Wellness stack into a dedicated profile. Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop &mdash; see the install section below.\n>\n> Want runnable agent examples? Use the [Delx Wellness hub](https://github.com/davidmosiah/delx-wellness#run-it-in-your-agent) for prompt packs, MCP client configs and local-first workflow templates.\n\n> **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 wellness-nourish search banana`. Notes: [CHANGELOG.md](CHANGELOG.md) · eval: [`docs/evals/pt-br-meal-estimator.json`](docs/evals/pt-br-meal-estimator.json) (52 cases).\n\n> **Public proof:** Nourish is tracked in the Delx [Open Source Growth Snapshot](https://github.com/davidmosiah/delx-wellness/blob/main/docs/open-source-growth-snapshot.md) 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.\n\n---\n\n## HTTP (v2 stateless)\n\nDefault is **stdio**. Optional Streamable HTTP — no session id, JSON responses, loopback only:\n\n```bash\nnpx -y wellness-nourish --http\n# GET  http://127.0.0.1:3000/health\n# POST http://127.0.0.1:3000/mcp   (sessionless)\n```\n\nEnv: `NOURISH_MCP_HOST`, `NOURISH_MCP_PORT`, `NOURISH_MCP_TRANSPORT=http`.\n\n\n<!-- /delx-wellness header v2 -->\n\nLocal-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.\n\n## Front door\n\n- **Install one connector** — `npx -y wellness-nourish setup --client claude`\n- **Run it in** Claude · Cursor · ChatGPT · Hermes · OpenClaw — see the [client examples](https://github.com/davidmosiah/delx-wellness#run-it-in-your-agent).\n- **Local-first** — your tokens and food logs never leave your machine ([privacy](#privacy--what-runs-offline)).\n- **Which connector should I use?** — see the [front-door guide](https://github.com/davidmosiah/delx-wellness#which-connector-should-i-use).\n\n## Quickstart (60 seconds)\n\n```bash\nnpx -y wellness-nourish@0.8.0 doctor\nnpx -y wellness-nourish@0.8.0 search banana\nnpx -y wellness-nourish@0.8.0 barcode 0000000000000\nnpx -y wellness-nourish@0.8.0 log --preview \"2 ovos, banana e café preto\"\n```\n\n`doctor` checks readiness, `search`/`barcode` hit the food providers, and `log --preview` estimates a meal locally without writing anything.\n\n### How you can help\n\n| Action | Link |\n| --- | --- |\n| Star if it earned it | [stargazers](https://github.com/davidmosiah/wellness-nourish/stargazers) |\n| Docs GFI — first meal in 2 minutes | [#25](https://github.com/davidmosiah/wellness-nourish/issues/25) |\n| File a real bug / pt-BR food miss | [issues](https://github.com/davidmosiah/wellness-nourish/issues) |\n| Full wellness hub | [`delx-wellness`](https://github.com/davidmosiah/delx-wellness) |\n\n### Zero-secret demo (offline, no API key)\n\n`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:\n\n```bash\n$ NOURISH_FIXTURE_MODE=1 wellness-nourish search banana\nBananas, raw\tusda\t89 kcal/100g\nBANANA\tusda\t312 kcal/100g\n```\n\n## Try it with your agent\n\nThree copy-paste prompts, all backed by existing tools:\n\n- \"Estimate the calories and protein in 2 eggs, a banana and black coffee.\" → `nourish_estimate_meal`\n- \"Look up the barcode 737628064502 and tell me what it is.\" → `nourish_lookup_barcode`\n- \"What should I eat next today, given my goals?\" → `nourish_daily_coach` / `nourish_suggest_next_meal`\n\nMutating 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`.\n\n## Tools\n\nNourish 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`).\n\n- **Full CLI (20+ commands), install, client configs & ChatGPT dashboard** → [`docs/cli.md`](docs/cli.md)\n- **Hermes / Telegram personal setup (10-step flow)** → [`docs/telegram.md`](docs/telegram.md)\n- **Data providers & attribution (USDA, Open Food Facts, ZXing)** → [`docs/providers.md`](docs/providers.md)\n- **pt-BR meal-estimator eval set (52 examples)** → [`docs/evals/pt-br-meal-estimator.json`](docs/evals/pt-br-meal-estimator.json)\n- **Reproducible Telegram/Hermes demo transcript** → [`docs/telegram-demo-transcript.json`](docs/telegram-demo-transcript.json)\n\n### Food photo decision tree\n\nAgents should route Telegram/Hermes/OpenClaw food photos by the strongest signal they can extract:\n\n1. Barcode is visible and image bytes are available: call `nourish_lookup_barcode_image`.\n2. 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.\n3. Nutrition facts are readable: OCR the label and call `nourish_analyze_food_image` with `product_name` and `nutrition_label_text`.\n4. It is a plate or unpackaged food: describe visible foods/portions and call `nourish_analyze_food_image` with `detected_items` or `image_description`.\n5. Never log from an image response until the user confirms the product or meal, serving size and save intent.\n\nImage tools accept exactly one of these input forms:\n\n```json\n{ \"image_path\": \"/tmp/telegram-food-photo.jpg\" }\n```\n\n```json\n{ \"image_base64\": \"<base64 image bytes>\", \"image_mime_type\": \"image/jpeg\" }\n```\n\n```json\n{ \"image_data_uri\": \"data:image/jpeg;base64,<base64 image bytes>\" }\n```\n\nIf 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.\n\n<p align=\"center\">\n  <img src=\"assets/telegram-hermes-nourish-demo.webp\" alt=\"Wellness Nourish Telegram and Hermes demo capture showing estimate, confirmation, log and daily summary\" width=\"92%\" />\n</p>\n\nThe capture above is generated from a real MCP run in fixture mode with a temporary local directory:\n\n```bash\nnpm run demo:capture\n```\n\nThe committed transcript proves the exact tool sequence: `nourish_estimate_meal` → user confirmation → `nourish_log_intake` → `nourish_daily_summary`.\n\n## Privacy & what runs offline\n\nIntake, 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.\n\nAgents 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`](docs/providers.md).\n\n## See the full agent demo →\n\nWatch Nourish work alongside the other connectors in one reproducible run:\n\n```bash\nnpx -y delx-living-body demo\n```\n\nAnchor 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.\n\n<!-- delx-wellness see-also -->\n\n## See also\n\nThe full [Delx Wellness](https://wellness.delx.ai) connector library:\n\n| Provider | Package | Repo |\n|---|---|---|\n| WHOOP | [`whoop-mcp-unofficial`](https://www.npmjs.com/package/whoop-mcp-unofficial) | [whoop-mcp](https://github.com/davidmosiah/whoop-mcp) |\n| Oura | [`oura-mcp-unofficial`](https://www.npmjs.com/package/oura-mcp-unofficial) | [ouramcp](https://github.com/davidmosiah/ouramcp) |\n| Garmin | [`garmin-mcp-unofficial`](https://www.npmjs.com/package/garmin-mcp-unofficial) | [garmin-mcp](https://github.com/davidmosiah/garmin-mcp) |\n| Strava | [`strava-mcp-unofficial`](https://www.npmjs.com/package/strava-mcp-unofficial) | [strava-mcp](https://github.com/davidmosiah/strava-mcp) |\n| Fitbit | [`fitbit-mcp-unofficial`](https://www.npmjs.com/package/fitbit-mcp-unofficial) | [fitbitmcp](https://github.com/davidmosiah/fitbitmcp) |\n| Google Health | [`google-health-mcp-unofficial`](https://www.npmjs.com/package/google-health-mcp-unofficial) | [google-health-mcp](https://github.com/davidmosiah/google-health-mcp) |\n| Withings | [`withings-mcp-unofficial`](https://www.npmjs.com/package/withings-mcp-unofficial) | [withingsmcp](https://github.com/davidmosiah/withingsmcp) |\n| Apple Health | [`apple-health-mcp-unofficial`](https://www.npmjs.com/package/apple-health-mcp-unofficial) | [apple-health-mcp](https://github.com/davidmosiah/apple-health-mcp) |\n| Samsung Health | [`samsung-health-mcp-unofficial`](https://www.npmjs.com/package/samsung-health-mcp-unofficial) | [samsung-health-mcp](https://github.com/davidmosiah/samsung-health-mcp) |\n| Polar | [`polar-mcp-unofficial`](https://www.npmjs.com/package/polar-mcp-unofficial) | [polarmcp](https://github.com/davidmosiah/polarmcp) |\n| Nourish (nutrition) | [`wellness-nourish`](https://www.npmjs.com/package/wellness-nourish) | [wellness-nourish](https://github.com/davidmosiah/wellness-nourish) |\n\n**One-command setup for Hermes** — preconfigures every connector above plus wellness skills + onboarding: [`delx-wellness-hermes`](https://github.com/davidmosiah/delx-wellness-hermes).\n\n<!-- /delx-wellness see-also -->\n\n---\n\n## Not medical advice\n\nNutrition 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.\n\n**Unofficial.** Not affiliated with, endorsed by, or sponsored by USDA, Open Food Facts, or any third party. All trademarks belong to their respective owners.\n\n## 📧 Contact & Support\n\n- 📨 **support@delx.ai** — general questions, integration help, partnerships\n- 🤝 **Code of Conduct** — [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n- 🐛 **Bug reports / feature requests** — [GitHub Issues](https://github.com/davidmosiah/wellness-nourish/issues)\n- 🐦 **Updates** — [@delx369](https://x.com/delx369) on X\n- 🌐 **Site** — [wellness.delx.ai](https://wellness.delx.ai)\n\n**First meal in 2 minutes:** [docs/first-meal-2-minutes.md](docs/first-meal-2-minutes.md)\n\n**Wearable context fields (no invention):** [docs/wearable-context-schema.md](docs/wearable-context-schema.md)\n\n## Skill or MCP\n\nSame package, two doors. MCP registers tools on stdio/HTTP. The [skill](skill/SKILL.md) can drive the **same** tools through the CLI when the client has no MCP:\n\n```bash\nnpx -y wellness-nourish call nourish_connection_status --json '{}'\n```\n\nCopy `skill/SKILL.md` into your agent skills dir.\n",
  "bytes": 14788,
  "sha": "dc9198b7bf4e2507ee1ec9c088e15036e96f5c0cd6ac63f860b023208e1c23d6",
  "repo_slug": "davidmosiah/wellness-nourish",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_davidmosiah_wellness_nourish_165977a0/readme"
}