github analyzed 64ef6b4

nicktcode/swissgroceries-mcp

github

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

maintainer
nicktcode
license
NOASSERTION
first seen
2026-06-07
last seen
2026-06-07
releases · 30d
2
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 7 tools
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.

code evidence vv0.9.0 · github-tarball
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