Submit

Swiss Groceries MCP

@nicktcode

Real-time Swiss grocery shopping over MCP. Search products and compare prices across Migros, Coop, Aldi, Denner, and Lidl, see weekly promotions, and plan multi-store shopping trips with three optimisation strategies. Works with any MCP-compatible client (Claude Desktop, Claude Code, Cursor, Cline, Continue).
Overview

swissgroceries-mcp gives any MCP-compatible client (Claude Desktop, Claude Code, Cursor, Cline, Continue, VS Code) real-time access to Swiss grocery chain catalogs.

What you can ask

  • "Where is milk cheapest near 8001 Zürich right now?"
  • "I need milk, bread, eggs, chicken, and pasta near 8050. Where should I shop to keep costs down?"
  • "What is on sale at Aldi this week?"
  • "Find Coop stores within 3 km of Bern Hauptbahnhof."

Install

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

No accounts, no tokens, no API keys. The Denner adapter self-registers an anonymous client on first use; everything else uses public endpoints.

For Claude Desktop one-click install, download the .mcpb from the GitHub Releases page.

Tools

ToolWhat it does
find_storesFind grocery stores near a location, filtered by chain and radius.
search_productsCross-chain product search with normalised price, unit price, size, and tags.
get_productFull product details for a chain plus product ID pair.
get_promotionsCurrent promotional deals, filterable by chain, keyword, store, or expiry.
find_stockStores of a chain that have a given product in stock.
plan_shoppingPlan a multi-store trip for a shopping list near a location.
health_checkProbe each registered chain adapter and report status, latency, and capabilities.

Chain coverage

ChainProduct searchPromotionsPer-store stockAuth
MigrosFull catalogYesYesGuest token (auto-rotated)
CoopFull catalog (coopathome)YesYes (geo)None
AldiFull catalogYesNoNone
DennerFull catalogYesNoAnonymous self-auth
LidlWeekly leafletYesNoNone

Highlights

  • Cross-store unit-price comparison - compares CHF/kg, CHF/l, CHF/piece across chains so multi-pack and single-bottle prices are evaluated fairly.
  • Three planning strategies: single_store (fewest stops), split_cart (cheapest with stop penalty), absolute_cheapest (no penalty).
  • Multipack annotation - every product exposes per-bottle/per-unit estimates derived from pack patterns like 6x1.5l.
  • Category-canonicality filter - when one chain returns a real apple and another returns apple juice, the juice is dropped from the cross-chain comparison automatically.
  • Resilience built in - in-memory cache, retry with exponential backoff, per-host rate limiting, and a per-host circuit breaker.

Disclaimer

Not affiliated with Migros, Coop, Aldi, Denner, or Lidl. Uses publicly accessible mobile-app endpoints. APIs are unofficial and can change at any time. MIT licensed.

Server Config

{
  "mcpServers": {
    "swissgroceries": {
      "command": "npx",
      "args": [
        "-y",
        "@nicktcode/swissgroceries-mcp"
      ]
    }
  }
}
© 2025 MCP.so. All rights reserved.

Build with ShipAny.