mcp-retail-sim
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Search the synthetic catalog (about 500 products). Example queries that return rows: headphones, laptop, coffee, yoga, tv, jacket. Matching is a case-insensitive substring of name, description, category, or brand. |
| get_product_detailsB | Get one product by SKU. Example: SKU-1001 (LumenLab Pro Headphones). |
| check_inventoryB | Check stock for a SKU. Example in stock: SKU-1001. Example out of stock: SKU-1002. Returns stock_qty and in_stock. Does not change inventory. |
| add_to_cartA | Add a product to a cart. Does not decrement stock. Example: cart_id=cart-1, product_id=SKU-1001, qty=1. Use any new cart id; the cart is created if it does not exist. Fails if the SKU is unknown or out of stock (try SKU-1002 to see that error). |
| place_orderA | Check out a cart created by add_to_cart. Example: cart_id=cart-1 after adding SKU-1001. Decrements stock, returns an order_id like ORD-XXXXXXXX, and deletes the cart. |
| get_order_detailsA | Read an order created by place_order. Pass the order_id from that response, for example ORD-E2F0C262. Orders exist only in this server process; a new process has none. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| compare_products | Compare two catalog SKUs. Example: product1=SKU-1000, product2=SKU-1001. |
| find_best_deal | Find a deal in the synthetic catalog. Example: query=headphones, budget=100. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| returns_policy | Returns policy text. Read this URI as-is: policy://returns. |
| shipping_policy | Shipping policy text. Read this URI as-is: policy://shipping. |
| privacy_policy | Privacy policy text. Read this URI as-is: policy://privacy. |
TDQS
Scored across 6 tools
Each tool targets a distinct action: catalog search, single-product lookup by SKU, stock check, cart addition, checkout, and order read. The boundaries between get_product_details and check_inventory are clarified by descriptions (one returns product data, the other returns stock_qty/in_stock).
Consistent snake_case with a verb_noun pattern for five tools (get_product_details, check_inventory, add_to_cart, place_order, get_order_details). The lone exception is 'search', which lacks an explicit noun/target, a minor deviation from the otherwise predictable pattern.
Six tools is well-scoped for a retail simulation, covering the essential browse-to-checkout flow without redundancy. Each tool earns its place and none feels like filler.
The core lifecycle (search, inspect, inventory, cart, order) is covered end-to-end. Minor gaps exist: no cart inspection/removal, no order listing or cancellation, which an agent could work around for a simple sim.