Basketwatch Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Basketwatch Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol server that exposes the BasketWatch Irish grocery data API as tools your AI agent can call directly. Works with Claude Desktop, Continue.dev, Cursor, and any other MCP-compatible client.
~50,000 Irish supermarket SKUs across Aldi, Tesco, SuperValu and Dunnes Stores. Refreshed every night. Now queryable by Claude.
Install it, point it at the API, ask a question. With no key you get a live 50-row sample on every tool, straight from this morning's scrape. Real prices, real promotions, enough to see whether the data is what you need before paying anything.
Access is metered per record returned, at EUR 0.001 per record, bought up front as credits. No subscription, no monthly minimum, and credits never expire.
| Pack | Records |
|---|---|
| EUR 49.99 | 49,990 |
| EUR 99.99 | 99,990 |
| EUR 199.99 | 199,990 |
| EUR 499.99 | 499,990 |
| EUR 999.99 | 999,990 |
Buy one at <https://basketwatchireland.com/pricing> and you are emailed a key. Put it in BASKETWATCH_API_KEY and this server starts using it.
Your credits work here exactly as they do anywhere else. There is no separate MCP plan, no surcharge and no second balance to keep track of. One record returned costs one credit whether it came from curl, your own code, or your assistant calling a tool. Every response reports what it cost and what is left, and GET /api/credits shows the balance and ledger for free.
Calls that return no rows are free. A question that finds nothing costs nothing.
An autonomous agent can purchase a credit pack itself, with no human, no browser and no card entry, by paying over MPP with a Stripe shared payment token. It reads the price at /api/credits/mpp, receives a signed payment challenge, pays, and gets back a funded key it can use immediately. See the API reference.
Bulk historical exports, scheduled delivery, custom matching or an SLA are a conversation rather than a signup: [email protected].
The MCP server itself is free and open source. The data behind it is what you pay for.
Once installed, your agent has 8 grocery-aware tools:
| Tool | What it does |
|---|---|
status | Cross-retailer health snapshot — SKU counts, last-scrape dates, run status |
search_products | Find products by name in one or all stores |
compare_price_across_stores | One-call comparison across all 4 supermarkets |
get_promotions | List products currently on offer at a given store |
recent_price_changes | Day-over-day price movements, with shelf moves, promotions and loyalty prices kept separate |
newly_added_products | New listings in a configurable lookback window |
removed_products | Delistings / range cuts |
list_products | Paginated catalogue dump for walking the full assortment |
Example questions your agent can answer:
pip install basketwatch-mcpOr from source:
git clone https://github.com/basketwatch/basketwatch-mcp.git
cd basketwatch-mcp
pip install -e .| Variable | Default | Purpose |
|---|---|---|
BASKETWATCH_API_BASE | (required) | Origin of the BasketWatch API (e.g. https://basketwatch.fly.dev, or https://api.basketwatch.ie once that's live) |
BASKETWATCH_API_KEY | (optional) | Your BasketWatch key. Without one you get a 50-row sample per call; with one, up to BASKETWATCH_MCP_MAX_ROWS, metered against your credits |
BASKETWATCH_MCP_MAX_ROWS | 200 | Most rows a single tool call may return. Raise it for longer answers, lower it to keep a chatty model's credit spend predictable |
BASKETWATCH_MCP_TRANSPORT | stdio | Set to streamable-http to host the server for a team instead of running it locally. Note that one hosted server means one key, so all the credits land on that one balance |
BASKETWATCH_MCP_DAILY_LIMIT | 0 (off) | Optional client-side daily cap — extra safety on top of your key's server-side limit |
BASKETWATCH_MCP_RATE_PER_MIN | 0 (off) | Optional client-side per-minute rate limit |
Important: by default the MCP server imposes no client-side rate limits — paid subscribers get whatever throughput their key allows on the BasketWatch origin. The two BASKETWATCH_MCP_*_LIMIT env vars are escape valves for use cases like:
the family / team API quota
The origin's per-key rate limit (enforced server-side) is the authoritative throttle. Trial keys get tight limits; paid-subscriber keys get high or unlimited throughput.
When a client-side limit is configured AND hit, every tool returns:
{
"error": "Client-side rate limit reached: ...",
"limit_hit": true,
"hint": "Email [email protected] to get an API key with higher / unlimited usage."
}Edit your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd a basketwatch entry under mcpServers:
{
"mcpServers": {
"basketwatch": {
"command": "basketwatch-mcp",
"env": {
"BASKETWATCH_API_BASE": "https://basketwatch.fly.dev",
"BASKETWATCH_API_KEY": "your-api-key-here"
}
}
}
}Restart Claude Desktop. You'll see "basketwatch" listed as an available MCP server in Claude's MCP indicator. Ask Claude "What's the cheapest 1L of milk in Ireland?" — it'll use the tools automatically.
These clients use the same MCP protocol over stdio. Add a server block to your ~/.continue/config.json (Continue) or equivalent Cursor config:
{
"mcpServers": {
"basketwatch": {
"command": "basketwatch-mcp",
"env": {
"BASKETWATCH_API_BASE": "https://basketwatch.fly.dev",
"BASKETWATCH_API_KEY": "your-api-key-here"
}
}
}
}git clone https://github.com/basketwatch/basketwatch-mcp.git
cd basketwatch-mcp
python -m venv .venv && source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e .
export BASKETWATCH_API_BASE="https://basketwatch.fly.dev"
export BASKETWATCH_API_KEY="your-key"
# Run the server directly to test (it speaks MCP over stdio — type JSON-RPC
# requests at it or use `mcp dev` from the MCP SDK for interactive testing).
python basketwatch_mcp.pyscrape_date field per row so the agentknows exactly when each price was captured.
subscription — email [email protected].
BasketWatch is not affiliated with Aldi Ireland, Tesco Ireland, Musgrave SuperValu or Dunnes Stores. Data is collected from publicly available sources for lawful market research and price comparison purposes.
MIT.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.