← Back to search

io.github.davidmosiah/wellness-nourish

davidmosiah Scanned 14d ago

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

B
77 / 100

Versions

0.7.2latest
Jul 30, 2026
0.7.1
Jul 30, 2026
0.7.0
Jul 6, 2026
0.6.11
Jun 27, 2026
0.6.10
Jun 27, 2026
+ show 28 moreshow less
0.6.9
Jun 27, 2026
0.6.8
Jun 27, 2026
0.6.7
Jun 27, 2026
0.6.6
May 29, 2026
0.6.5
May 29, 2026
0.6.4
May 24, 2026
0.6.3
May 20, 2026
0.6.2
May 19, 2026
0.6.1
May 11, 2026
0.6.0
May 11, 2026
0.5.0
May 10, 2026
0.4.0
May 10, 2026
0.3.2
May 8, 2026
0.3.1
May 8, 2026
0.2.10
May 8, 2026
0.2.9
May 8, 2026
0.2.2
May 7, 2026
0.2.1
May 7, 2026
0.2.0
May 7, 2026
0.1.8
May 6, 2026
0.1.7
May 6, 2026
0.1.6
May 6, 2026
0.1.5
May 6, 2026
0.1.4
May 5, 2026
0.1.3
May 5, 2026
0.1.2
May 5, 2026
0.1.1
May 5, 2026
0.1.0
May 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 40

nourish_agent_manifest
annotations: none low

Return agent-facing install, safety, resource, and first-call guidance.

nourish_capabilities
annotations: none low

Describe supported nutrition workflows, providers, and recommended first tools.

nourish_connection_status
annotations: none low

Report local storage, fixture, USDA, and Open Food Facts readiness without returning secrets.

nourish_quickstart
annotations: none low

Personalized 3-step setup walkthrough for the human user. Adapts to current state (USDA key set? OFF enabled? local-dir writable?). Call this first when the user asks 'how do I use this?'

nourish_demo
annotations: verified low

Returns synthetic example payloads of nourish_search_food, nourish_estimate_meal, and nourish_daily_summary so agents see the contract before any real call. Shapes are verified against the real pipelines by scripts/demo-contract-test.mjs, so they are safe to write a parser against; `inputs` shows the call that produced each sample.

readOnlyHint false
nourish_privacy_audit
annotations: verified low

Describe local storage, secret handling, source licensing, and safety boundaries.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_profile_get
annotations: verified low

Returns the shared Delx Wellness profile (~/.delx-wellness/profile.json). Read-only. Surfaces calorie/macro targets, dietary preferences, restrictions/allergies, and goals so nourish coach/suggest tools can personalize meals.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_profile_update
annotations: verified low

Persist a partial patch to the shared Delx Wellness profile. Requires explicit_user_intent: true. Rejects any field containing oauth/token/secret/password/cookie/refresh/api_key/session — the profile is for non-secret wellness context only.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_onboarding
annotations: none low

Returns the 11-question onboarding flow for the shared Delx Wellness profile. Read-only. The agent should ask these questions next so wellness-nourish (and the rest of the wellness stack) can personalize responses — non-secret data only, stored at ~/.delx-wellness/profile.json.

nourish_search_food
annotations: none low

Search food providers by query. Use taco or br_local for Brazilian staples, open_food_facts for packaged products, usda for generic foods, or all.

nourish_lookup_barcode
annotations: none low

Lookup a packaged food barcode in Open Food Facts.

nourish_decode_barcode_image
annotations: none low

Decode a barcode from an image path, base64 image, or data URI without logging intake.

nourish_lookup_barcode_image
annotations: none low

Decode a packaged-food barcode image, then lookup the product in Open Food Facts.

nourish_get_food
annotations: none low

Fetch a USDA food by source_id, an Open Food Facts food by barcode source_id, or a TACO food by source_id.

nourish_estimate_meal
annotations: verified low

Estimate nutrition for a short meal text using local deterministic defaults. Accepts text or meal_text; preserve unresolved and confidence.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_estimate_meal_photo
annotations: verified low

Estimate meal nutrition from an agent-provided photo observation; always requires user confirmation before logging.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_analyze_food_image
annotations: verified low

Route agent-provided food image observations across barcode, nutrition label OCR, or meal-photo estimation without logging.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_log_intake
annotations: verified low

Log an intake entry only after explicit user intent. Pass explicit_user_intent: true after the user asks to save/log/register; accepts text or meal_text plus structured food data.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_pull_wearable_context
annotations: verified low

Read the most recent shared wellness_context (delx-wellness-context/v1) written by a wearable connector to ~/.delx-wellness/, so coach tools can be recovery/strain-aware without the agent passing it inline. Read-only; never fabricates wearable data. If no connector has persisted a context yet, returns available:false with the expected path. The returned context can be passed straight into nourish_daily_coach / nourish_suggest_next_meal / nourish_pre_workout_nutrition as wearable_context (or set auto_wearable:true on those tools to pull it automatically).

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_remember_meal
annotations: verified low

Save a personal meal shortcut locally after explicit user intent, for example 'meu cafe normal' -> '2 ovos e banana'.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_list_memory
annotations: verified low

Read local remembered meals and nutrition preferences for personal Telegram shortcuts.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_forget_memory
annotations: verified low

Delete a local remembered meal by id or label after explicit user intent.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_update_intake
annotations: verified low

Update a local intake entry by id. Quantity or grams_estimate changes rescale nutrients to keep summaries consistent. Gated: requires explicit user intent — agents must not call this autonomously.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_list_intake
annotations: none low

List local intake entries with optional filters: date OR since/until range, meal_type, tag, source_trace, min_confidence, limit. All filters AND together. Returns most-recent-first.

nourish_delete_intake
annotations: verified low

Delete a local intake entry by id. Gated: requires explicit user intent — agents must not call this autonomously.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_clear_day
annotations: verified low

Delete all local intake entries for a date after explicit user intent.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_delete_water
annotations: verified low

Delete a single local hydration entry by id after explicit user intent.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_clear_hydration_day
annotations: verified low

Delete all local hydration entries for a date after explicit user intent. Does not touch intake — pair with nourish_clear_day or use nourish_clear_day { include_hydration: true } for both.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
nourish_carbon_summary
annotations: none low

Estimate the carbon footprint (kg CO2-equivalent) of a meal, plus optional lower-carbon swap suggestions. Pass `items: [{name, grams}, ...]` for an arbitrary meal, OR `date: YYYY-MM-DD` to compute carbon over that day's logged intake. Data: Agribalyse 3.1 (Etalab Open License) + Our World in Data / Poore & Nemecek 2018 (CC-BY 4.0). Read-only; never mutates state.

nourish_undo_last
annotations: verified low

Undo the most recently logged intake or hydration entry. The most common Telegram/agent recovery move ('I logged the wrong thing'). Returns what was undone so the agent can confirm. Requires explicit_user_intent. Pass kind: 'intake' | 'hydration' | 'any' (default 'any') to scope the undo.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint true
nourish_log_water
annotations: verified low

Log local hydration in milliliters after explicit user intent. Pass explicit_user_intent: true after the user asks to save/log water.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_hydration_summary
annotations: verified low

Summarize local hydration for a date.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_get_goals
annotations: verified low

Read local calorie, macro, and hydration goals.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_set_goals
annotations: verified low

Set local calorie, macro, and hydration goals after explicit user intent. Use daily: {...} or flat shortcuts like calories_kcal/protein_g; pass explicit_user_intent: true after confirmation.

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
nourish_goal_progress
annotations: none low

Compute per-day progress vs configured goals (kcal, protein, carbs, fat, water) for today / yesterday / last_7_days / last_30_days. Returns per-day breakdown (consumed, goal, pct, delta_to_goal), period totals, multi-day averages, days_on_target count, and locale-aware next-action recommendations (pt-BR if profile language is Portuguese, otherwise en). Read-only: no logging side effects, no explicit_user_intent required.

nourish_daily_summary
annotations: none low

Summarize local intake totals, confidence, and source coverage for a date. Pass `compare_to: 'yesterday'` or `compare_to: '7d_avg'` to add a `comparison` block with per-nutrient deltas — useful for trend coaching ('your protein is low again — third day in a row').

nourish_compare_days
annotations: verified low

Compute a per-nutrient diff between two days' summaries. Returns deltas (date_b - date_a) for calories, protein, carbs, fat, fiber, sugar, sodium plus what changed by meal type. Useful for 'how was today vs yesterday?' coaching.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_bulk_log_intake
annotations: verified low

Log multiple intake entries in a single call. Requires explicit user intent (explicit_user_intent: true). Each item is processed through the same text-estimator pipeline as `nourish_log_intake`, but the entire batch shares one intent flag — perfect for Telegram users who say 'log everything I ate today: breakfast was X, lunch was Y, dinner was Z'. Returns per-item success/failure so a partial failure doesn't lose the rest.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint false
nourish_weekly_summary
annotations: none low

Summarize seven days of local intake totals from a start date.

nourish_export_data
annotations: verified low

Export local intake data as JSONL or CSV without provider secrets or tokens. Defaults to the 500 most-recent rows; pass since/until to scope by date or max_rows to widen/narrow. Omitted rows are reported so you can refine instead of dumping months of history into chat (use the `wellness-nourish export` CLI for a full unbounded dump).

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 92

