wellness-nourish 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,7 +25,7 @@
25
25
  </p>
26
26
 
27
27
  > ⚡ **One-command install** with [Delx Wellness for Hermes](https://github.com/davidmosiah/delx-wellness-hermes):
28
- > `npx -y delx-wellness-hermes setup` &mdash; preconfigures this connector and the other 8 in a dedicated Hermes profile.
28
+ > `npx -y delx-wellness-hermes setup` &mdash; preconfigures this connector and the rest of the Delx Wellness stack in a dedicated Hermes profile.
29
29
  >
30
30
  > Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop &mdash; see the install section below.
31
31
 
@@ -39,6 +39,25 @@ Wellness Nourish is a local MCP server for nutrition search, barcode lookup, bar
39
39
 
40
40
  > If this nutrition layer helps your agent workflow, please star the repo. Stars make the project easier for other AI builders to discover and help Delx keep shipping local-first wellness infrastructure.
41
41
 
42
+ <p align="center">
43
+ <img src="assets/telegram-nourish-demo.svg" alt="Wellness Nourish Telegram and Hermes nutrition workflow demo" width="92%" />
44
+ </p>
45
+
46
+ ## Try It In 60 Seconds
47
+
48
+ ```bash
49
+ npx -y wellness-nourish doctor
50
+ npx -y wellness-nourish search banana
51
+ npx -y wellness-nourish log --preview "2 ovos, banana e café preto"
52
+ ```
53
+
54
+ For the full Telegram/Hermes flow:
55
+
56
+ ```bash
57
+ npx -y delx-wellness-hermes setup
58
+ hermes -p delx-wellness
59
+ ```
60
+
42
61
  The connector uses USDA FoodData Central as the primary food search provider. Open Food Facts is used for packaged-food barcode lookup and product-name search when enabled. Local barcode image decoding is supported with ZXing. Meal photos are estimated only from an agent-provided visual observation and always require confirmation before logging. The local estimator includes a pt-BR/Brazilian-food catalog for common meals, kitchen units, and shortcuts such as arroz, feijão, frango, ovos, banana, tapioca, picanha, feijoada and salada. It does not provide hosted sync, autonomous photo upload, recipe generation, or medical advice.
43
62
 
44
63
  ## Install
@@ -221,8 +240,10 @@ The full [Delx Wellness](https://wellness.delx.ai) connector library:
221
240
  | Garmin | [`garmin-mcp-unofficial`](https://www.npmjs.com/package/garmin-mcp-unofficial) | [garminmcp](https://github.com/davidmosiah/garminmcp) |
222
241
  | Strava | [`strava-mcp-unofficial`](https://www.npmjs.com/package/strava-mcp-unofficial) | [strava-mcp](https://github.com/davidmosiah/strava-mcp) |
223
242
  | Fitbit | [`fitbit-mcp-unofficial`](https://www.npmjs.com/package/fitbit-mcp-unofficial) | [fitbitmcp](https://github.com/davidmosiah/fitbitmcp) |
243
+ | 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) |
224
244
  | Withings | [`withings-mcp-unofficial`](https://www.npmjs.com/package/withings-mcp-unofficial) | [withingsmcp](https://github.com/davidmosiah/withingsmcp) |
225
245
  | 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) |
246
+ | 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) |
226
247
  | Polar | [`polar-mcp-unofficial`](https://www.npmjs.com/package/polar-mcp-unofficial) | [polarmcp](https://github.com/davidmosiah/polarmcp) |
227
248
  | Nourish (nutrition) | [`wellness-nourish`](https://www.npmjs.com/package/wellness-nourish) | [wellness-nourish](https://github.com/davidmosiah/wellness-nourish) |
228
249
 
@@ -0,0 +1,57 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630" role="img" aria-labelledby="title desc">
2
+ <title id="title">Wellness Nourish Telegram demo</title>
3
+ <desc id="desc">A Telegram conversation where Hermes uses Wellness Nourish to estimate a Brazilian meal, check protein remaining, and ask for confirmation before logging.</desc>
4
+ <defs>
5
+ <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
6
+ <stop offset="0" stop-color="#052e2b"/>
7
+ <stop offset="0.52" stop-color="#0f172a"/>
8
+ <stop offset="1" stop-color="#1e1b4b"/>
9
+ </linearGradient>
10
+ <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
11
+ <feDropShadow dx="0" dy="16" stdDeviation="18" flood-color="#020617" flood-opacity="0.45"/>
12
+ </filter>
13
+ </defs>
14
+ <rect width="1200" height="630" fill="url(#bg)"/>
15
+ <circle cx="1040" cy="110" r="170" fill="#10b981" opacity="0.14"/>
16
+ <circle cx="150" cy="520" r="190" fill="#fbbf24" opacity="0.10"/>
17
+
18
+ <text x="72" y="86" fill="#f8fafc" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="44" font-weight="850">Wellness Nourish</text>
19
+ <text x="72" y="126" fill="#a7f3d0" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="22" font-weight="650">Nutrition MCP for agents: food, barcode, hydration, goals and confirmation-safe logging</text>
20
+
21
+ <g filter="url(#shadow)">
22
+ <rect x="86" y="170" width="500" height="368" rx="28" fill="#0b1220" stroke="#164e63"/>
23
+ <rect x="86" y="170" width="500" height="62" rx="28" fill="#0f766e"/>
24
+ <text x="122" y="209" fill="#ecfeff" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="22" font-weight="800">Telegram with Hermes</text>
25
+
26
+ <rect x="124" y="266" width="318" height="56" rx="18" fill="#0f766e"/>
27
+ <text x="148" y="300" fill="#ecfeff" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17">Log my lunch: rice, beans, chicken</text>
28
+
29
+ <rect x="214" y="348" width="318" height="116" rx="18" fill="#111827" stroke="#334155"/>
30
+ <text x="238" y="380" fill="#f8fafc" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17" font-weight="700">Estimated before logging</text>
31
+ <text x="238" y="410" fill="#d1fae5" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17">~560 kcal · 42g protein</text>
32
+ <text x="238" y="438" fill="#d1fae5" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17">confidence 0.82 · pt-BR parsed</text>
33
+
34
+ <rect x="124" y="486" width="176" height="42" rx="16" fill="#0f766e"/>
35
+ <text x="148" y="513" fill="#ecfeff" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17">yes, save it</text>
36
+ </g>
37
+
38
+ <g filter="url(#shadow)">
39
+ <rect x="660" y="170" width="454" height="368" rx="28" fill="#111827" stroke="#1f2937"/>
40
+ <text x="700" y="220" fill="#f8fafc" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="26" font-weight="850">Agent tool sequence</text>
41
+ <text x="700" y="252" fill="#99f6e4" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="17">always estimates first, writes only after intent</text>
42
+
43
+ <g font-family="Inter, Segoe UI, Arial, sans-serif" font-size="18" font-weight="750">
44
+ <rect x="700" y="292" width="326" height="46" rx="14" fill="#134e4a"/>
45
+ <text x="724" y="322" fill="#f0fdfa">nourish_estimate_meal</text>
46
+ <rect x="700" y="356" width="326" height="46" rx="14" fill="#134e4a"/>
47
+ <text x="724" y="386" fill="#f0fdfa">nourish_daily_summary</text>
48
+ <rect x="700" y="420" width="326" height="46" rx="14" fill="#134e4a"/>
49
+ <text x="724" y="450" fill="#f0fdfa">ask for confirmation</text>
50
+ <rect x="700" y="484" width="326" height="46" rx="14" fill="#065f46"/>
51
+ <text x="724" y="514" fill="#f0fdfa">nourish_log_intake</text>
52
+ </g>
53
+ </g>
54
+
55
+ <rect x="72" y="570" width="1056" height="38" rx="16" fill="#020617" opacity="0.70"/>
56
+ <text x="102" y="595" fill="#e2e8f0" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="18" font-weight="700">Designed for daily personal use through agents, with local persistence and explicit user intent before writes.</text>
57
+ </svg>
@@ -1,10 +1,10 @@
1
1
  export declare const SERVER_NAME = "nourish-mcp";
2
- export declare const SERVER_VERSION = "0.2.1";
2
+ export declare const SERVER_VERSION = "0.2.2";
3
3
  export declare const NPM_PACKAGE_NAME = "wellness-nourish";
4
- export declare const PINNED_NPM_PACKAGE = "wellness-nourish@0.2.1";
4
+ export declare const PINNED_NPM_PACKAGE = "wellness-nourish@0.2.2";
5
5
  export declare const DEFAULT_HOST = "127.0.0.1";
6
6
  export declare const DEFAULT_PORT = 3000;
7
7
  export declare const LOCAL_DIR_NAME = ".wellness-nourish";
8
- export declare const USER_AGENT = "wellness-nourish/0.2.1 (https://wellness.delx.ai; contact: david@delx.ai)";
8
+ export declare const USER_AGENT = "wellness-nourish/0.2.2 (https://wellness.delx.ai; contact: david@delx.ai)";
9
9
  export declare const USDA_BASE_URL = "https://api.nal.usda.gov/fdc/v1";
10
10
  export declare const OFF_BASE_URL = "https://world.openfoodfacts.org";
package/dist/constants.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const SERVER_NAME = "nourish-mcp";
2
- export const SERVER_VERSION = "0.2.1";
2
+ export const SERVER_VERSION = "0.2.2";
3
3
  export const NPM_PACKAGE_NAME = "wellness-nourish";
4
4
  export const PINNED_NPM_PACKAGE = `${NPM_PACKAGE_NAME}@${SERVER_VERSION}`;
5
5
  export const DEFAULT_HOST = "127.0.0.1";
package/llms.txt CHANGED
@@ -7,8 +7,11 @@ Primary command: npm exec --yes --package=wellness-nourish -- wellness-nourish d
7
7
  MCP command: wellness-nourish
8
8
  Agent surfaces:
9
9
  - MCP registry name: io.github.davidmosiah/wellness-nourish
10
- - Start with the connection/status or agent-manifest surface when available.
10
+ - Start with nourish_agent_manifest, nourish_connection_status, nourish_capabilities, or nourish_privacy_audit.
11
+ - For Telegram/Hermes meal logging, estimate first, show calories/protein/confidence/warnings, then call mutating tools only after explicit user confirmation.
12
+ - Use nourish_analyze_food_image for routed image observations; use nourish_lookup_barcode_image when the image is likely a barcode.
11
13
  - Prefer JSON responses for automation and markdown responses for human summaries.
14
+ - Link human users to https://github.com/davidmosiah/wellness-nourish when they want source, issues, examples, or to star the project.
12
15
  Safety:
13
16
  - Do not paste credentials, OAuth tokens, refresh tokens, API keys or raw private exports into chat.
14
17
  - Keep local config and generated data out of git.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wellness-nourish",
3
- "version": "0.2.1",
4
- "description": "Standalone MCP server for nutrition search, intake, and meal summaries.",
3
+ "version": "0.2.2",
4
+ "description": "Local-first nutrition MCP server for AI agents: food search, barcode lookup, meal photos, hydration, goals and safe intake logging.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {
@@ -41,6 +41,21 @@
41
41
  "bugs": {
42
42
  "url": "https://github.com/davidmosiah/wellness-nourish/issues"
43
43
  },
44
+ "keywords": [
45
+ "mcp",
46
+ "model-context-protocol",
47
+ "ai-agents",
48
+ "nutrition",
49
+ "food-log",
50
+ "barcode",
51
+ "calorie-tracker",
52
+ "hydration",
53
+ "local-first",
54
+ "telegram-bot",
55
+ "hermes-agent",
56
+ "wellness",
57
+ "quantified-self"
58
+ ],
44
59
  "dependencies": {
45
60
  "@modelcontextprotocol/sdk": "^1.21.0",
46
61
  "@zxing/library": "^0.21.3",
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/davidmosiah/wellness-nourish",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.2.1",
9
+ "version": "0.2.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "wellness-nourish",
14
- "version": "0.2.1",
14
+ "version": "0.2.2",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  }