BestPrice MCP

Pesquise produtos no BestPrice.gr, compare ofertas atuais de comerciantes e frete, e inspecione o histórico de preços observado por meio de um servidor MCP público somente leitura.

Documentação

BestPrice MCP

CI Glama score License: Apache-2.0

O servidor oficial do Model Context Protocol para BestPrice.gr, o serviço grego de comparação de preços. Ele dá aos assistentes de IA acesso somente leitura a decisões de compra, busca de produtos em tempo real, comparação de ofertas e histórico de preços. Não é necessária conta ou chave de API.

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

Comece a comprar

Para integrações de desenvolvedores, o endpoint público é:

https://mcp.bestprice.gr/mcp

Este repositório contém tudo o que fica fora do serviço hospedado: os manifestos de instalação para cada cliente de IA, uma ponte stdio local para hosts que não falam HTTP, e a camada WebMCP nativa do navegador. O servidor em si não está neste repositório.

A matriz de versões atual registra o gateway ativo, UI, OAuth/Eventos, revisão de plugins e qualificação ACP separada.

Ferramentas

FerramentaO que fazArgumentos principais
get_shopping_decisionExecuta o BestPrice Shopping Brain: uma recomendação baseada em evidências, comparação por necessidade ou plano de cesta somente leitura com razões, trade-offs e incógnitas.message (a necessidade em grego ou inglês, incluindo qualquer orçamento), opcional postal_code (obrigatório para um plano de cesta completo), opcional evidence_detail (summary, o padrão: apenas as evidências que a resposta cita; full: cada afirmação e fonte)
search_productsEncontra produtos canônicos no catálogo. Retorna IDs de produtos e o preço mínimo do catálogo antes do frete.query (2–200 caracteres: um nome, modelo, categoria ou um código de barras GTIN/EAN puro), opcional price_min, price_max, required_features, sort (relevance, price_asc, price_desc), limit (1–8)
compare_offersCompara ofertas atuais de comerciantes para um produto exato, separando preço do item, frete e total entregue.product_id de um resultado anterior, opcional postal_code (um CEP grego, 10000–85999, para totais entregues), objective, in_stock_only, minimum_merchant_rating, limit (1–10)
get_price_historyResume como o preço de um produto mudou ao longo do tempo, em relação à sua mediana de 180 dias.product_id, opcional period_days (30, 90 ou 180)

Todas as quatro ferramentas são somente leitura. Elas nunca fazem pedidos, criam alertas ou leem dados de conta. Os resultados vinculam a uma página de produto do BestPrice, nunca diretamente a um comerciante. Frete desconhecido é relatado como desconhecido, não como grátis. A busca cobre produtos físicos seguros; bens digitais, serviços e categorias com restrição de idade são excluídos.

Detalhes do protocolo

