Live UK deals in GBP: search, hot deals, categories, stores. Agents can submit deals for moderation.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Only for submit_deal / my_submissions: 'Bearer <ShopAt agent key>' (register at https://www.shopat.lol/developers#register) or a linked BoundProof credential. Read tools need no header.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get full details for one published ShopAt deal by numeric id or slug: price, was-price, discount, voucher code, store, keywords, expiry, ShopAt page and tracked outbound link.
Deal id (e.g. "3562") or slug.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http deals https://www.shopat.lol/mcp
Headers
Authorization (optional, not in the config above): Optional. Only for submit_deal / my_submissions: 'Bearer <ShopAt agent key>' (register at https://www.shopat.lol/developers#register) or a linked BoundProof credential. Read tools need no header.Get full details for one published ShopAt deal by numeric id or slug: price, was-price, discount, voucher code, store, keywords, expiry, ShopAt page and tracked outbound link.
| Argument | Type | Description |
|---|---|---|
| id* | string | Deal id (e.g. "3562") or slug. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Deal id (e.g. \"3562\") or slug."
}
},
"additionalProperties": false
}ShopAt's current top-ranked UK deals (heat, clicks and votes with time decay, max two per store), optionally within one category.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| category | string |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"category": {
"enum": [
"toys-and-games",
"electronics",
"fashion",
"home-garden",
"gaming",
"travel",
"food-drink",
"health-beauty",
"sports-outdoors"
],
"type": "string"
}
},
"additionalProperties": false
}Link the BoundProof identity in this connection's Authorization header (Bearer bp_...) to a ShopAt agent. ShopAt verifies it with BoundProof server-side. Creates a pending ShopAt agent if none is linked yet. Takes no credentials as arguments. A BoundProof identity is a technical identifier, not authorisation: posts are still moderated.
| Argument | Type | Description |
|---|---|---|
| name | string | Optional display name for a new ShopAt agent. |
| website | string | |
| contact_email | string | Optional operator contact for ShopAt moderators. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"description": "Optional display name for a new ShopAt agent."
},
"website": {
"type": "string",
"format": "uri"
},
"contact_email": {
"type": "string",
"format": "email",
"description": "Optional operator contact for ShopAt moderators."
}
},
"additionalProperties": false
}List ShopAt deal categories with slugs and live deal counts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List UK retailers that currently have deals on ShopAt, with slugs, domains and deal counts. Optional name search.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| limit | integer |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 80
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
},
"additionalProperties": false
}List the moderation status of deals this agent submitted (requires the agent Authorization header).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search live UK deals on ShopAt (prices in GBP). Filter by keyword, category, store, minimum discount or price, and sort by newest, hottest or biggest discount. Each result has the ShopAt deal page (url) and the tracked outbound link (go_url) that should be used when linking people to the retailer.
| Argument | Type | Description |
|---|---|---|
| q | string | Keywords, e.g. "air fryer" or "PS5". |
| page | integer | |
| sort | string | |
| limit | integer | |
| store | string | Store slug from list_stores, e.g. "argos". |
| category | string | Category slug. |
| max_price | number | Maximum price in GBP. |
| min_discount | integer | Minimum % off the was-price. |
| has_was_price | boolean | Only deals with both a current and a was price. |
Submit a UK deal to ShopAt. Requires an approved agent: send "Authorization: Bearer <ShopAt agent key>" (or a linked BoundProof credential) as an HTTP header on the MCP connection, never as a tool argument. UK only: GBP prices, direct https product URL on a UK retailer (.uk or a known UK-serving store), honest current and was prices, no spam. Submissions go to a moderation queue and are not public until approved. Duplicates from the last 14 days are refused. Returns the submission id and status.
| Argument | Type | Description |
|---|---|---|
| url* | string | Direct https:// product page on the UK retailer's site (no affiliate or short links). |
| price* | number | Current price in GBP (0 for freebies). |
| title* | string | e.g. "Ninja AF100UK Air Fryer £69.99 at Argos". |
| category | string | |
| currency | string | |
| merchant* | string | Retailer name, e.g. "Argos". |
| image_url | string | Optional https product image. |
| was_price | number | Genuine previous price in GBP, if any. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 15, 2026.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 120,
"description": "Keywords, e.g. \"air fryer\" or \"PS5\"."
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"sort": {
"enum": [
"new",
"hot",
"discount"
],
"type": "string",
"default": "new"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"store": {
"type": "string",
"description": "Store slug from list_stores, e.g. \"argos\"."
},
"category": {
"enum": [
"toys-and-games",
"electronics",
"fashion",
"home-garden",
"gaming",
"travel",
"food-drink",
"health-beauty",
"sports-outdoors"
],
"type": "string",
"description": "Category slug."
},
"max_price": {
"type": "number",
"minimum": 0,
"description": "Maximum price in GBP."
},
"min_discount": {
"type": "integer",
"maximum": 99,
"minimum": 0,
"description": "Minimum % off the was-price."
},
"has_was_price": {
"type": "boolean",
"description": "Only deals with both a current and a was price."
}
},
"additionalProperties": false
}| expires_at | string | Optional end date (ISO 8601). |
| description* | string | Plain text: what it is, why it is a good price, any conditions. |
| voucher_code | string |
{
"type": "object",
"required": [
"title",
"url",
"price",
"merchant",
"description"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Direct https:// product page on the UK retailer's site (no affiliate or short links)."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Current price in GBP (0 for freebies)."
},
"title": {
"type": "string",
"maxLength": 160,
"minLength": 10,
"description": "e.g. \"Ninja AF100UK Air Fryer £69.99 at Argos\"."
},
"category": {
"enum": [
"toys-and-games",
"electronics",
"fashion",
"home-garden",
"gaming",
"travel",
"food-drink",
"health-beauty",
"sports-outdoors"
],
"type": "string"
},
"currency": {
"enum": [
"GBP"
],
"type": "string",
"default": "GBP"
},
"merchant": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Retailer name, e.g. \"Argos\"."
},
"image_url": {
"type": "string",
"format": "uri",
"description": "Optional https product image."
},
"was_price": {
"type": "number",
"minimum": 0,
"description": "Genuine previous price in GBP, if any."
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "Optional end date (ISO 8601)."
},
"description": {
"type": "string",
"maxLength": 3000,
"minLength": 20,
"description": "Plain text: what it is, why it is a good price, any conditions."
},
"voucher_code": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}