nitaiaharoni1/super-mcp

View on GitHub ↗

Israeli supermarket product, price, and basket optimization MCP

15 ★3 forksTypeScriptUpdated 18d ago

What you need to know

super-mcp — a canonical, queryable, agent-native layer over Israeli supermarket price-transparency feeds (TypeScript monorepo: Postgres + Fastify REST + remote MCP over Streamable HTTP) offering a keyless hosted MCP endpoint (online-supermarket delivery optimization) or a self-hostable tree.

Install

createdb super_mcp
cp .env.example .env (set DATABASE_URL and a random BASKET_CONTINUATION_SECRET >=32 bytes)
pnpm install && pnpm db:migrate && pnpm db:seed (seed writes the API key to .local/api-key.txt)
pnpm dev -> http://localhost:8787/mcp (also /health and /openapi.json)

Usage

  • Hosted endpoint: point any MCP client at it — no key needed; /v1/admin/* stays behind a master key.
  • MCP '/mcp' exposes optimize_delivery (minimizes basket + delivery/service fee over an address/city/near input).
  • REST smoke: curl -s http://localhost:8787/health; POST /v1/delivery/optimize with items + address; GET /v1/products?q=חלב.
  • Self-hosters can set SUPER_MCP_ALLOW_ANONYMOUS=0 and send Authorization: Bearer <key> from .local/api-key.txt.
  • Semantic re-index: pnpm db:semantic-index -- --backend=hasher --limit=5000, then pnpm db:benchmark-semantic.

Key features

  • Deterministic-first basket resolution prefers exact-name/phrase/token/ontology evidence and returns needs_confirmation rather than silently guessing wrong products.
  • Hebrew catalog search, line resolution, unit normalisation, promotion maths, and freshness shared between delivery and physical-basket engines.
  • Semantics are data-driven (semantic_term / semantic_attribute_definition / semantic_search_config in Postgres), with embedding-based fallback (active Ontology he-retail-v1).
  • Activation gates: vector/profile coverage, recall, p95 latency budgets, forbiddenHitRate and Herzliya BBQ tests at 0.
  • Hosted vs self-host split is clean — the open-source tree contains no path into the operator's cloud; Apache-2.0.

Best for

Agents that answer Israeli grocery questions — pricing for a basket, delivery optimization, promotions — with honest confirmation when input is ambiguous.

Caveats

  • Hosted mode: open access without a key, but you get no cloud credentials, database access, or deploy rights.
  • Needs Node 22+, pnpm 9+, and Postgres 16+ with pgvector for self-hosting.
  • Basket resolution intentionally refuses rather than guesses — some lines return needs_confirmation, expecting follow-up questions.
  • Embedding/semantic layers warm up on first request; benchmarks target warm wall-clock under ~8s for an 18-line call.
Platforms: Remote · Local

Reviewed 2026-08-18

Topics

israelmcpmodel-context-protocolopenapipostgressupermarkettypescript
Stars
15★
Forks
3
Language
TypeScript
License
Apache-2.0
Created
2026-07-20
Last push
2026-08-17