MCP server for Riserflow e-commerce platform providing tools for product search, cart management, order creation, and customer identity management
12 tools with complete schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention well (search_products, get_product_details, add_to_cart). Descriptions are present (avg ~100 chars) but lack actionable context for LLM selection. Most parameters have descriptions, but many lack type constraints (enums, ranges). No documented output schemas. Error handling and recovery guidance absent. Security concerns: sessionToken and userId exposed as parameters rather than server-side injection. No idempotency guidance for write operations.
Add or update a delivery address for a customer
Add a product or variant to the user's shopping cart
Create a new order from cart items with customer and delivery information
Retrieve the current shopping cart contents and totals
Retrieve customer profile information and preferences
Retrieve order details by order ID
Get detailed information about a specific product including variants, pricing, and availability
Credentials and session tokens exposed as tool parameters (sessionToken, userId). Should use server-side secret injection via environment variables or vault. Agent traces log all parameters, secrets leak into logs and prompt history.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., productId from search_products for add_to_cart). Responses must include all IDs needed for chaining.
Write operations (add_to_cart, remove_from_cart, create_order, update_customer_profile, add_customer_address, record_customer_signal) lack idempotency guidance and confirmation patterns. Agents may retry and cause duplicate charges or records.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Get personalized product recommendations for a customer based on behavior and preferences
Record a customer behavior signal (view, click, purchase intent) for analytics and personalization
Remove an item from the user's shopping cart
Search for products by query text with optional filters for shop, category, brand, and price range
Update or create customer profile with preferences and contact information
Parameter constraints missing. 'limit' in search_products has no min/max bounds. 'strategy' in get_recommendations lacks enum values. 'eventType' in record_customer_signal should be constrained to (view, click, add_to_cart, purchase). Free-form strings invite hallucinated values.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, and next steps. E.g., create_order should document what happens if payment fails, inventory is insufficient, or delivery address is invalid.