SAP Commerce API client for Model Context Protocol
Server has 9 tools with consistent naming (verb_noun pattern: search-, get-, check-) and all tools have descriptions. However, descriptions are generic and lack actionable context. Parameter descriptions exist but are minimal (avg ~40 chars vs baseline 72). No output schemas documented. Error handling is basic (formatError wraps exceptions as text). All tools are READ_ONLY, reducing risk but also limiting utility. Schema definitions use Zod with types, but lack constraints (enums, ranges, patterns). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only.
Check stock availability for a product
Get product categories from SAP Commerce
Get detailed information about a specific product
Get customer reviews for a specific product
Get product suggestions based on a reference product
Get products from a specific category
No output schemas documented. Tools return formatted JSON text but LLMs cannot parse expected fields. Downstream tool chaining impossible without trial-and-error.
Parameter descriptions lack actionable constraints. 'Page number to retrieve' does not specify range (0-based? 1-based? max?). 'Sort order (e.g., name:asc, price:desc)' uses examples instead of enum constraints.
Tool descriptions are generic and do not explain WHEN to use each tool vs alternatives. 'Search for products' vs 'Advanced product search', unclear distinction. No guidance on which to call first.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Get active promotions from SAP Commerce
Search for products in SAP Commerce
Advanced product search with filtering options
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint annotations would help LLMs understand retry safety and side-effect profile.
Error handling returns plain text error messages. No recovery guidance (e.g., 'Product not found. Try search-products() with a partial name'). LLMs cannot self-correct.