# nicktcode/swissgroceries-mcp [Health: Active]

**Category:** 🛒 E-Commerce  
**Repository:** https://github.com/nicktcode/swissgroceries-mcp  
**GitHub Stars:** 30  
**npm Downloads (last month):** 512  
**Views:** 5  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/nicktcode-swissgroceries-mcp

## Description
Swiss grocery search, weekly promotions, and multi-store shopping plans across Migros, Coop, Aldi, Denner, Lidl, Farmy, Volg, and Otto's. Cross-chain unit-price comparison and three planning strategies (singlestore / splitcart / absolutecheapest). Install via npx -y @nicktcode/swissgroceries-mcp.

## Tools
Capabilities this server exposes over MCP:

- **find_stores** — Find grocery stores near a location, filtered by chain and radius.
- **search_products** — Cross-chain product search with normalised price, unit price, size, and tags.
- **get_product** — Full product details for a chain plus product ID pair.
- **get_promotions** — Current promotional deals, filterable by chain, keyword, store, or expiry.
- **find_stock** — Stores of a chain that have a given product in stock.
- **plan_shopping** — Plan a multi-store trip for a shopping list near a location.
- **health_check** — Probe each registered chain adapter and report status, latency, and capabilities.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What nicktcode/swissgroceries-mcp MCP server does

The nicktcode/swissgroceries-mcp MCP server exposes Swiss grocery search and planning functions through the Model Context Protocol. It covers product catalogs, store locations, promotions, and selected per-store stock data across Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, and Otto's. Coverage differs by retailer: Lidl provides weekly leaflet data, Farmy and Volgshop are delivery-oriented for stock, and Otto's includes grocery-adjacent categories such as food, drugstore, and baby products.

Product results use a shared representation that can include price, unit price, package size, tags, and nutrition. Nutrition values are normalized to a per-100g or per-100ml basis when the source data can be parsed. Missing values remain absent rather than being estimated.

## How it works

Each retailer is handled through a separate adapter responsible for its upstream requests, authentication behavior, and conversion into the common product format. The service uses publicly accessible mobile-app or retailer endpoints. Some adapters require anonymous session handling internally: Denner can register a client automatically, while Migros obtains and renews a guest token. These details do not require credentials from the user.

The planning tool accepts a shopping list and location, then supports single-store, split-cart, and lowest-total planning approaches. It can account for a penalty for additional trips when producing a plan. MCP prompts are also included for weekly deal summaries, cross-chain basket comparisons, and finding inexpensive recipe ingredients. A resource at `swissgroceries://chains` reports registered chains and their capabilities.

## Setup and configuration

Install the nicktcode/swissgroceries-mcp MCP server as a local npm-based stdio process:

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

The project states that no account, token, or API key is needed. Optional configuration includes `DENNER_JWT` for a supplied Denner bearer token, `LIDL_DEFAULT_STORE` for the fallback Lidl store, `SWISSGROCERIES_USER_AGENT_COOP` for Coop requests, `SWISSGROCERIES_LOG_LEVEL` for `silent`, `info`, or `debug` logging, and `SWISSGROCERIES_DISABLE_CACHE=1` to bypass the in-memory HTTP cache.

## Tools and capabilities

The nicktcode/swissgroceries-mcp MCP server provides these tools:

- `find_stores` searches for nearby stores, with chain and radius filters.
- `search_products` searches across chains and returns normalized pricing, sizing, unit pricing, and tags.
- `get_product` retrieves detailed information using a chain and product ID pair.
- `get_promotions` filters current deals by chain, keyword, store, or expiry.
- `find_stock` identifies stores carrying a requested product where the chain exposes that data.
- `plan_shopping` creates a shopping plan across one or more stores near a supplied location.
- `health_check` reports adapter status, latency, and capabilities.

The server is intended for MCP-compatible clients, including Claude Desktop, Claude Code, Cursor, Cline, Continue, VS Code MCP extensions, and custom clients. Its documented client configuration uses a local stdio command.

## Limitations and notes

Retailer support is not uniform. Aldi does not provide per-store stock, Lidl is limited to weekly leaflet product data, and Farmy and Volgshop do not provide physical-store stock because they are delivery services. Nutrition availability also varies by chain. The upstream APIs are unofficial and may change, which can cause an adapter to stop working or return altered data. The project is independent of the listed retailers and is licensed under AGPL-3.0.

_Full upstream README: https://allmcps.com/mcp/nicktcode-swissgroceries-mcp/readme_

