A guided shopping decision engine that analyzes customer preferences and browsing sessions to recommend matching products with confidence scores and checkout readiness assessment.
This server has a single tool with critical definition gaps. The tool name 'guide_decision' lacks a clear action verb and does not reflect its primary function (recommendation/analysis). The description is present but vague, it mentions 'analyzes' and 'provides recommendations' but does not explain WHEN to use this tool vs similar ones, what triggers it should handle, or what the agent should expect from the output. Input parameters have type declarations (dict, list) but lack descriptions entirely, an LLM cannot infer what 'customer_preferences' should contain beyond a generic dict, or why 'browsing_session' as a list matters. The output schema is not documented in the MCP server definition; only example values appear in the reference implementation. No error handling guidance, no validation rules, no pagination or result limits documented. The tool appears to be a pass-through to a hardcoded reference implementation that always returns the same fixture data, rather than a real decision engine. No MCP server implementation visible (only a Python client class and usage example); transport, protocol compliance, and MCP registration are completely unclear.
Analyzes customer preferences and browsing session to provide product recommendations with match scores, fit confidence, and checkout readiness assessment.
Tool name 'guide_decision' lacks a clear action verb. Names like 'get_product_recommendations', 'analyze_fit_readiness', or 'rank_products_by_fit' would be clearer. LLMs infer intent from the verb alone, 'guide_decision' is passive and ambiguous.
Input parameters 'customer_preferences' and 'browsing_session' have NO descriptions. An LLM cannot know what keys are required in the dict, what format the list should have, or why these inputs matter. Example: is fit_preference='slim' always valid, or only for certain product categories?
Input schema uses generic types (dict, list) with no nested field definitions. LLMs cannot validate whether customer_preferences contains the required keys (size, fit_preference, style) until runtime. Use a structured JSON Schema with required fields and type annotations for each nested property.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
Output schema is not documented in the tool definition. The response includes fields like 'recommended_matches' (array of objects with product_id, title, match_score, fit_confidence, price_usd), 'return_risk_score' (float), and 'checkout_readiness' (enum string), but none of these are described for the LLM. Without documented output shape, downstream tools cannot reliably extract fields.
No error handling guidance. What happens if customer_preferences is invalid? If browsing_session is empty? Does the tool return a fallback recommendation, or fail with a specific error? The LLM needs clear guidance on recovery steps.
No MCP server implementation visible. The repo contains only a Python client class and example usage, no evidence of MCP protocol transport, tool registration, or server initialization. Without the actual MCP server code, transport, protocol version, and feature support cannot be assessed.