Medido contra o endpoint ativo em 24 de setembro de 2026.

  • Versões. initialize negocia 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05 e 2024-10-07; um cliente que pede qualquer outra versão recebe 2025-11-25 como resposta. A revisão por solicitação 2026-07-28 também é servida: envie os cabeçalhos MCP-Protocol-Version, Mcp-Method (e, para tools/call, Mcp-Name), e coloque io.modelcontextprotocol/protocolVersion e io.modelcontextprotocol/clientCapabilities em cada solicitação no _meta. Uma solicitação que nomeia a revisão sem esse envelope é recusada com -32602.
  • Sem estado. Nenhum MCP-Session-Id é emitido e nenhum é necessário; DELETE responde a 405. Um GET com Accept: text/event-stream abre um stream keep-alive, mas o servidor nunca envia solicitações ou notificações nele, então um cliente não perde nada ao não abri-lo.
  • Capacidades. tools e resources estão disponíveis para clientes compatíveis. A superfície de recursos contém a UI opcional de Apps MCP em ui://bestprice/shopping-results-v1.html, o cartão do servidor em mcp://server-card.json e o canônico skill://bestprice-shopping/SKILL.md. No MCP 2026-07-28, o servidor também declara a extensão final io.modelcontextprotocol/skills: skills/list e skills/get retornam a única BestPrice Shopping Skill com seu digest SHA-256 e tamanho em bytes, e resources/read retorna os bytes exatos do markdown. Clientes mais antigos simplesmente veem a Skill como um recurso comum. Não há prompts, completions ou logging; esses métodos respondem -32601.
  • Respostas. Um cliente que aceita tanto application/json quanto text/event-stream recebe uma resposta SSE de um evento. Accept: application/json, */* ou nenhum cabeçalho Accept recebe um único corpo JSON. Cada ferramenta retorna structuredContent que valida contra seu outputSchema, além do mesmo resultado como texto para clientes que não passam conteúdo estruturado ao modelo.
  • Erros. Uma ferramenta desconhecida é um erro JSON-RPC (-32602). Argumentos inválidos e falhas de serviço, como um produto desconhecido, são resultados de ferramenta com isError: true, para que o modelo possa ler e corrigi-los.
  • Limites. Corpos de solicitação JSON de até 256 KiB (413 acima disso), um prazo de solicitação de 12 segundos e limites de taxa por cliente respondidos com HTTP 429, erro JSON-RPC -32029 e um cabeçalho Retry-After. Arrays de lote JSON-RPC são recusados com 400.
  • Navegadores. Clientes desktop, CLI e lado do servidor não enviam cabeçalho Origin e não são afetados. Uma página de navegador pode chamar o endpoint de uma origem de host de IA na lista de permissões, de bestprice.gr ou de localhost (para que o MCP Inspector funcione em modo direto); qualquer outra origem recebe 403.
  • Autenticação. As quatro ferramentas de compra funcionam sem conta. A vinculação opcional de conta é limitada a events:subscribe; os metadados de recursos protegidos estão disponíveis em /.well-known/oauth-protected-resource e /mcp/oauth-protected-resource. Eventos permanece desabilitado durante a qualificação ponta a ponta.

Início rápido para desenvolvedores

Cada cliente abaixo se conecta ao mesmo endpoint. Instruções detalhadas e específicas por provedor, incluindo OpenAI, Grok, GitHub Copilot e Microsoft Copilot Studio, estão em docs/provider-setup.md.

Claude

Conecte o BestPrice ao Claude abre o fluxo de conector personalizado com o endpoint pré-preenchido. Para Claude Code:

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

O .mcp.json incluído é a configuração equivalente no escopo do projeto.

Cursor

Adicione o BestPrice ao Cursor mostra a configuração decodificada antes de adicioná-la. O diretório .cursor-plugin/ contém o plugin do marketplace e uma skill de agente.

VS Code

Adicione o BestPrice ao VS Code

Gemini CLI e Qwen Code

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

Ambas as extensões restringem as ferramentas importadas às quatro listadas acima.

Codex, plugins Claude e hosts de Agent Skill

A raiz plugin.json, mcp.json e skills/bestprice-shopping/SKILL.md formam um pacote portátil de Agent Plugins: o MCP fornece dados de compras ao vivo e a Skill ensina o host quando e como rotear intenções de compra gregas sem marca. Hosts compatíveis com agentes que descobrem skills locais do repositório em .agents/skills/ recebem o mesmo fluxo de trabalho canônico em .agents/skills/bestprice-shopping/SKILL.md. .codex-plugin/ continua sendo o manifesto de compatibilidade do Codex. .claude-plugin/plugin.json mais a mesma Skill raiz e .mcp.json também tornam este repositório um pacote de plugin Claude.

Marketplaces de plugins auto-hospedados

O mesmo repositório pode ser adicionado diretamente como um marketplace de plugins, sem lógica de ferramenta ou 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

O Copilot lê .github/plugin/marketplace.json e, sob Agent Plugins 1.0, carrega o plugin.json, mcp.json e skills/bestprice-shopping/SKILL.md canônicos da raiz. O Claude lê .claude-plugin/marketplace.json e usa .claude-plugin/plugin.json, .mcp.json e a mesma Skill raiz.

Gemini API, DeepSeek, Z.ai

Exemplos executáveis estão em examples/: a API Gemini Interactions e Genkit, uma entrada de plugin DeepSeek Harness e uma chamada Z.ai GLM. Cada um precisa da chave de API do próprio provedor. O BestPrice não precisa de nenhuma.

Qualquer outro cliente MCP

Adicione um servidor HTTP Streamable em https://mcp.bestprice.gr/mcp. Se o host só suportar servidores stdio, use a ponte neste repositório:

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

A ponte encaminha tudo para o endpoint público e aceita duas variáveis de ambiente: BESTPRICE_MCP_URL (padrão: o endpoint público) e BESTPRICE_MCP_TIMEOUT_MS (padrão: 60000). Um Dockerfile constrói a mesma ponte para Glama e hosts semelhantes.

Uma primeira conversa segura

  1. Peça uma decisão: Θέλω κινητό έως 500 ευρώ με NFC και 5G υποχρεωτικά. (Quero um celular de até 500 euros, com NFC e 5G obrigatórios.)
  2. Ou busque: Find Sony WH-1000XM5 under 300 euros.
  3. Passe um product_id retornado para compare_offers com o código postal 10558.
  4. Passe o mesmo product_id para get_price_history por 180 dias.

As consultas funcionam em grego ou inglês. Resumos de resultados, dados de catálogo e nomes de comerciantes voltam em grego.

BuscaComparar ofertasHistórico de preços
search_products in Claudecompare_offers in Claudeget_price_history in Claude

WebMCP nativo do navegador

As páginas do BestPrice registram 22 ferramentas WebMCP contextuais (contrato 2.8) em navegadores compatíveis — cada uma lê ou age, nunca ambos — cobrindo busca com resultados estruturados (filtrados por preço, estoque, ofertas e ordenação) e abertura da página de resultados que uma busca retornou na aba, a lista de compras do comprador e comparações (leitura em qualquer lugar, adição e remoção em uma página de produto), um diálogo de alerta de queda de preço, os produtos visíveis e carregar mais, filtros e ordenação, abertura de qualquer produto por id (leitura antes de a aba se mover), fatos do produto, ofertas, especificações e histórico de preços (com seu gráfico), uma ação de oferta visível e o BestPrice Shopping Brain — em todas as páginas públicas, incluindo artigos e lojas — deixando a escolha do comerciante para o comprador. Cada ferramenta publica um esquema de entrada e de saída. Os contratos, o runtime fail-closed, o avaliador determinístico e o conjunto de dados de linguagem natural com 47 casos estão em webmcp/.

Descoberta

  • Registro oficial MCP
  • Descoberta aberta de agentes: ard.json, ai-catalog.json, cartão do servidor e a skill BestPrice Shopping neutra de provedor. Os exemplos ARD são intenções de compra deliberadamente sem marca para que a descoberta possa corresponder a "o que devo comprar?", preço entregue e solicitações de timing de preço antes de o usuário conhecer o BestPrice.
  • webmcp.json descreve as ferramentas contextuais de navegador expostas pelas páginas do BestPrice.
  • O repositório está listado na galeria de extensões do Gemini CLI como bestprice-shopping (o Google rastreia repositórios públicos de extensões marcados), enquanto o GitHub Agent Finder pode ingerir o catálogo público MCP e os recursos ARD.
  • Contribuições prontas para copiar e fixadas por CI para catálogos externos ficam em distribution/: uma entrada de Skill do GitHub Agent Finder e uma entrada de servidor remoto do Docker MCP Registry. Esses catálogos exigem revisão em seus próprios repositórios; os arquivos verificados são payloads de envio, não alegações de que as listagens externas já estão ativas.
  • Índices da comunidade: Glama, WebMCP Registry, webmcp.com, cursor.directory

Desenvolvimento

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

Os testes não precisam de rede: a ponte é exercitada contra um remoto falso em processo. Node 20 ou mais recente é necessário; .nvmrc fixa a versão 22.

Versionamento

Duas versões aparecem neste repositório de propósito:

  • Versão do pacote em package.json e em cada manifesto de plugin ou extensão. Ela muda quando os manifestos, a ponte ou a camada WebMCP deste repositório mudam, e é marcada como vX.Y.Z.
  • Versão do servidor em server.json e na linha perto do topo deste README. É a versão que o serviço hospedado reporta e é publicada no Registro Oficial do MCP.

CHANGELOG.md rastreia a versão do pacote.

Verificações do serviço hospedado com carimbo de data/hora são registradas separadamente. A verificação do Shopping Brain v12 de 7 de setembro inclui a revisão exata do gateway, resultados de canário sanitizados e limites de escopo.

Segurança

Reporte vulnerabilidades de forma privada conforme descrito em SECURITY.md.

Contribuição

Consulte CONTRIBUTING.md. Issues e pull requests são bem-vindos.

Licença

Apache License 2.0. Copyright The Best Company S.A. Consulte LICENSE.

Privacidade: https://www.bestprice.gr/policies/privacy · Termos: https://www.bestprice.gr/policies/terms