info
Tool 'nourish_analyze_food_image' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_estimate_meal' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_log_intake' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_estimate_meal_photo' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_agent_manifest' has no annotations annotation_checker · 100%
low
Tool 'nourish_capabilities' has no annotations annotation_checker · 100%
low
Tool 'nourish_connection_status' has no annotations annotation_checker · 100%
low
Tool 'nourish_quickstart' has no annotations annotation_checker · 100%
info
Tool 'nourish_demo' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_privacy_audit' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_profile_get' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_profile_update' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_onboarding' has no annotations annotation_checker · 100%
low
Tool 'nourish_search_food' has no annotations annotation_checker · 100%
low
Tool 'nourish_lookup_barcode' has no annotations annotation_checker · 100%
low
Tool 'nourish_decode_barcode_image' has no annotations annotation_checker · 100%
low
Tool 'nourish_lookup_barcode_image' has no annotations annotation_checker · 100%
low
Tool 'nourish_get_food' has no annotations annotation_checker · 100%
info
Tool 'nourish_pull_wearable_context' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_remember_meal' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_list_memory' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_forget_memory' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_update_intake' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_list_intake' has no annotations annotation_checker · 100%
info
Tool 'nourish_delete_intake' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_clear_day' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_delete_water' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_clear_hydration_day' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_carbon_summary' has no annotations annotation_checker · 100%
info
Tool 'nourish_undo_last' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_log_water' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_hydration_summary' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_get_goals' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_set_goals' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_goal_progress' has no annotations annotation_checker · 100%
low
Tool 'nourish_daily_summary' has no annotations annotation_checker · 100%
info
Tool 'nourish_compare_days' annotations are consistent annotation_checker · 80%
info
Tool 'nourish_bulk_log_intake' annotations are consistent annotation_checker · 80%
low
Tool 'nourish_weekly_summary' has no annotations annotation_checker · 100%
info
Tool 'nourish_export_data' annotations are consistent annotation_checker · 80%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
Tool: nourish_lookup_barcode_image manifest_parser · 85%
medium
Buffer.from base64 in davidmosiah-wellness-nourish-9ca0179/src/services/image-decoder.ts:166 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: nourish_agent_manifest manifest_parser · 85%
info
Tool: nourish_capabilities manifest_parser · 85%
info
Tool: nourish_connection_status manifest_parser · 85%
info
Tool: nourish_quickstart manifest_parser · 85%
info
Tool: nourish_demo manifest_parser · 85%
info
Tool: nourish_privacy_audit manifest_parser · 85%
info
Tool: nourish_profile_get manifest_parser · 85%
info
Tool: nourish_profile_update manifest_parser · 85%
info
Tool: nourish_onboarding manifest_parser · 85%
info
Tool: nourish_search_food manifest_parser · 85%
info
Tool: nourish_lookup_barcode manifest_parser · 85%
info
Tool: nourish_decode_barcode_image manifest_parser · 85%
info
Tool: nourish_get_food manifest_parser · 85%
info
Tool: nourish_estimate_meal manifest_parser · 85%
info
Tool: nourish_estimate_meal_photo manifest_parser · 85%
info
Tool: nourish_analyze_food_image manifest_parser · 85%
info
Tool: nourish_log_intake manifest_parser · 85%
info
Tool: nourish_pull_wearable_context manifest_parser · 85%
info
Tool: nourish_remember_meal manifest_parser · 85%
info
Tool: nourish_list_memory manifest_parser · 85%
info
Tool: nourish_forget_memory manifest_parser · 85%
info
Tool: nourish_update_intake manifest_parser · 85%
info
Tool: nourish_list_intake manifest_parser · 85%
info
Tool: nourish_delete_intake manifest_parser · 85%
info
Tool: nourish_clear_day manifest_parser · 85%
info
Tool: nourish_delete_water manifest_parser · 85%
info
Tool: nourish_clear_hydration_day manifest_parser · 85%
info
Tool: nourish_carbon_summary manifest_parser · 85%
info
Tool: nourish_undo_last manifest_parser · 85%
info
Tool: nourish_log_water manifest_parser · 85%
info
Tool: nourish_hydration_summary manifest_parser · 85%
info
Tool: nourish_get_goals manifest_parser · 85%
info
Tool: nourish_set_goals manifest_parser · 85%
info
Tool: nourish_goal_progress manifest_parser · 85%
info
Tool: nourish_daily_summary manifest_parser · 85%
info
Tool: nourish_compare_days manifest_parser · 85%
info
Tool: nourish_bulk_log_intake manifest_parser · 85%
info
Tool: nourish_weekly_summary manifest_parser · 85%
info
Tool: nourish_export_data manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (17) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 173 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%