AI-Powered Spice Advisor with MCP Server. Provides web UI for querying spice information, MCP server endpoint for AI agent integration, and conversational AI chat interface using LlamaIndex + Claude. Offers comprehensive spice information including nutrients, health benefits, safety information, and substitutes from USDA FoodData Central.
Spice Bae provides 9 tools with basic naming, descriptions, and schemas, but falls short of production-grade quality. All tools follow a clear verb-noun pattern (get_, list_, find_, compare_) which is excellent. Descriptions are present and reasonably detailed (range 50-200 chars), exceeding the minimum. However, several critical gaps exist: (1) Many parameter descriptions are minimal or repetitive. (2) No output schema documentation, tools return strings, but their structure is undocumented. (3) No error handling guidance, tools fail silently with DB errors but provide no recovery hints. (4) No input validation or constraints (e.g., limit defaults to 5-10 with no bounds). (5) Tool definitions are inferred from @gr.mcp.tool() decorators; actual registration logic not visible in provided code, capping inference-based tools. The server demonstrates basic competence but lacks the polish and consistency expected of production tools.
Compare two spices based on specified criteria.
Find substitute spices based on shared health benefits and medicinal properties. Unlike nutritional substitutes, this finds spices with similar health effects.
Find substitute spices based on nutritional similarity. Uses dynamic cosine similarity calculation on nutrient profiles. Automatically includes newly added spices without cache updates.
Find spices that provide a specific health benefit. Search through traditional uses and scientific evidence to find spices that may help with specific health conditions.
Get comprehensive health information for a spice including traditional uses, scientific evidence, side effects, and cautions. Data sourced from NCCIH (National Center for Complementary and Integrative Health).
No documented output schemas. All tools return 'str' but internal structure is undocumented. LLMs cannot plan downstream calls or extract structured data without knowing response format.
No error handling or recovery guidance. Database queries can fail (spice not found, network error) but tools provide no actionable error messages or suggestions for what the LLM should try next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Get specific nutrient content for a spice.
Get comprehensive information about a spice including nutrients and sourcing.
Get safety information including potential side effects and important cautions. Provides critical safety information for medicinal use of spices.
List all spices available in the database.
Parameter descriptions are generic or repetitive. 'Name of the spice' appears in 6 tools unchanged. Parameters like 'limit' lack bounds or defaults documented in schema, only in description text which LLMs may not parse reliably.
No pagination or result limits enforced in code. find_spices_for_health_benefit defaults limit=10, find_spice_substitutes defaults limit=5, but no validation prevents passing limit=999999. Large result sets waste tokens and degrade LLM reasoning.
Tool definitions use @gr.mcp.tool() decorators but actual MCP server registration code not visible in provided source. Cannot verify tool schemas are properly exported to MCP clients or if inferred from Python type hints alone.