Personal calorie & protein counter, served as an MCP server for claude.ai
weight-mcp demonstrates solid tool design with clear naming conventions (verb_noun pattern), comprehensive parameter schemas, and detailed descriptions. All 14 tools have explicit input schemas with typed parameters and descriptions. Tool names are action-oriented (lookup_nutrition, log_food, delete_food, record_weight). Descriptions average ~150 chars and explain WHAT the tool does and WHEN to use it. However, output schemas are not documented in the visible code, parameter descriptions occasionally lack format/constraint details, and error handling guidance is minimal. The server correctly implements idempotent operations (log_food with meal_number overwrite) and permission gating (admin-only tools). No critical naming conflicts or ambiguous parameter relationships detected.
Check today's intake (kcal, protein, fiber) against the configured goal.
Remove a logged meal by its meal number (today by default).
Remove a non-admin account. Their logged data is preserved. Admin-only tool.
Per-day intake totals and averages over a window of days. Returns only days with logged meals.
List all meals logged for a given day with their meal numbers, names, and nutrition facts.
List all registered non-admin accounts. Admin-only tool.
Output schemas not documented. Tool descriptions explain inputs but not return types/fields. LLMs cannot plan downstream calls or extract required data without knowing response structure.
Error handling lacks recovery guidance. Tools do not document what errors are retryable, user-fixable, or fatal. No examples of actionable error messages (e.g., 'Invalid day format: use YYYY-MM-DD').
Parameter constraints not fully specified. 'day' parameter accepts YYYY-MM-DD but description does not state format explicitly. 'limit' in lookup_nutrition lacks min/max bounds. 'password' in register_user states '8 chars minimum' but no maximum.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Log a food item with its nutrition facts. Pass meal_number to overwrite that meal of the day (idempotent edit); omit it to append as the next meal of the day.
Search for nutrition facts by food name or barcode. Returns per-100g facts (kcal, protein, carbs, fat, fiber) from Open Food Facts or USDA FoodData Central.
Record a body weight measurement.
Register a new non-admin account. Admin-only tool.
Send the day's meal summary and progress to an accountability partner via Telegram. Only available if WEIGHT_MCP_TELEGRAM_BOT_TOKEN and WEIGHT_MCP_TELEGRAM_CHAT_ID are configured.
Set or update the daily intake targets (calorie, protein, and optional fiber goals).
Display the weight graph, recent meals, and today's progress as an interactive HTML dashboard.
Reset a non-admin user's password. Admin-only tool.
Admin-only tools lack explicit permission documentation. register_user, deregister_user, update_user_password, and list_users are gated by admin check but descriptions do not state 'Admin-only' or required scope.
Destructive operations (delete_food, deregister_user) lack confirmation/dry-run pattern. No mechanism to preview what will be deleted or require explicit confirmation before irreversible action.