plaza-vea-mcp

plaza-vea-mcp

MCP server for querying Plaza Vea's public catalog via VTEX APIs, enabling product search, price comparison, image display, and cart link generation.

Category
Visit Server

README

Plaza Vea MCP

CI

Servidor MCP local para consultar el catalogo publico de plazaVea mediante las APIs publicas de VTEX. Permite buscar, filtrar, comparar precios, mostrar imagenes dentro de un cliente MCP y generar enlaces para continuar la compra directamente en Plaza Vea.

Incluye un crawler Scrapy opcional que mantiene un cache SQLite y un historial local de precios.

Proyecto independiente, sin afiliacion con Plaza Vea, Compania Food Retail S.A.C. ni VTEX.

Caracteristicas

  • Servidor basado exclusivamente en el SDK oficial mcp, usando la API de bajo nivel y stdio.
  • Consultas live-first al catalogo VTEX con respaldo en SQLite.
  • Extraccion de todos los SKUs y sellers de cada producto.
  • Filtros por nombre parcial y marca exacta, tolerantes a mayusculas y acentos.
  • Ordenamiento por precio ascendente, descendente o nombre.
  • Imagenes PNG como ImageContent para vision del modelo y Markdown para mostrarlas al usuario.
  • Enlaces individuales y combinados para agregar productos al carrito.
  • Crawler Scrapy respetuoso con robots.txt, AutoThrottle, cache HTTP y reintentos.
  • Sin Selenium, credenciales, CAPTCHA ni automatizacion del pago.

Requisitos

  • Python 3.12 o 3.13.
  • uv.
  • Codex CLI o cualquier cliente compatible con MCP por stdio.

Instalacion

git clone https://github.com/jeffreymonjacastro/plaza-vea-mcp.git
cd plaza-vea-mcp
uv sync --all-groups

Para registrar el servidor local en Codex desde este checkout:

codex mcp add plaza-vea -- uv --directory C:\ruta\a\plaza-vea-mcp run plaza-vea-mcp
codex mcp get plaza-vea

Reinicia o abre una nueva tarea de Codex para que las tools aparezcan en la sesion.

Tools

Tool Descripcion
search_products Filtra por nombre y marca y ordena por precio o nombre.
get_product Devuelve todas las variantes, sellers, ofertas e imagenes.
list_brands Lista marcas activas, opcionalmente por prefijo.
get_product_image Devuelve ImageContent PNG y el Markdown necesario para mostrar la imagen en la respuesta.
build_cart_links Valida SKUs y genera enlaces para continuar en Plaza Vea.
start_catalog_refresh Inicia el crawler local en segundo plano.
get_catalog_refresh_status Consulta el progreso y resultado del crawler.

Ejemplos de solicitudes naturales en Codex:

Busca productos que contengan "leche" y ordenalos del mas barato al mas caro.
Busca cafe de la marca ALTOMAYO y muestra la imagen del producto mas barato.
Genera un enlace de carrito para dos unidades del SKU 12345.
Actualiza la categoria 814 y dime cuando termine.

Respuestas y precios

Los precios se devuelven como enteros en centimos de sol (price_cents) y con moneda PEN. Cada consulta indica si la fuente es live o cache. Cuando se usa el cache, stale es true.

La version inicial usa el catalogo anonimo del canal de venta 1. Precio, stock, promociones, region y entrega se vuelven a validar al abrir Plaza Vea.

Carrito y pago

build_cart_links no abre el navegador ni modifica directamente el carrito. Devuelve:

  • La pagina de cada producto.
  • El addToCartLink oficial proporcionado por VTEX para cada SKU.
  • Un enlace combinado para varios SKUs.
  • La pagina de checkout de Plaza Vea.

El usuario abre el enlace y completa identificacion, entrega y pago en Plaza Vea. Si el enlace combinado deja de ser compatible con la tienda, se pueden abrir los enlaces individuales.

El proyecto nunca solicita ni almacena contrasenas, DNI, direcciones o datos de tarjeta.

Actualizacion del catalogo

Desde MCP, usa start_catalog_refresh. Sin category_id recorre las categorias hoja del arbol publico; con un ID solo actualiza esa categoria. La tool devuelve un run_id que puede consultarse con get_catalog_refresh_status.

Los datos locales se guardan en data/catalog.sqlite3; los logs del crawler quedan en data/logs/. Ambos estan excluidos de Git.

Variables opcionales:

Variable Uso
PLAZA_VEA_PROJECT_ROOT Directorio de trabajo del proyecto.
PLAZA_VEA_DATA_DIR Directorio para base de datos, logs y cache HTTP.
PLAZA_VEA_DATABASE_PATH Ruta explicita del archivo SQLite.

Desarrollo y validacion

uv sync --all-groups
uv run ruff check src tests scripts
uv run mypy src
uv run pytest
uv run python scripts/smoke_mcp.py

El smoke test inicia el MCP por stdio, consulta productos reales, obtiene una imagen y construye un enlace de carrito. No abre el enlace ni avanza al pago.

Uso responsable

  • Respeta los terminos, disponibilidad y politicas publicadas por Plaza Vea.
  • No incrementes la concurrencia ni desactives AutoThrottle sin autorizacion.
  • No accedas automaticamente a /checkout; esa ruta esta bloqueada en robots.txt.
  • No uses este proyecto para evadir CAPTCHA, controles de acceso o limites del sitio.
  • Las imagenes y datos comerciales pertenecen a sus respectivos titulares.

Consulta THIRD_PARTY_NOTICES.md para referencias y atribuciones.

Licencia

Codigo publicado bajo licencia MIT. Esta licencia no concede derechos sobre marcas, imagenes ni contenido comercial obtenido de Plaza Vea.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured