Personal-use AI shopping agent toolkit for TuZonaMarket: CLI and MCP server.
28 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-150 chars, mostly adequate) and input schemas with type definitions. However, parameter descriptions are sparse or generic ('Address data', 'Cart data'), output schemas are undocumented, and error handling is absent. No tool annotations (readOnlyHint/destructiveHint). Naming is mostly verb_noun (zones, cart_get, address_create) but some are ambiguous (home, category vs categories). No pagination guidance in descriptions despite tools accepting page/limit params. Risk classifications present but not integrated into tool metadata.
Create a new address.
Delete an address.
Get address form metadata.
Update an address.
List user addresses.
List best sellers for a zone.
Clear a cart page.
Undocumented output schemas. No tool documents what fields it returns, forcing LLMs to guess structure and plan downstream calls blindly. This violates pattern:tool and pattern:response-shaper.
Generic parameter descriptions. 'Address data' and 'Cart data' do not explain what fields are required, their types, or constraints. LLMs cannot construct valid payloads without explicit field documentation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Read the active cart.
Replace a cart page. items is [{productId, quantity}].
Set a cart item quantity.
List the catalog category tree.
Get category products.
Get checkout form data.
Apply a coupon to a cart.
List payment coupons for an area.
List user coupons.
List frequently asked questions.
Get home-page content for a zone.
List offers for a zone.
Get order details.
List user orders.
Get full product details.
List recent products for a zone.
Search active products by zone. Each hit includes a normalized price; raw upstream values are minor currency units.
List delivery sectors.
List tracking information.
Get one zone.
List the available delivery zones.
No tool annotations. Tools marked DESTRUCTIVE (cart_clear, address_delete) lack destructiveHint metadata. Tools marked READ_ONLY lack readOnlyHint. LLMs cannot distinguish safe from risky operations without explicit annotations.
Ambiguous tool names. 'home' does not convey action (get_home_content?). 'category' vs 'categories' creates confusion, LLMs may pick the wrong one. Naming should follow verb_noun pattern consistently.
No error handling guidance. Tools provide no recovery hints (e.g., 'If coupon not found, call coupons_list() first'). Agents cannot self-correct on failures.