{"name":"io.github.davidmosiah/wellness-nourish","slug":"davidmosiah-wellness-nourish","title":null,"description":"Local-first nutrition MCP for AI agents: food, barcode, photo, intake, hydration, goals.","url":"https://mcp.market/server/davidmosiah-wellness-nourish","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":39,"stars":10,"forks":2,"downloads_week":132,"last_push_at":"2026-08-29T10:35:53.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/davidmosiah/wellness-nourish","website":"https://wellness.delx.ai/nutrition","version":"0.7.0","remotes":[],"packages":[{"registryType":"npm","identifier":"wellness-nourish","version":"0.7.0","transport":{"type":"stdio"}}],"tools":[{"name":"nourish_agent_manifest","description":"Return agent-facing install, safety, resource, and first-call guidance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_analyze_food_image","description":"Route agent-provided food image observations across barcode, nutrition label OCR, or meal-photo estimation without logging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_bulk_log_intake","description":"Log multiple intake entries in a single call. Each item is processed through the same text-estimator pipeline as `nourish_log_intake`, but the entire batch shares one explicit_user_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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_capabilities","description":"Describe supported nutrition workflows, providers, and recommended first tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_carbon_summary","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_clear_day","description":"Delete all local intake entries for a date after explicit user intent.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_clear_hydration_day","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_compare_days","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_connection_status","description":"Report local storage, fixture, USDA, and Open Food Facts readiness without returning secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_daily_summary","description":"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').","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_decode_barcode_image","description":"Decode a barcode from an image path, base64 image, or data URI without logging intake.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_delete_intake","description":"Delete a local intake entry by id. Gated: requires explicit user intent — agents must not call this autonomously.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_delete_water","description":"Delete a single local hydration entry by id after explicit user intent.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_demo","description":"Returns realistic example payloads of nourish_search_food, nourish_estimate_meal, and nourish_daily_summary so agents see the contract before any real call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_estimate_meal","description":"Estimate nutrition for a short meal text using local deterministic defaults. Accepts text or meal_text; preserve unresolved and confidence.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_estimate_meal_photo","description":"Estimate meal nutrition from an agent-provided photo observation; always requires user confirmation before logging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_export_data","description":"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).","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_forget_memory","description":"Delete a local remembered meal by id or label after explicit user intent.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_get_food","description":"Fetch a USDA food by source_id, an Open Food Facts food by barcode source_id, or a TACO food by source_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_get_goals","description":"Read local calorie, macro, and hydration goals.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_goal_progress","description":"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 explic","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_hydration_summary","description":"Summarize local hydration for a date.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_list_intake","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_list_memory","description":"Read local remembered meals and nutrition preferences for personal Telegram shortcuts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_log_intake","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_log_water","description":"Log local hydration in milliliters after explicit user intent. Pass explicit_user_intent: true after the user asks to save/log water.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_lookup_barcode","description":"Lookup a packaged food barcode in Open Food Facts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_lookup_barcode_image","description":"Decode a packaged-food barcode image, then lookup the product in Open Food Facts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_onboarding","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_privacy_audit","description":"Describe local storage, secret handling, source licensing, and safety boundaries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_profile_get","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_profile_update","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_pull_wearable_context","description":"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_","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_quickstart","description":"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?'","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_remember_meal","description":"Save a personal meal shortcut locally after explicit user intent, for example 'meu cafe normal' -> '2 ovos e banana'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_search_food","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_set_goals","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_undo_last","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nourish_update_intake","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"nourish_weekly_summary","description":"Summarize seven days of local intake totals from a start date.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-25T21:47:12.313Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:47:12.316Z","components":{"code":{"score":25,"max":25,"notes":["89 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 27 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"wellness-nourish","version":"0.7.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":7,"publishedAt":"2026-07-06T23:00:32.903Z","repositoryUrl":"git+https://github.com/davidmosiah/wellness-nourish.git","weeklyDownloads":132}],"repo":{"found":true,"owner":"davidmosiah","repo":"wellness-nourish","archived":false,"pushedAt":"2026-08-29T10:35:53Z","stars":10,"forks":2,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/624359?v=4","ownerCreatedAt":"2011-02-18T00:23:21Z","license":"MIT"},"icon":{"url":"https://wellness.delx.ai/favicon.svg","source":"site"},"presence":{"stars":10,"forks":2,"downloadsWeek":132,"license":"MIT","lastPushAt":"2026-08-29T10:35:53.000Z","score":39}}}},"grade_history":[],"reviews":[]}