MCP server for Swiss grocery stores: Migros, Coop, Aldi, Denner, Lidl
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
find_stock
Stores of a chain that have a given product in stock.
-
find_stores
Find grocery stores near a location, filtered by chain and radius.
-
get_product
Full product details for a chain plus product ID pair.
-
get_promotions
Current promotional deals, filterable by chain, keyword, store, or expiry.
-
health_check
Probe each registered chain adapter and report status, latency, and capabilities.
-
plan_shopping
Plan a multi-store trip for a shopping list near a location.
-
search_products
Cross-chain product search with normalised price, unit price, size, and tags.
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 3
- fs nicktcode-swissgroceries-mcp-64ef6b4/scripts/build-mcpb.ts :2
import { mkdirSync, rmSync, copyFileSync, writeFileSync, readFileSync } from 'node:fs'; - fs nicktcode-swissgroceries-mcp-64ef6b4/scripts/build-swiss-zips.ts :4
import { writeFileSync } from 'node:fs'; - fs nicktcode-swissgroceries-mcp-64ef6b4/src/index.ts :230
import { realpathSync } from 'node:fs';
shell / exec 2
- shell nicktcode-swissgroceries-mcp-64ef6b4/scripts/build-mcpb.ts :1
import { execSync } from 'node:child_process'; - shell nicktcode-swissgroceries-mcp-64ef6b4/scripts/build-swiss-zips.ts :10
import { execFileSync } from 'node:child_process';
network 4
- net nicktcode-swissgroceries-mcp-64ef6b4/scripts/build-swiss-zips.ts :20
const res = await fetch(CSV_ZIP_URL); - net nicktcode-swissgroceries-mcp-64ef6b4/src/adapters/denner/client.ts :11
fetch(path: string, query?: Record<string, string | number | undefined>, noCache?: boolean): Promise<any>; - net nicktcode-swissgroceries-mcp-64ef6b4/src/adapters/denner/index.ts :41
const r = await this.client.fetch('/api/m/content/v2', { v: 0 }); - net nicktcode-swissgroceries-mcp-64ef6b4/src/util/http.ts :26
// "how fresh is this" is therefore per-fetch (≈ per-chain-per-call), not
install hooks 1
- prepublishOnly nicktcode-swissgroceries-mcp-64ef6b4/package.json :49
npm run build && npm test
declared dependencies 8
- @modelcontextprotocol/sdk@^1.12.1
- migros-api-wrapper@^1.1.37
- zod@^3.24.4
- zod-to-json-schema@^3.25.2
- @types/node@^22.0.0
- tsx@^4.0.0
- typescript@^5.8.0
- vitest@^2.0.0