Skip to main content
Glama

Camden Tools

Search products

search_products
Read-only

Full-text search of the Camden Tools catalogue (tools and hardware, electrical, cleaning, household, garden, safety and more). Returns compact products with prices ex/inc VAT, stock and a link. Out-of-stock products are left out unless include_out_of_stock is true. Use page/per_page to paginate and brand/min_price/max_price to narrow down.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
sortNoSort order: price_low, price_high, name_asc, name_desc or newest. Omit for the default (most popular) order.
brandNoBrand slug to filter by.
queryYesWhat the shopper is looking for, e.g. 'cordless combi drill 18v'.
localeNoStorefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.
expressNoOnly products eligible for Website Express same-day dispatch (UK).
per_pageNoResults per page: 15, 30, 50 or 100 (default 15).
max_priceNoMaximum price in the locale currency.
min_priceNoMinimum price in the locale currency.
include_out_of_stockNoAlso return out-of-stock products, which search leaves out by default. Use it when the shopper wants a specific model that may be sold out.

Output Schema

NameRequiredDescriptionDefault
queryYes
productsYes
paginationYes
search_urlYesThe same search on camdentools.com.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / include_out_of_stock
      Added value: +{
      +  "description": "Also return out-of-stock products, which search leaves out by default. Use it when the shopper wants a specific model that may be sold out.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / products / items / properties / categories / description
      Added value: +"Up to 8 category names; get_product has the product's details."
  3. Changed13 schema fields changed
    • removedOutput schema / properties / products / items / properties / brand / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / brand / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / products / items / properties / brand_slug / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / brand_slug / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / products / items / properties / image / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / image / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / products / items / properties / price / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bulk_prices": {
      -        "description": "Lower unit prices from min_quantity up.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "ex_vat": {
      -              "type": "number"
      -            },
      -            "inc_vat": {
      -              "type": "number"
      -            },
      -            "min_quantity": {
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "min_quantity",
      -            "ex_vat",
      -            "inc_vat"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "currency": {
      -        "type": "string"
      -      },
      -      "ex_vat": {
      -        "type": "number"
      -      },
      -      "inc_vat": {
      -        "type": "number"
      -      },
      -      "on_sale": {
      -        "type": "boolean"
      -      },
      -      "vat_rate": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat."
      -      },
      -      "was_ex_vat": {
      -        "type": "number"
      -      },
      -      "was_inc_vat": {
      -        "description": "Price before the sale; only when on_sale.",
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "currency",
      -      "ex_vat",
      -      "inc_vat",
      -      "on_sale",
      -      "vat_rate"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bulk_prices": {
      +        "description": "Lower unit prices from min_quantity up.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "ex_vat": {
      +              "type": "number"
      +            },
      +            "inc_vat": {
      +              "type": "number"
      +            },
      +            "min_quantity": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "min_quantity",
      +            "ex_vat",
      +            "inc_vat"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "ex_vat": {
      +        "type": "number"
      +      },
      +      "inc_vat": {
      +        "type": "number"
      +      },
      +      "on_sale": {
      +        "type": "boolean"
      +      },
      +      "vat_rate": {
      +        "description": "VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "was_ex_vat": {
      +        "type": "number"
      +      },
      +      "was_inc_vat": {
      +        "description": "Price before the sale; only when on_sale.",
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "currency",
      +      "ex_vat",
      +      "inc_vat",
      +      "on_sale",
      +      "vat_rate"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / products / items / properties / slug / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / slug / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / products / items / properties / summary / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / summary / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / products / items / properties / url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / products / items / properties / url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "pagination": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "last_page": {
      +              "type": "number"
      +            },
      +            "page": {
      +              "type": "number"
      +            },
      +            "per_page": {
      +              "type": "number"
      +            },
      +            "total": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "page",
      +            "per_page",
      +            "total",
      +            "last_page"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "products": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "brand": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "brand_slug": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "categories": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "express_eligible": {
      +            "description": "Website Express (same-working-day UK dispatch); only when the listing reports it.",
      +            "type": "boolean"
      +          },
      +          "gtin": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "number"
      +          },
      +          "image": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "in_stock": {
      +            "type": "boolean"
      +          },
      +          "mpn": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "price": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "bulk_prices": {
      +                    "description": "Lower unit prices from min_quantity up.",
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "ex_vat": {
      +                          "type": "number"
      +                        },
      +                        "inc_vat": {
      +                          "type": "number"
      +                        },
      +                        "min_quantity": {
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "min_quantity",
      +                        "ex_vat",
      +                        "inc_vat"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "currency": {
      +                    "type": "string"
      +                  },
      +                  "ex_vat": {
      +                    "type": "number"
      +                  },
      +                  "inc_vat": {
      +                    "type": "number"
      +                  },
      +                  "on_sale": {
      +                    "type": "boolean"
      +                  },
      +                  "vat_rate": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat."
      +                  },
      +                  "was_ex_vat": {
      +                    "type": "number"
      +                  },
      +                  "was_inc_vat": {
      +                    "description": "Price before the sale; only when on_sale.",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "currency",
      +                  "ex_vat",
      +                  "inc_vat",
      +                  "on_sale",
      +                  "vat_rate"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "null when the product has no online price."
      +          },
      +          "sku": {
      +            "type": "string"
      +          },
      +          "slug": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "stock_level": {
      +            "type": "number"
      +          },
      +          "summary": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "sku",
      +          "name",
      +          "slug",
      +          "url",
      +          "brand",
      +          "brand_slug",
      +          "categories",
      +          "price",
      +          "in_stock",
      +          "stock_level",
      +          "image",
      +          "summary"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "type": "string"
      +    },
      +    "search_url": {
      +      "description": "The same search on camdentools.com.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "query",
      +    "search_url",
      +    "products",
      +    "pagination"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/no-destructive, so safety is covered. The description adds genuine behavioral context: default exclusion of out-of-stock items and the shape of results (compact products with ex/inc VAT prices, stock, link).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what the tool does, then return shape, then filtering/pagination. No filler; each sentence carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter search tool with a full-coverage schema and an output schema, the description covers purpose, results and the key default (out-of-stock). It omits locale/sort/express explicitly, but those are well described in the schema, leaving only a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented. The description reinforces the main filter/pagination intent and the include_out_of_stock default behavior, but adds little syntax or semantics beyond what the schema states. Baseline 3 fits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (full-text search of the Camden Tools catalogue) and scopes the catalogue contents. It clearly reads as the search entry point, distinguishable from get_products/list_products (browsing) and get_product (single detail).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to paginate (page/per_page), how to narrow (brand/min_price/max_price) and the out-of-stock default with an escape hatch. It does not explicitly route the agent to a named sibling (e.g. use get_products to browse), so it stops short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources