BestPrice MCP

Busca productos en BestPrice.gr, compara ofertas actuales de comerciantes y envíos, e inspecciona el historial de precios observado a través de un servidor MCP público de solo lectura.

Documentación

BestPrice MCP

CI Glama score License: Apache-2.0

El servidor oficial del Model Context Protocol para BestPrice.gr, el servicio griego de comparación de precios. Proporciona a los asistentes de IA acceso de solo lectura a decisiones de compra, búsqueda de productos en vivo, comparación de ofertas e historial de precios. No se necesita cuenta ni clave de API.

BestPrice MCP: products, offers and price history for AI assistants

Comienza a comprar

Para integraciones de desarrolladores, el endpoint público es:

https://mcp.bestprice.gr/mcp

Este repositorio contiene todo lo que vive fuera del servicio alojado: los manifiestos de instalación para cada cliente de IA, un puente stdio local para hosts que no pueden hablar HTTP, y la capa WebMCP nativa del navegador. El servidor en sí no está en este repositorio.

La matriz de versiones actual registra la puerta de enlace en vivo, la interfaz de usuario, OAuth/Eventos, la revisión de plugins y la cualificación ACP separada.

Herramientas

HerramientaQué haceArgumentos clave
get_shopping_decisionEjecuta el BestPrice Shopping Brain: una recomendación basada en evidencia, comparación basada en necesidades, o plan de cesta de solo lectura con razones, compensaciones e incógnitas.message (la necesidad en griego o inglés, incluido cualquier presupuesto), opcional postal_code (requerido para un plan de cesta completo), opcional evidence_detail (summary, el predeterminado: solo la evidencia que la respuesta cita; full: cada afirmación y fuente)
search_productsEncuentra productos canónicos en el catálogo. Devuelve IDs de producto y el precio mínimo del catálogo antes del envío.query (2–200 caracteres: un nombre, modelo, categoría o un código de barras GTIN/EAN simple), opcional price_min, price_max, required_features, sort (relevance, price_asc, price_desc), limit (1–8)
compare_offersCompara ofertas actuales de comerciantes para un producto exacto, separando precio del artículo, envío y total entregado.product_id de un resultado anterior, opcional postal_code (un código postal griego, 10000–85999, para totales entregados), objective, in_stock_only, minimum_merchant_rating, limit (1–10)
get_price_historyResume cómo ha variado el precio de un producto a lo largo del tiempo, frente a su mediana de 180 días.product_id, opcional period_days (30, 90 o 180)

Las cuatro herramientas son de solo lectura. Nunca realizan pedidos, crean alertas ni leen datos de cuenta. Los resultados enlazan a una página de producto de BestPrice, nunca directamente a un comerciante. El envío desconocido se informa como desconocido, no como gratuito. La búsqueda cubre productos físicos seguros; los bienes digitales, servicios y categorías restringidas por edad están excluidos.

Detalles del protocolo

