io.github.davidmosiah/wellness-nourish
Local-first nutrition MCP for AI agents: food, barcode, photo, intake, hydration, goals.
Versions
0.7.2latest0.7.10.7.00.6.110.6.10+ show 28 moreshow less
0.6.90.6.80.6.70.6.60.6.50.6.40.6.30.6.20.6.10.6.00.5.00.4.00.3.20.3.10.2.100.2.90.2.20.2.10.2.00.1.80.1.70.1.60.1.50.1.40.1.30.1.20.1.10.1.0Tools 40
nourish_agent_manifest Return agent-facing install, safety, resource, and first-call guidance.
nourish_capabilities Describe supported nutrition workflows, providers, and recommended first tools.
nourish_connection_status Report local storage, fixture, USDA, and Open Food Facts readiness without returning secrets.
nourish_quickstart 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 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.
nourish_privacy_audit Describe local storage, secret handling, source licensing, and safety boundaries.
nourish_profile_get 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.
nourish_profile_update 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.
nourish_onboarding 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 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 Lookup a packaged food barcode in Open Food Facts.
nourish_decode_barcode_image Decode a barcode from an image path, base64 image, or data URI without logging intake.
nourish_lookup_barcode_image Decode a packaged-food barcode image, then lookup the product in Open Food Facts.
nourish_get_food 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 Estimate nutrition for a short meal text using local deterministic defaults. Accepts text or meal_text; preserve unresolved and confidence.
nourish_estimate_meal_photo Estimate meal nutrition from an agent-provided photo observation; always requires user confirmation before logging.
nourish_analyze_food_image Route agent-provided food image observations across barcode, nutrition label OCR, or meal-photo estimation without logging.
nourish_log_intake 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.
nourish_pull_wearable_context 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).
nourish_remember_meal Save a personal meal shortcut locally after explicit user intent, for example 'meu cafe normal' -> '2 ovos e banana'.
nourish_list_memory Read local remembered meals and nutrition preferences for personal Telegram shortcuts.
nourish_forget_memory Delete a local remembered meal by id or label after explicit user intent.
nourish_update_intake 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.
nourish_list_intake 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 Delete a local intake entry by id. Gated: requires explicit user intent — agents must not call this autonomously.
nourish_clear_day Delete all local intake entries for a date after explicit user intent.
nourish_delete_water Delete a single local hydration entry by id after explicit user intent.
nourish_clear_hydration_day 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.
nourish_carbon_summary 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 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.
nourish_log_water Log local hydration in milliliters after explicit user intent. Pass explicit_user_intent: true after the user asks to save/log water.
nourish_hydration_summary Summarize local hydration for a date.
nourish_get_goals Read local calorie, macro, and hydration goals.
nourish_set_goals 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.
nourish_goal_progress 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 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 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.
nourish_bulk_log_intake 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.
nourish_weekly_summary Summarize seven days of local intake totals from a start date.
nourish_export_data 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).
Permissions 3
network medium shell high env_vars low