MCP.so
Sign In

Swiss Groceries MCP

@nicktcode

About Swiss Groceries MCP

MCP server for Swiss grocery stores: Migros, Coop, Aldi, Denner, Lidl

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "swissgroceries": {
      "command": "npx",
      "args": [
        "-y",
        "@nicktcode/swissgroceries-mcp"
      ]
    }
  }
}

Tools

7

Find grocery stores near a location, filtered by chain and search radius. Accepts a Swiss ZIP code, GPS coordinates, or a free-text address as the search center. Returns store name, address, chain, location, and opening hours where available. Use for "find a Migros near me", "which Coop branches are in 8001?", or before checking stock.

Search for products across configured Swiss grocery chains (Migros, Coop, Aldi, Denner, Lidl) by keyword. Supports optional filters for price, size range, and product tags (organic, vegan, budget, etc.). Returns results grouped by chain with normalised price, unit price, size, and promotion info. A `sources` map reports each chain's data freshness (fetchedAt timestamp + fromCache flag) so you can tell the user how current the prices are. Use for "find organic milk under 2 CHF", "compare pasta prices", or "search for gluten-free bread".

Fetch full product details for a specific chain + product ID pair. Returns { product, fetchedAt, fromCache }: the product carries price, brand, size, unit price, tags, category, image URL, and active promotions, while fetchedAt + fromCache report how fresh the data is. Obtain product IDs from search_products. Useful for drilling into a search result. Use for "get details for this Migros product" or "what is the unit price of this item?".

List current promotional deals across configured Swiss grocery chains. Filter by chain, keyword, store ID, or how many days until the promotion expires. Returns promotion name, discount, validity dates, and applicable stores. Use for "what is on sale this week?", "any Migros deals on cheese?", or "promotions ending today".

Check which stores of a given chain have a specific product in stock. Optionally filter by proximity to GPS coordinates or query a single store by ID. Not all chains support per-store stock queries; unsupported chains return a clear error. Use for "is this product available near Zurich HB?", "which Coop has item X in stock?".

Probe each registered chain adapter with a trivial query and report status, latency, and capability flags. Use this when a chain seems missing from results or when debugging adapter problems.

Plan a multi-store shopping trip near a location, picking the best products across configured Swiss grocery chains. Items can be generic ("milch", "pasta") or pinned to a specific SKU. Returns a primary plan plus alternatives. Use when the user gives a list of items and asks "where should I shop?" or "what's cheapest?". Strategies: single_store (one chain), split_cart (multi-chain with stop penalty), absolute_cheapest (no penalty).

Overview

What is Swiss Groceries MCP?

Swiss Groceries MCP is a Model Context Protocol server that provides real-time Swiss grocery shopping capabilities. It lets users search products, compare prices across eight major retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, and Otto’s), view weekly promotions, and plan multi-store shopping trips. It is intended for anyone using an MCP‑compatible AI client (e.g., Claude Desktop, Claude Code, Cursor, Cline, Continue, VS Code) to make smarter grocery decisions.

How to use Swiss Groceries MCP?

Install via npm with npx -y @nicktcode/swissgroceries-mcp and add the server entry to your MCP client’s config file (e.g., claude_desktop_config.json or .cursor/mcp.json). No accounts, tokens, or API keys are required. A one‑click .mcpb installer is also available on the Releases page for Claude Desktop.

Key features of Swiss Groceries MCP

  • Cross‑chain product search with normalized prices and unit prices.
  • Real‑time price comparison across Migros, Coop, Aldi, and more.
  • Weekly promotions viewable by chain, keyword, or expiry.
  • Multi‑store shopping planner with single‑store, split‑cart, and cheapest modes.
  • Per‑store stock checking for supported chains.
  • Automatic credential management for Denner (anonymous self‑registration).
  • In‑memory caching, retry, rate limiting, and circuit‑breaking for reliability.

Use cases of Swiss Groceries MCP

  • Compare the cheapest place for milk near a given Swiss postal code.
  • Plan a weekly grocery trip to minimize both cost and number of stops.
  • Discover this week’s best deals across all supported chains.
  • Find which stores near a location have a specific product in stock.
  • Get full nutritional information (normalised per 100g) for products across chains.

FAQ from Swiss Groceries MCP

What does Swiss Groceries MCP do that alternatives do not?

It integrates eight Swiss grocery chains into a single MCP interface, normalises prices, promotions, and nutritional data, and offers a multi‑store shopping planner that optimises for cost, trips, or both.

What are the runtime requirements?

Node.js version 20 or higher is required. The server runs as a stdio‑based MCP tool; no persistent database or external service is needed.

Where does user data live?

All data is fetched live from the retailers’ public mobile‑app endpoints. No user data is stored by the server; it does not require accounts or API keys.

Are there any known limitations?

The upstream APIs are unofficial and can change without notice, potentially breaking adapters. The Denner and Lidl adapters may require occasional token rotation. Some chains (e.g., Aldi, Lidl, Farmy) do not expose per‑store stock or nutrition data.

What transport and authentication does Swiss Groceries MCP use?

It uses stdio transport (MCP protocol). No authentication is required; the Denner adapter self‑registers anonymously on first use. Configuration is done via environment variables.

Frequently asked questions

What does Swiss Groceries MCP do that alternatives do not?

It integrates eight Swiss grocery chains into a single MCP interface, normalises prices, promotions, and nutritional data, and offers a multi‑store shopping planner that optimises for cost, trips, or both.

What are the runtime requirements?

Node.js version 20 or higher is required. The server runs as a stdio‑based MCP tool; no persistent database or external service is needed.

Where does user data live?

All data is fetched live from the retailers’ public mobile‑app endpoints. No user data is stored by the server; it does not require accounts or API keys.

Are there any known limitations?

The upstream APIs are unofficial and can change without notice, potentially breaking adapters. The Denner and Lidl adapters may require occasional token rotation. Some chains (e.g., Aldi, Lidl, Farmy) do not expose per‑store stock or nutrition data.

What transport and authentication does Swiss Groceries MCP use?

It uses stdio transport (MCP protocol). No authentication is required; the Denner adapter self‑registers anonymously on first use. Configuration is done via environment variables.

Comments

More Productivity MCP servers