Medido contra el endpoint en vivo el 24 de septiembre de 2026.

  • Versiones. initialize negocia 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05 y 2024-10-07; un cliente que solicite cualquier otra versión recibe como respuesta 2025-11-25. También se sirve la 2026-07-28 revisión por solicitud: envía los encabezados MCP-Protocol-Version, Mcp-Method (y, para tools/call, Mcp-Name), y pon io.modelcontextprotocol/protocolVersion y io.modelcontextprotocol/clientCapabilities en el _meta de cada solicitud. Una solicitud que nombre la revisión sin ese envoltorio es rechazada con -32602.
  • Sin estado. No se emite ningún MCP-Session-Id ni se requiere; DELETE responde a 405. Un GET con Accept: text/event-stream abre un flujo keep-alive, pero el servidor nunca envía solicitudes ni notificaciones a través de él, por lo que un cliente no pierde nada si no lo abre.
  • Capacidades. tools y resources están disponibles para clientes compatibles. La superficie de recursos contiene la interfaz opcional de MCP Apps en ui://bestprice/shopping-results-v1.html, la tarjeta del servidor en mcp://server-card.json, y el canónico skill://bestprice-shopping/SKILL.md. En MCP 2026-07-28 el servidor también declara la extensión final io.modelcontextprotocol/skills: skills/list y skills/get devuelven la única BestPrice Shopping Skill con su digest SHA-256 y tamaño en bytes, y resources/read devuelve los bytes exactos de markdown. Los clientes más antiguos simplemente ven la Skill como un recurso ordinario. No hay prompts, completions ni logging; esos métodos responden -32601.
  • Respuestas. Un cliente que acepte tanto application/json como text/event-stream recibe una respuesta SSE de un evento. Accept: application/json, */* o sin encabezado Accept recibe un solo cuerpo JSON. Cada herramienta devuelve structuredContent que valida contra su outputSchema, más el mismo resultado como texto para clientes que no pasan contenido estructurado al modelo.
  • Errores. Una herramienta desconocida es un error JSON-RPC (-32602). Argumentos inválidos y fallos de servicio como un producto desconocido son resultados de herramienta con isError: true, para que el modelo pueda leerlos y corregirlos.
  • Límites. Cuerpos de solicitud JSON de hasta 256 KiB (413 por encima de eso), un plazo de solicitud de 12 segundos, y límites de tasa por cliente respondidos con HTTP 429, error JSON-RPC -32029 y un encabezado Retry-After. Los arrays de lotes JSON-RPC son rechazados con 400.
  • Navegadores. Los clientes de escritorio, CLI y del lado del servidor no envían encabezado Origin y no se ven afectados. Una página de navegador puede llamar al endpoint desde un origen de host de IA en la lista permitida, desde bestprice.gr, o desde localhost (para que MCP Inspector funcione en modo directo); cualquier otro origen recibe 403.
  • Autenticación. Las cuatro herramientas de compra funcionan sin cuenta. La vinculación opcional de cuenta está limitada a events:subscribe; los metadatos de recursos protegidos están disponibles en /.well-known/oauth-protected-resource y /mcp/oauth-protected-resource. Eventos permanece deshabilitado durante la cualificación de extremo a extremo.

Inicio rápido para desarrolladores

Cada cliente a continuación se conecta al mismo endpoint. Instrucciones detalladas y específicas por proveedor, incluyendo OpenAI, Grok, GitHub Copilot y Microsoft Copilot Studio, están en docs/provider-setup.md.

Claude

Conecta BestPrice a Claude abre el flujo de conector personalizado con el endpoint prellenado. Para Claude Code:

claude mcp add --transport http bestprice-shopping https://mcp.bestprice.gr/mcp

El .mcp.json incluido es la configuración equivalente a nivel de proyecto.

Cursor

Añade BestPrice a Cursor muestra la configuración decodificada antes de añadirla. El directorio .cursor-plugin/ contiene el plugin del marketplace y una skill de agente.

VS Code

Añade BestPrice a VS Code

Gemini CLI y Qwen Code

gemini extensions install https://github.com/TheBestCo/bestprice-mcp
qwen extensions install https://github.com/TheBestCo/bestprice-mcp --consent

Ambas extensiones restringen las herramientas importadas a las cuatro listadas arriba.

Codex, plugins de Claude y hosts de Agent Skill

La raíz plugin.json, mcp.json y skills/bestprice-shopping/SKILL.md forman un paquete portátil de Agent Plugins: el MCP proporciona datos de compra en vivo y la Skill enseña al host cuándo y cómo enrutar intención de compra griega sin marca. Los hosts compatibles con agentes que descubren skills locales del repositorio bajo .agents/skills/ obtienen el mismo flujo de trabajo canónico en .agents/skills/bestprice-shopping/SKILL.md. .codex-plugin/ sigue siendo el manifiesto de compatibilidad de Codex. .claude-plugin/plugin.json más la misma Skill raíz y .mcp.json también hacen de este repositorio un paquete de plugin de Claude.

Marketplaces de plugins autoalojados

El mismo repositorio se puede añadir directamente como marketplace de plugins, sin lógica de herramienta o Skill copiada:

copilot plugin marketplace add TheBestCo/bestprice-mcp
copilot plugin install bestprice-shopping@bestprice

claude plugin marketplace add TheBestCo/bestprice-mcp
claude plugin install bestprice-shopping@bestprice

Copilot lee .github/plugin/marketplace.json y, bajo Agent Plugins 1.0, carga el canónico plugin.json raíz, mcp.json y skills/bestprice-shopping/SKILL.md. Claude lee .claude-plugin/marketplace.json y usa .claude-plugin/plugin.json, .mcp.json y la misma Skill raíz.

Gemini API, DeepSeek, Z.ai

Los ejemplos ejecutables viven en examples/: la Gemini Interactions API y Genkit, una entrada de plugin DeepSeek Harness, y una llamada Z.ai GLM. Cada una necesita la clave de API del propio proveedor. BestPrice no necesita ninguna.

Cualquier otro cliente MCP

Añade un servidor Streamable HTTP en https://mcp.bestprice.gr/mcp. Si el host solo admite servidores stdio, usa el puente en este repositorio:

git clone https://github.com/TheBestCo/bestprice-mcp.git && cd bestprice-mcp
npm ci
node stdio.mjs

El puente reenvía todo al endpoint público y acepta dos variables de entorno: BESTPRICE_MCP_URL (predeterminado: el endpoint público) y BESTPRICE_MCP_TIMEOUT_MS (predeterminado: 60000). Un Dockerfile construye el mismo puente para Glama y hosts similares.

Una primera conversación segura

  1. Pide una decisión: Θέλω κινητό έως 500 ευρώ με NFC και 5G υποχρεωτικά. (Quiero un teléfono de hasta 500 euros, con NFC y 5G obligatorios.)
  2. O busca: Find Sony WH-1000XM5 under 300 euros.
  3. Pasa un product_id devuelto a compare_offers con el código postal 10558.
  4. Pasa el mismo product_id a get_price_history durante 180 días.

Las consultas funcionan en griego o inglés. Los resúmenes de resultados, los datos del catálogo y los nombres de los comerciantes vuelven en griego.

BuscarComparar ofertasHistorial de precios
search_products in Claudecompare_offers in Claudeget_price_history in Claude

WebMCP nativo del navegador

Las páginas de BestPrice registran 22 herramientas WebMCP contextuales (contrato 2.8) en navegadores compatibles — cada una lee o actúa, nunca ambas — cubriendo búsqueda con resultados estructurados (filtrados por precio, stock, ofertas y orden) y abriendo la página de resultados que una búsqueda devolvió en la pestaña, la lista de compras del comprador y comparaciones (lectura en todas partes, añadido y eliminado en una página de producto), un diálogo de alerta de caída de precio, los productos visibles y cargar más, filtros y ordenación, abrir cualquier producto por id (lectura antes de que la pestaña se mueva), hechos del producto, ofertas, especificaciones e historial de precios (con su gráfico), una acción de oferta visible, y el BestPrice Shopping Brain — en cada página pública, incluidos artículos y tiendas — dejando la elección del comerciante al comprador. Cada herramienta publica un esquema de entrada y de salida. Los contratos, el runtime de cierre ante fallos, el evaluador determinista y el conjunto de datos de 47 casos en lenguaje natural están en webmcp/.

Descubrimiento

  • Registro oficial de MCP
  • Descubrimiento abierto de agentes: ard.json, ai-catalog.json, tarjeta del servidor, y la BestPrice Shopping skill neutral al proveedor. Los ejemplos de ARD son intenciones de compra deliberadamente sin marca para que el descubrimiento pueda coincidir con "¿qué debería comprar?", precio entregado y solicitudes de timing de precio antes de que un usuario conozca BestPrice.
  • webmcp.json describe las herramientas contextuales del navegador expuestas por las páginas de BestPrice.
  • El repositorio está listado en la galería de extensiones de Gemini CLI como bestprice-shopping (Google rastrea repositorios de extensiones públicos etiquetados), mientras que GitHub Agent Finder puede ingerir el catálogo público de MCP y los recursos de ARD.
  • Contribuciones externas al catálogo listas para copiar y fijadas por CI viven bajo distribution/: una entrada de Skill de GitHub Agent Finder y una entrada de servidor remoto de Docker MCP Registry. Esos catálogos requieren revisión en sus propios repositorios; los archivos verificados son cargas de envío, no afirmaciones de que los listados externos ya estén en vivo.
  • Índices de la comunidad: Glama, WebMCP Registry, webmcp.com, cursor.directory

Desarrollo

npm ci
npm run check   # Biome lint and format
npm test        # node --test: bridge, WebMCP, manifests, dataset

Las pruebas no requieren red: el puente se ejercita contra un remoto simulado en proceso. Se requiere Node 20 o superior; .nvmrc fija la versión 22.

Versionado

Dos versiones aparecen en este repositorio a propósito:

  • Versión del paquete en package.json y en cada manifiesto de plugin o extensión. Cambia cuando los manifiestos, el puente o la capa WebMCP de este repositorio cambian, y se etiqueta como vX.Y.Z.
  • Versión del servidor en server.json y en la línea cerca de la parte superior de este README. Es la versión que el servicio alojado reporta y se publica en el Registro oficial de MCP.

CHANGELOG.md rastrea la versión del paquete.

Las comprobaciones del servicio alojado con marca de tiempo se registran por separado. La verificación del 7 de septiembre de Shopping Brain v12 incluye su revisión exacta de la puerta de enlace, resultados de canario saneados y límites de alcance.

Seguridad

Reporta vulnerabilidades de forma privada como se describe en SECURITY.md.

Contribuciones

Consulta CONTRIBUTING.md. Las incidencias y solicitudes de extracción son bienvenidas.

Licencia

Licencia Apache 2.0. Copyright The Best Company S.A. Consulta LICENSE.

Privacidad: https://www.bestprice.gr/policies/privacy · Términos: https://www.bestprice.gr/policies/terms