NLACE-COM

🛒 mcp-supermercados-cl

Community NLACE-COM
Updated

Servidor MCP para buscar productos, comparar precios y armar la mejor lista de compra en supermercados chilenos (Jumbo, Santa Isabel, Unimarc, Tottus, Lider) desde Claude o ChatGPT. 100% local.

🛒 mcp-supermercados-cl

Servidor MCP para buscar productos, comparar precios y armar la mejor listade compra en supermercados chilenos con Claude, ChatGPT u otro cliente MCP.

npmnodetestslicense

El foco es profundidad en la cadena donde tú ya compras — precios club,beneficios por RUT, productos frecuentes, carro — con la comparación entrecadenas como capacidad secundaria. Cubre las cinco grandes cadenas del país.

100 % local: el tráfico sale de tu máquina, a ritmo humano, y tuscredenciales nunca tocan un servidor central.

Tabla de contenidos

  • ¿Se deploya? (importante)
  • Instalación
  • Cobertura por cadena
  • Tools disponibles
  • Cómo funciona la sesión
  • Desarrollo y tests
  • Arquitectura
  • Cómo contribuir
  • Aviso legal
  • Licencia

🚫 ¿Se deploya en Vercel/AWS? No

Este MCP no tiene URL de producción y no se deploya en ningún servidor. Esintencional, y es la razón por la que funciona:

  • Usa transporte stdio (local), no HTTP. Corre en tu máquina, junto a tucliente MCP (Claude Desktop, Claude Code, Cursor, ChatGPT Desktop).
  • Unimarc, Tottus y Lider bloquean el tráfico de datacenter (antibots). Undeploy en la nube no funcionaría para esas cadenas: necesitan tu IPresidencial.
  • El precio socio, tus frecuentes y el carro viven en tu navegador logueado.Las credenciales no deben tocar un servidor central — eso además evita elmayor riesgo legal (un servicio que scrapee cuentas ajenas).

La forma de "producción" de un MCP como este es instalarlo local (vía npxo clonando el repo) y conectarlo a tu cliente. Igual que la mayoría de los MCPservers.

📦 Instalación

Requiere Node.js ≥ 20. Publicado en npm:mcp-supermercados-cl.

Opción 1 — vía npx (recomendada). No instalas nada; tu cliente MCP loejecuta al vuelo. En Claude Desktop / Claude Code(claude_desktop_config.json o .mcp.json):

{
  "mcpServers": {
    "supermercados": {
      "command": "npx",
      "args": ["-y", "mcp-supermercados-cl"]
    }
  }
}

Opción 2 — desde el código (para desarrollar o contribuir):

git clone https://github.com/NLACE-COM/mcp-supermercados-cl.git
cd mcp-supermercados-cl
npm install
npm run build

Y apunta tu cliente al build local:

{
  "mcpServers": {
    "supermercados": {
      "command": "node",
      "args": ["/ruta/absoluta/al/repo/dist/index.js"]
    }
  }
}

Para desarrollo rápido:

npm run dev        # servidor por stdio con tsx
npm run inspector  # abre el MCP Inspector

🏬 Cobertura por cadena

Cadena Plataforma Búsqueda Precio socio Detalle Sesión / carro
Jumbo Cencosud (Constructor.io) ✅ Prime ✅ frecuentes, listas, carro
Santa Isabel Cencosud (Constructor.io) carro Cencosud¹
Unimarc VTEX (BFF propio) ✅ Club Unimarc
Tottus Falabella (Next.js SSR)
Lider Walmart Glass (SSR) —²

¹ El carro de Santa Isabel reutiliza el mismo BFF Cencosud que Jumbo; se activacon tu sesión en santaisabel.cl.² Lider no expone precio socio dual como el Prime de Jumbo; sus descuentos sonrebajas directas ("Precio Lider") + bundles.

⚠️ Unimarc, Tottus y Lider requieren IP residencial (tu máquina); desdedatacenter bloquean. Como el MCP corre local, en tu equipo funcionan.

Todos los resultados vienen enriquecidos: nombre, marca, descripción, foto,precio vigente, precio normal, precio socio, precio por unidad normalizado(por kg/lt para comparar formatos) y bundles ("2 x $2.000", "Lleva 8 por $X").

🧰 Tools disponibles

Núcleo — armar la mejor lista con tu sesión:

Tool Qué hace
build_list Convierte una lista en lenguaje natural en productos concretos. Prioriza tus frecuentes, mejor precio por unidad y ofertas. Flags onlyOffers / onlyInStock.
suggest_swaps Reemplazos convenientes por precio por unidad. Con preferNatural: alternativas de precio similar con menos ingredientes.
get_frequent_purchases Tus productos habituales, con precio Prime (requiere sesión).
get_saved_lists Tus listas guardadas (requiere sesión).
add_to_cart / get_cart Deja la lista en el carro de Jumbo; total, ahorro y ahorro Prime.

Lectura de catálogo:

Tool Qué hace
search_products Busca en cualquier cadena. Filtros maxPrice/minPrice/inStockOnly, orden sortBy (price / unitPrice).
get_product Detalle por URL/slug: precio socio, EAN, ingredientes y sellos nutricionales.
get_offers Ofertas vigentes de Jumbo; primeOnly, filtro por categoría.
find_opportunities Mayores descuentos con stock, ordenados por discountPct. excludeIds para destacar lo que no tienes.

