MCP server for Wegmans grocery shopping, providing product search, cart management, store locator, purchase history analysis, and grocery list synchronization
Strong tool naming (verb_noun pattern throughout) and comprehensive parameter schemas with proper types, enums, and constraints. Descriptions are present and actionable (avg ~120 chars). However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages visible. Missing tool annotations (readOnlyHint, destructiveHint). Composition is sound: tools chain well (search → add_to_cart → get_cart). Security concern: Wegmans credentials embedded in algolia.ts (public API key/app ID), though auth token injection via WegmansAuth appears server-side.
Add a product to the Wegmans cart by product ID and quantity.
Browse Wegmans products by category/department (e.g. 'Produce', 'Deli', 'Bakery').
Find Wegmans store locations by name, city, state, or zip code. Returns store numbers, addresses, phone numbers, and available services.
Get the current contents of the Wegmans cart.
Read the account owner's food and shopping preferences (markdown). Also delivered automatically as server instructions on connect.
Get the account owner's frequently-bought items (My Items list) with prices and aisle locations.
Output schemas not documented. LLMs cannot predict response structure for any tool. Responses from search_products, get_cart, get_purchase_history, etc. are opaque, agents must guess field names and types.
No error handling guidance. Tools lack recovery hints (e.g., 'Product not found. Try search_products() first.'). Errors are not categorized as retryable, user-fixable, or fatal.
Missing tool annotations. No readOnlyHint, destructiveHint, or idempotentHint declared. Agents cannot distinguish safe (get_cart) from destructive (remove_from_cart) operations without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Get detailed information about a specific Wegmans product by its product ID.
Get a natural-language insight about a product's purchase pattern based on history.
Get the account owner's cached purchase history with product details, purchase dates, and frequency analysis.
Generate a smart shopping list based on purchase history patterns. Items are ranked by urgency (overdue, due soon, upcoming).
Remove a product from the Wegmans cart by product ID.
Search for products at Wegmans. Returns product names, prices, aisle locations, and more.
Replace the account owner's food and shopping preferences (markdown). Read them first with get_food_preferences and merge; this overwrites the whole document.
Parse grocery-note content, compare it against the live Wegmans cart with normalized matching, and add only the missing items. Uses purchase-history preferences first, then search fallback.
Sync the account owner's purchase history from Wegmans and store it locally. Returns the number of orders and items synced.
Public API credentials in source. algolia.ts hardcodes ALGOLIA_APP_ID and ALGOLIA_API_KEY. While Algolia keys are public-facing, this pattern invites accidental secret leakage if private keys are added later.
No dry-run or confirmation for destructive operations. remove_from_cart and set_food_preferences (overwrites entire doc) lack confirmation steps. Agents can accidentally delete cart items or overwrite preferences.