swissgroceries-mcp — Claude Code MCP server: Swiss grocery prices
Searches products and weekly deals across Swiss grocery chains, compares prices and plans a multi-store trip. Handy when you track a food budget.
claude mcp add --env DENNER_JWT=<DENNER_JWT> --env LIDL_DEFAULT_STORE=<LIDL_DEFAULT_STORE> --env SWISSGROCERIES_USER_AGENT_COOP=<SWISSGROCERIES_USER_AGENT_COOP> --env SWISSGROCERIES_LOG_LEVEL=<SWISSGROCERIES_LOG_LEVEL> --env SWISSGROCERIES_DISABLE_CACHE=<SWISSGROCERIES_DISABLE_CACHE> --transport stdio swissgroceries-mcp -- npx -y @nicktcode/swissgroceries-mcpWhat swissgroceries-mcp does
The server hands your agent seven tools: nearby store lookup, cross-chain product search with normalised and unit pricing, product details, promotions, per-store stock, and trip planning for a shopping list. A health_check tool probes each chain adapter and reports status and latency.
Coverage is uneven. Migros exposes a full catalog, promotions and per-store stock; Coop covers the coop.ch catalog and geo-based stock. Other chains return less, so comparisons across them stay partial. No accounts or keys are involved — the Denner adapter registers an anonymous client on first use, and the rest run on public endpoints.
Chain APIs here are unofficial and shift without notice. When an adapter breaks, it gets fixed once someone posts a response sample in an issue. Claude takes one line: claude mcp add swissgroceries-mcp -e DENNER_JWT=<DENNER_JWT> -- npx -y @nicktcode/swissgroceries-mcp. Every other client reads a JSON entry that spawns npx -y @nicktcode/swissgroceries-mcp over stdio.
What it helps with
- compare one product's price at Migros and Coop
- find chain promotions expiring this week
- check which stores carry a given product
- split a shopping list across stores for the lowest total
- price a basket across several chains at once
Example prompts for the agent
- Compare pasta prices across Migros and Coop
- What is on sale at Aldi this week?
How to install swissgroceries-mcp
Platform CLI
claude mcp add --env DENNER_JWT=<DENNER_JWT> --env LIDL_DEFAULT_STORE=<LIDL_DEFAULT_STORE> --env SWISSGROCERIES_USER_AGENT_COOP=<SWISSGROCERIES_USER_AGENT_COOP> --env SWISSGROCERIES_LOG_LEVEL=<SWISSGROCERIES_LOG_LEVEL> --env SWISSGROCERIES_DISABLE_CACHE=<SWISSGROCERIES_DISABLE_CACHE> --transport stdio swissgroceries-mcp -- npx -y @nicktcode/swissgroceries-mcpReplace <…> with your own values
Platform CLI
codex mcp add swissgroceries-mcp --env DENNER_JWT=<DENNER_JWT> --env LIDL_DEFAULT_STORE=<LIDL_DEFAULT_STORE> --env SWISSGROCERIES_USER_AGENT_COOP=<SWISSGROCERIES_USER_AGENT_COOP> --env SWISSGROCERIES_LOG_LEVEL=<SWISSGROCERIES_LOG_LEVEL> --env SWISSGROCERIES_DISABLE_CACHE=<SWISSGROCERIES_DISABLE_CACHE> -- npx -y @nicktcode/swissgroceries-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"swissgroceries-mcp": {
"command": "npx",
"args": [
"-y",
"@nicktcode/swissgroceries-mcp"
],
"env": {
"DENNER_JWT": "<DENNER_JWT>",
"LIDL_DEFAULT_STORE": "<LIDL_DEFAULT_STORE>",
"SWISSGROCERIES_USER_AGENT_COOP": "<SWISSGROCERIES_USER_AGENT_COOP>",
"SWISSGROCERIES_LOG_LEVEL": "<SWISSGROCERIES_LOG_LEVEL>",
"SWISSGROCERIES_DISABLE_CACHE": "<SWISSGROCERIES_DISABLE_CACHE>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"swissgroceries-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nicktcode/swissgroceries-mcp"
],
"env": {
"DENNER_JWT": "<DENNER_JWT>",
"LIDL_DEFAULT_STORE": "<LIDL_DEFAULT_STORE>",
"SWISSGROCERIES_USER_AGENT_COOP": "<SWISSGROCERIES_USER_AGENT_COOP>",
"SWISSGROCERIES_LOG_LEVEL": "<SWISSGROCERIES_LOG_LEVEL>",
"SWISSGROCERIES_DISABLE_CACHE": "<SWISSGROCERIES_DISABLE_CACHE>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e DENNER_JWT=<DENNER_JWT> -e LIDL_DEFAULT_STORE=<LIDL_DEFAULT_STORE> -e SWISSGROCERIES_USER_AGENT_COOP=<SWISSGROCERIES_USER_AGENT_COOP> -e SWISSGROCERIES_LOG_LEVEL=<SWISSGROCERIES_LOG_LEVEL> -e SWISSGROCERIES_DISABLE_CACHE=<SWISSGROCERIES_DISABLE_CACHE> swissgroceries-mcp npx -y @nicktcode/swissgroceries-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about swissgroceries-mcp
How do I install swissgroceries-mcp in Claude Code?
Run claude mcp add swissgroceries-mcp -e DENNER_JWT=<DENNER_JWT> -- npx -y @nicktcode/swissgroceries-mcp. Nothing else needs configuring.
What does swissgroceries-mcp do?
It gives your agent product and store search, promotions, stock checks and shopping-trip planning for Swiss grocery chains, pulled live from public endpoints.
Do I need an account or API key?
No. Denner self-registers an anonymous client on first use, and the remaining chains serve data through public endpoints.