---
name: camden-tools-shopping
description: Shop Camden Tools (UK tool retailer) through its MCP server or A2A agent — search products, get prices ex/inc VAT and stock, compare, check delivery and promotions, track orders, and hand the shopper a basket link. Never places orders.
---

# Camden Tools shopping

Camden Tools (https://camdentools.com) sells hand tools, power tools, accessories and safety equipment, ships worldwide (import duties are shown at checkout: prepaid on some services, otherwise payable on delivery — never promise a shopper duty-free delivery) and runs a London Click & Collect warehouse. Agents research and prepare; the shopper always pays at checkout.

## Endpoints

- MCP (Streamable HTTP, stateless, JSON responses): `POST https://camdentools.com/mcp`
- A2A (JSON-RPC): `POST https://camdentools.com/a2a`
- Capabilities catalogue (generated JSON): https://camdentools.com/api/agent-capabilities
- Discovery: https://camdentools.com/.well-known/mcp/server-card.json, https://camdentools.com/.well-known/agent-card.json, https://camdentools.com/.well-known/api-catalog, https://camdentools.com/.well-known/openapi.json, https://camdentools.com/.well-known/ai-catalog.json, https://camdentools.com/llms.txt, https://camdentools.com/llms-full.txt, https://camdentools.com/auth.md
- Human docs: https://camdentools.com/developers
- Pages as Markdown: request any page URL (product pages included) with `Accept: text/markdown`. Prefer the tools for prices and stock: they are live, a page can be a few minutes old.

## MCP tools

### Catalogue

Search and browse products, full product details, live stock, side-by-side comparisons, documents, categories and brands.

- `search_products` — Full-text search of the Camden Tools catalogue (hand tools, power tools, accessories, safety equipment). Returns compact products with prices ex/inc VAT, stock and a link. Use page/per_page to paginate and brand/min_price/max_price to narrow down.
- `list_products` — Browse a product collection: most popular, newest, on sale, Website Express eligible, or a category by slug (see list_categories). Supports paging, sorting and brand/price filters.
- `get_product` — Full details for one product by slug, SKU or id: description, specifications, prices ex/inc VAT with bulk breaks, stock, variants, safety/spec documents and the canonical page URL. Provide exactly one of slug, sku or id.
- `get_products` — Look up up to 50 products at once by SKU or by numeric id. Returns compact products (name, price ex/inc VAT, stock, link).
- `get_stock_level` — Live availability check for a SKU (is it available now and how many are in the London warehouse).
- `compare_products` — Side-by-side comparison of 2 to 5 products by SKU: price ex/inc VAT, stock, brand, weight and the specification bullet points, so an agent can recommend between options.
- `get_related_products` — Variants, similar products, recommendations and 'you may also like' items for a product (by slug or SKU). Useful for alternatives when something is out of stock.
- `get_product_documents` — Safety data sheets, specification sheets and COSHH hazard codes for a product (by slug or SKU). Returns document URLs.
- `list_categories` — Product categories with slugs and links. Use popular_only for the curated set shown on the site; otherwise the full list.
- `get_category` — A category's name, description and its products (paged) by category slug.
- `list_brands` — Brands sold by Camden Tools (DeWalt, Makita, Milwaukee, Bosch, Stanley …). Without a query returns the popular brands; with a query searches brand names.
- `get_brand_products` — A brand's details, its active promotions and its products (paged) by brand slug.

### Offers and bundles

Current promotions, per-product deals, curated bundles and basket-level promotion checks.

- `list_offers` — Current storefront promotions (percentage/fixed discounts and free gifts), optionally grouped by brand or category. Also points at the /offers page.
- `get_product_promotions` — Active promotions that apply to one SKU (discounts, free gifts, end dates).
- `list_bundles` — Curated product bundles (kits) with their items and prices.
- `get_cart_promotions` — Evaluate a prospective basket for a destination country: whether it can be fulfilled, which promotions apply (including free-delivery style offers and free gifts) and the adjusted basket value. Same check the checkout runs.

### Delivery

Website Express same-day dispatch, shipping availability by country, country pricing, delivery estimates and UK postcode lookup.

- `get_express_delivery_status` — Whether Website Express (free same-working-day dispatch for eligible UK orders) is available right now, the order-by cutoff and the promised dispatch date.
- `check_express_eligibility` — Whole-basket Website Express verdict for a set of product ids and quantities: every line must be eligible (no split shipments).
- `check_shipping_availability` — Whether Camden Tools ships to a country, with any restriction message.
- `get_prices_for_country` — Country-specific pricing for a set of products (the checkout applies the destination country's currency and pricing). Returns unit, sale and final prices plus the subtotal.
- `estimate_delivery` — Delivery services, charges and transit times for a basket to a destination (country plus postcode/ZIP and city). This is an estimate using placeholder contact details; exact rates are confirmed at checkout.
- `lookup_uk_postcode` — Addresses for a UK postcode (rate limited upstream). Returns matching addresses or suggestions when the postcode is incomplete.

### Basket

Prepare a basket the shopper opens on the site, reviews and pays for at checkout.

- `create_basket_link` — Turn product ids and quantities into one link that fills the shopper's basket on camdentools.com. Opening the link makes sure the basket holds at least those quantities (opening it twice does not double them); the shopper reviews the basket and pays at checkout themselves. The result says which lines are out of stock: those cannot be bought, so offer an alternative before sharing the link. Use it to finish a shopping conversation. Ids come from search_products, list_products or get_product.

### Orders

Track any order with its order number and delivery postcode.

- `track_guest_order` — Order status, tracking number/URL, shipping method and line items for any order, given the order number and the delivery postcode (no sign-in needed).

### Account (browser session)

The signed-in shopper's profile and order history. Only from the shopper's own browser on camdentools.com, after they allow AI agent access.

- `get_my_profile` — The signed-in shopper's name, email and saved addresses. Needs the shopper's browser session with AI agent access, or an OAuth token with the profile:read scope. (browser session + consent, or an OAuth token on /mcp/account where enabled; otherwise not offered)
- `list_my_orders` — The signed-in shopper's order history (most recent first). Needs the shopper's browser session with AI agent access, or an OAuth token with the orders:read scope. (browser session + consent, or an OAuth token on /mcp/account where enabled; otherwise not offered)
- `get_my_order` — One of the signed-in shopper's orders by order number, with status, tracking and line items. Needs the shopper's browser session with AI agent access, or an OAuth token with the orders:read scope. (browser session + consent, or an OAuth token on /mcp/account where enabled; otherwise not offered)

### Store and help

Store facts, policies, the London collection point and the blog.

- `get_site_info` — Who Camden Tools is, how to contact them, VAT display rules, key page links, current announcements and a summary of each policy (delivery, returns, payment, FAQs). Call get_policy for the full text of a policy.
- `get_policy` — Full text (markdown) of a store policy: delivery, returns, payment-options, faqs or contact.
- `get_collection_point_info` — The London Click & Collect warehouse: address, opening hours, whether it is open right now (Europe/London, bank holidays respected) and when it next opens.
- `search_blog_posts` — Guides and articles from the Camden Tools blog (how-tos, buying guides, brand news).
- `get_blog_post` — A blog post's full text (plain text) by slug.

Resources: `camdentools://policies/delivery`, `camdentools://policies/returns`, `camdentools://policies/payment-options`, `camdentools://policies/faqs`, `camdentools://policies/contact`, `camdentools://store/facts`, `camdentools://llms.txt`.

Prompts: `find_the_right_tool` (task, budget?, brand?), `check_delivery` (country_code, postcode?), `compare` (skus).

## A2A skills

- `search-products` — Find tools and equipment in the Camden Tools catalogue with prices, stock and links.
- `product-lookup` — Full details for a product by SKU or slug: price ex/inc VAT, stock, variants, documents.
- `compare-products` — Side-by-side comparison of two to five SKUs.
- `create-basket` — Turn product ids and quantities into a link that fills the shopper's basket on camdentools.com; they review it and pay at checkout.
- `order-status` — Track an order with its order number and delivery postcode.
- `shipping-availability` — Whether Camden Tools ships to a country (ISO alpha-2 code).
- `express-delivery-status` — Whether same-working-day dispatch is available right now for UK orders.

## In-page WebMCP tools (Chrome with WebMCP)

When a shopper browses camdentools.com, the page registers these tools with the browser. The shopper sees a notice for every action and pays at checkout themselves.

- `cart_get` — The shopper's current basket on this site: lines (product id, SKU, name, quantity, unit price), item count, subtotal, promo code and the cart/checkout URLs.
- `cart_add_item` — Add a product to the shopper's basket by product id (from search_products / get_product). The shopper still pays at checkout.
- `cart_update_item` — Set the quantity of a basket line (product id).
- `cart_remove_item` — Remove a product from the basket by product id.
- `cart_clear` — Empty the shopper's basket.
- `cart_apply_promo` — Apply a promo code to the basket. The shop validates codes against the shopper's email, so provide the email the order will use.
- `cart_remove_promo` — Remove the applied promo code from the basket.
- `wishlist_add` — Save a product to the shopper's wishlist by product id.
- `wishlist_remove` — Remove a product from the shopper's wishlist by product id.
- `page_get_context` — What the shopper is looking at right now: page type (product, category, search, cart, checkout…), the product on a product page (SKU, name, price), the search query, locale, VAT display mode, basket count and a basket handoff link for the current basket.
- `page_navigate` — Navigate the shopper's browser within camdentools.com: a product (slug), category (slug), search results (query), the basket, checkout, or any site path.
- `page_set_vat_display` — Switch the site's price display between including and excluding VAT.
- `page_select_variant` — On a product page, switch to the variant matching the given options (e.g. {"Colour": "Red", "Size": "M"}) or SKU by navigating to its page. (product page only)
- `page_prefill_checkout_address` — On the checkout page, pre-fill the delivery contact and address form. The shopper reviews it and completes payment themselves; nothing is submitted. (checkout page only)
- `page_request_account_access` — Ask the shopper to allow AI agent access to their account (orders, profile). Opens a consent prompt in the page; returns whether it was granted. Required before get_my_profile / list_my_orders / get_my_order.

## Buying

Finish a conversation with `create_basket_link` (or the A2A `create-basket` skill): the returned link fills the shopper's basket on the site. In the browser, `cart_add_item` does the same in place. Direct agent checkout arrives through Stripe's agentic commerce programme; the ACP discovery document at https://camdentools.com/.well-known/acp.json is served once it is enabled.

## Etiquette

- Quote prices inc VAT to consumers and ex VAT to trade buyers; results always carry both.
- Keep the attribution parameters on links (utm_source=ai-agent).
- Do not attempt to place orders, log in, or submit forms; hand the shopper the link instead.
- Respect rate limits: the API answers 429 when busy — wait before retrying.

## Changelog

- 2026-09-17 (v1.2.0): OAuth-ready account access for remote clients: POST /mcp/account with RFC 9728 protected resource metadata and a WWW-Authenticate challenge, account tools gated by the profile:read and orders:read scopes, and a generated /auth.md. The shopper signs in and approves the client on camdentools.com/connect; a grant that lacks a scope is reported as such (reconnect and approve it) rather than as a sign-in problem. Served once the Camden Tools authorization server is configured; until then the endpoint and its metadata return 404. create_basket_link now reports stock per line and lists out_of_stock_ids, and its link is idempotent: opening it makes sure the basket holds at least those quantities, so opening it twice never doubles them. Revoked or disconnected access tokens get the 401 invalid_token challenge.
- 2026-09-17 (v1.1.0): New create_basket_link tool and A2A create-basket skill: one link fills the shopper's basket on the site (/cart?add=id:qty). Account tools are no longer advertised to remote clients that cannot use them. Capabilities catalogue at /api/agent-capabilities; SKILL.md, OpenAPI and llms-full.txt are generated from it. Web Bot Auth key directory. ACP discovery document (served once agentic checkout is enabled).
- 2026-09-16 (v1.0.0): Launch: MCP server with 31 tools, 7 resources and 3 prompts; A2A agent with 6 skills; in-page WebMCP tools for the basket, wishlist, navigation, VAT display, variants, checkout prefill and account consent; discovery documents (API catalog, MCP server card, A2A agent card, OpenAPI, agent skills, ai-catalog, auth.md, llms.txt, llms-full.txt).
