Nutrition tracking CLI for AI agents — food search, barcode lookup, meal logging with JSON output
Critical deficiencies across all dimensions. The 'nomnom' tool has a description, but the input schema is drastically under-specified. The tool accepts a single 'command' parameter as a freeform string, which violates multiple core patterns: no enum constraints for valid commands, no parameter description, no documented output schema, and no error handling guidance. The description ('Universal nutrition tracking command interface...') is generic and does not explain WHEN to use the tool or HOW commands map to agent intents. No evidence of structured response documentation, pagination support, or recovery guidance. The tool essentially delegates command parsing to a subprocess without type safety or constraint validation, forcing the LLM to guess valid command syntax. Source code shows executeCommand() in src/cli.ts and mcp.ts, but actual tool registration and schema definition are not visible in the provided excerpts, making it impossible to verify proper schema implementation.
Universal nutrition tracking command interface for food search, barcode lookup, meal logging, custom foods, recipes, goals, and progress tracking
Input schema lacks enum constraints. The 'command' parameter accepts any string, inviting hallucinated or invalid commands. No documentation of valid command values (search, log, today, etc.).
Parameter 'command' lacks description. LLMs cannot determine which commands are valid, what format to use, or what each command does without reading the CLI source code.
No documented output schema. Tool description does not specify what structure is returned (JSON, plaintext, error format). LLMs cannot plan downstream operations or extract required fields.
No error handling guidance or recovery instructions. If a command fails or is invalid, the LLM receives no direction on how to self-correct or what to try next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 34 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 27 | - | v1 |
Tool description does not clarify WHEN to use it or distinguish it from similar tools. 'Universal nutrition tracking command interface' is too generic and does not match the chat data model (users say 'log my breakfast', not 'nomnom log Apple --calories 95').
Tool name 'nomnom' is not a verb phrase. It does not start with an action verb (get_, create_, search_, log_, etc.), forcing LLMs to read the description to infer intent. Preferred names: 'search_food', 'log_meal', 'get_nutrition_info'.
No evidence of structured response shaping. If the CLI returns raw JSON or plaintext output, the response is not shaped for LLM consumption (stripped of internal fields, pagination metadata, etc.).