# Agent Guidelines - Missouri Table & Chair

Welcome AI Agents and Automated Shopping Assistants. This document specifies protocols, constraints, tools, and best practices for interacting with this storefront.

## 1. Supported Agent Protocols
- **Universal Commerce Protocol (UCP):** `GET /.well-known/ucp`
- **Model Context Protocol (MCP):** `POST /agent/mcp`
- **OpenAI Action / ACP:** `GET /agent/openapi.json` & `GET /.well-known/ai-plugin.json`
- **REST / JSON APIs:** `GET /agent/catalog.json`, `GET /agent/search.json?q=...`, `GET /agent/product.json?sku=...`

## 2. Storefront MCP Tools
When connecting to the MCP Server (`https://www.gotable.com/agent/mcp`), the following tools are available:

### `search_catalog`
Search products with parameters: `query` (string), `category_id` (int), `price_from` (number), `price_to` (number), `in_stock_only` (bool), `page` (int), `limit` (int).

### `get_product`
Retrieve full product details, specs, gallery images, configurable options, and stock status using `sku` or `product_id`.

### `get_categories`
Retrieve store categories, URLs, and active product counts.

### `create_cart`
Initialize a new shopping cart. Returns `cart_id`, `quote_id`, and `continue_url`.

### `add_to_cart`
Add items to the cart using `cart_id`, `sku`, `qty`, and optional `super_attribute` mapping.

### `update_cart`
Update quantity or remove items (qty=0) from the cart using `cart_id`, and `sku` or `item_id`.

### `get_cart`
Retrieve active cart line items, subtotal, and checkout `continue_url`.

### `get_store_info`
Retrieve store metadata, currency (USD), policies, and contact information.

## 3. Financial & Checkout Rules
- **No Direct Payments by AI:** AI agents do not directly collect, submit, or charge credit card numbers.
- **The Handoff Pattern (`continue_url`):** After adding items to the cart, the agent must give the `continue_url` to the shopper. When clicked, the shopper's browser will load the cart session so they can securely enter shipping, select payment methods, and finalize the order.
- **Pricing Accuracy:** Always check `pricing.price_status`. If a price is marked `login_required`, inform the user that member login is required to view pricing.

## 4. Rate Limiting & User-Agent Identification
Please identify your assistant by including an accurate User-Agent header (e.g. `ChatGPT-User`, `ClaudeBot`, `PerplexityBot`, etc.).