Comparación y diagnóstico:

Tool Qué hace
compare_stores Total de una lista en varias cadenas; marca la más barata.
adapter_status Qué cadenas responden ahora y con qué latencia.

🔐 Cómo funciona la sesión (sin credenciales en el servidor)

El precio socio, los frecuentes y el carro viven detrás del login. En Jumbo, eltoken vive en el localStorage del navegador, así que el servidor nunca vecredenciales: el cliente (junto a tu navegador logueado) extrae los datos delDOM o ejecuta las llamadas autenticadas, y el MCP solo normaliza el resultado.

Ver src/adapters/session.ts ydocs/captura-cencosud-2026-07-06.md.

🧪 Desarrollo y tests

npm test          # tests de contrato con fixtures reales (sin red) — 106 tests
npm run test:live # smoke contra los sitios reales (opt-in, LIVE=1)

Los tests de contrato usan respuestas reales grabadas entests/fixtures/. Los live requieren red y, paraUnimarc/Tottus/Lider, IP residencial. Regraba una fixture cuando una cadenacambie su formato, anotando la fecha.

🏗 Arquitectura

  • Un servidor, un adaptador por cadena (src/adapters/). Esquemanormalizado con zod (src/core/types.ts): precio normal y precio socioseparados, precio por unidad normalizado a base canónica.
  • HTTP a ritmo humano, por tipo de host: los endpoints de API (Constructor.ioy los BFF de Cencosud/Unimarc/Santa Isabel) van a ~350 ms; los sitios que sescrapean por SSR (Tottus, Lider, PDPs www.*) mantienen ~1 s. Reintentos conbackoff, user-agent realista (src/http/client.ts). Cache TTL 15 min.Ajustable por entorno: SUPERMERCADOS_MIN_DELAY_MS, SUPERMERCADOS_FAST_DELAY_MS,SUPERMERCADOS_TIMEOUT_MS, SUPERMERCADOS_MAX_RETRIES.
  • Feedback en vivo: build_list y compare_stores emiten notificaciones deprogreso MCP (notifications/progress) si el cliente las soporta, para noquedar en silencio durante listas largas. compare_stores limita cada cadenaa 25 s y devuelve resultado parcial en vez de bloquear a las demás.
  • Adaptadores aislados: un cambio de sitio rompe un adaptador, no todo.
  • Endpoints documentados en docs/ y endocs/PLAN-arquitectura.md.
src/
├── index.ts            # entrada MCP (stdio)
├── server.ts           # registro de tools
├── core/               # types, registry, normalize, listBuilder, compare, ...
├── adapters/           # cencosud (Jumbo+Santa Isabel), unimarc, tottus, lider
├── tools/              # una tool MCP por archivo
└── http/               # cliente HTTP con rate limit y reintentos

🤝 Cómo contribuir

¡Bienvenidas las contribuciones! Este proyecto está pensado para crecer con lacomunidad. Ver CONTRIBUTING.md.

Ideas de alto impacto:

  • Carro/sesión en Unimarc, Tottus y Lider (cada una con su login propio).
  • Detalle (get_product) para Unimarc/Tottus/Lider.
  • Nuevas cadenas o farmacias.
  • Mantener las fixtures al día cuando una cadena cambie su API.

Cuando una cadena cambie su formato, npm run test:live lo detecta.

⚖️ Aviso legal

Herramienta personal, de código abierto, sin backend central. Cada usuarioopera su propia cuenta desde su propia IP, a ritmo humano, sin redistribuirdatos. Revisa los Términos y Condiciones de cada cadena antes de usarla. Noafiliado a Cencosud, SMU, Falabella ni Walmart. Las marcas mencionadaspertenecen a sus respectivos dueños. Úsalo bajo tu propia responsabilidad.

📄 Licencia

MIT © contribuidores de mcp-supermercados-cl

MCP Server · Populars

MCP Server · New

    openfate-ai

    @openfate/bazi-mcp

    OpenFate Bazi MCP server with deterministic Four Pillars calculation, True Solar Time, branch interactions, and reverse Bazi lookup.

    Community openfate-ai
    mohitagw15856

    🧠 PM Skills — 454 Professional Agent Skills for Claude, ChatGPT, Gemini, Cursor, Codex & Hermes

    In Anthropic's official Claude plugin directory · 400 professional Agent Skills (PRDs, launches, compliance, CVs & more) for Claude, ChatGPT, Gemini, Cursor & Codex. Try free in-browser, or 'npx pm-claude-skills add'.

    Community mohitagw15856
    kagan-sh

    kagan-legacy

    The Orchestration Layer for AI Coding Agents

    Community kagan-sh
    cbtw-apac

    QDrant Loader

    Enterprise-ready vector database toolkit for building searchable knowledge bases from multiple data sources. Supports multi-project management, automatic ingestion from Confluence/JIRA/Git, intelligent file conversion (PDF/Office/images), and semantic search. Includes MCP server for seamless AI assistant integration.

    Community cbtw-apac
    aks129

    HealthClaw Guardrails

    Open-source guardrails between AI agents and FHIR clinical data — PHI redaction, immutable audit, step-up auth, tenant isolation. MCP server + OpenAI/Gemini adapters. A healthclaw.io project.

    Community aks129