Zero-config MCP server for OrderCore — give an AI agent a commerce catalog + idempotent checkout. No signup: runs a read-only sandbox with no key.
Three tools with clear action verbs and reasonable descriptions (10 - 20 words each). All have input schemas with required fields properly declared. However, parameter descriptions are minimal or absent, 'Free-text product search' for query is adequate, but sku_id and quantity lack descriptions entirely. Output schemas are not documented. The idempotency note in complete_checkout_session is excellent (pattern:idempotent-operation), but error handling guidance is missing. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) present. Schemas are present but sparse; parameters lack type constraints (enums, ranges, formats).
Complete (pay for) a checkout session. Idempotent: retrying with the same session_id returns the same order and never double-charges — if a call times out, retry it rather than starting a new session.
Create a checkout session for one product. Returns a session_id used to complete checkout.
Search the merchant product catalog. Call this before creating a checkout session, whenever the user names a product you have not looked up yet.
Parameter descriptions missing or incomplete. sku_id, quantity, and session_id lack descriptions explaining format, constraints, or examples. LLMs cannot infer whether sku_id is a UUID, integer, or string code.
Output schemas not documented. Tools return responses but no schema is visible for what fields the LLM should expect (e.g., does search_products return product_id, name, price, sku_id?). Agents cannot plan downstream calls without knowing response structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). search_products is marked READ_ONLY in metadata but not in the tool definition itself. create_checkout_session and complete_checkout_session are WRITE operations but lack destructiveHint/idempotentHint annotations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
No error handling guidance. Tools lack descriptions of failure modes, recovery steps, or actionable error messages. E.g., what happens if sku_id is invalid? Should the LLM retry or call search_products first?
Parameter constraints not specified. quantity lacks min/max bounds (is 0 valid? 1000?). No enums, patterns, or format declarations. LLMs may pass invalid values without guidance.