BestPrice

gr.bestprice由 bestprice.gr 發布官方發布者v1.9.0更新於 Nov 4, 2026

面向希臘的唯讀購物決策、商品搜尋、優惠和價格歷史。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Read-only shopping decisions, product search, offers, and price history for Greece.

已驗證Streamable HTTP可網頁執行資料與分析商業與電商

概覽

BestPrice 的託管 MCP 服務(mcp.bestprice.gr),由 bestprice.gr 發布;無需登入;Streamable HTTP;6 個工具。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

發布者
bestprice.gr
端點
mcp.bestprice.gr
最近檢查

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 BestPrice,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/gr.bestprice%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "bestprice": {
      "type": "http",
      "url": "https://mcp.bestprice.gr/mcp"
    }
  }
}

README

BestPrice MCP

[CI] [Glama score] [License: Apache-2.0]

The official Model Context Protocol server for BestPrice.gr, Greece's price-comparison service. It gives AI assistants read-only access to shopping decisions, live product search, offer comparison, and price history. No account or API key is needed.

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

Start shopping

For developer integrations, the public endpoint is:

text
https://mcp.bestprice.gr/mcp

This repository holds everything that lives outside the hosted service: the install manifests for each AI client, a local stdio bridge for hosts that cannot speak HTTP, and the browser-native WebMCP layer. The server itself is not in this repository.

The current release matrix records the live gateway, UI, OAuth/Events, the ChatGPT directory listing and separate ACP qualification.

Tools

The hosted 1.9.0 service now also advertises check_deal and optimize_basket. Both passed a live check on 3 November 2026. check_deal accepts exactly one product URL, visible model/barcode text or selected product ID; image bytes are not ingested. optimize_basket calculates read-only plans for exact products, quantities and a supplied postcode. Neither places an order. The client manifests now advertise the six research tools. OpenAI's acceptance of the new server definitions and the 1.3.0 package are tracked in the release matrix.

ToolWhat it doesKey arguments
get_shopping_decisionRuns the BestPrice Shopping Brain: an evidence-backed recommendation, need-based comparison, or read-only basket plan with reasons, tradeoffs, and unknowns.message (the need in Greek or English, including any budget), optional postal_code (required for a completed basket plan), optional evidence_detail (summary, the default: only the evidence the answer cites; full: every claim and source)
search_productsFinds canonical products in the catalog. Returns product IDs and the catalog minimum price before shipping.query (2–400 characters: a name, model, category, or a bare GTIN/EAN barcode), optional price_min, price_max, required_features, sort (relevance, price_asc, price_desc), limit (1–8)
compare_offersCompares current merchant offers for one exact product, separating item price, shipping, and delivered total.product_id from a previous result, optional postal_code (a Greek postcode, 10000–85999, for delivered totals), objective, in_stock_only, minimum_merchant_rating, limit (1–10)
get_price_historySummarises how a product's price moved over time, against its 180-day median.product_id, optional period_days (30, 90 or 180)
check_dealChecks exact identity, current offers and price context for an offer.Exactly one url, visible model/barcode query, or selected product_id; optional supplied observed_price and postal_code
optimize_basketCalculates read-only plans for exact selected products and quantities.items with product_id and quantity, Greek postal_code; optional objective and maximum_merchants

Public research tools are read-only. They never place orders, create alerts, or read account data. Results link to a BestPrice product page, never directly to a merchant. Unknown shipping is reported as unknown, not as free. Search covers safe physical products; digital goods, services, and age-restricted categories are excluded.

One optional clarification

A broad request can return outcome: "clarification" with clarifications[].choices. Each choice contains a display label and a self-contained message. Ask the shopper to choose, then call get_shopping_decision with that message. When they choose Skip, also send skip_clarification: true as returned by that choice. Never choose on the shopper’s behalf. Exact models and requests that already state the missing type bypass this step. Mandatory budget, age-group, product-type and accessory checks still apply after Skip.

For example, “ANC headphones up to €150 for commuting” can ask whether the shopper wants over-ear or in-ear headphones. The recommendation excludes children’s models and replacement accessories unless the shopper asks for them. This is the same Shopping Brain used by BestPrice Ask.

Ask’s product cards can open BestPrice’s existing alert and saved-list flows. Public research remains read-only. On an MCP Events-capable host, optional account linking can separately create and cancel the exact price alerts the shopper requests. No alert is active until subscription succeeds. Saved comparisons in the 1.3.0 candidate remain separately gated; account conversations and image bytes are not accessed.

Protocol details

Measured against the live endpoint on 24 September 2026.

  • Versions. initialize negotiates 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05 and 2024-10-07; a client that asks for any other version is answered with 2025-11-25. The 2026-07-28 per-request revision is also served: send the MCP-Protocol-Version, Mcp-Method (and, for tools/call, Mcp-Name) headers, and put io.modelcontextprotocol/protocolVersion and io.modelcontextprotocol/clientCapabilities in every request's _meta. A request that names the revision without that envelope is refused with -32602.
  • Stateless. No MCP-Session-Id is issued and none is required; DELETE answers 405. A GET with Accept: text/event-stream answers immediately with the SSE comment : connected and retry: 300000, then holds the connection open. It does not send JSON-RPC requests or notifications on that stream. Rechecked 29 October 2026. A client loses nothing by not opening it, and must not wait for the stream to end.
  • Capabilities. tools and resources are available to compatible clients. The resource surface contains the optional MCP Apps UI at ui://bestprice/shopping-results-v1.html, the server card at mcp://server-card.json, and the canonical skill://bestprice-shopping/SKILL.md. On MCP 2026-07-28 the server also declares the final io.modelcontextprotocol/skills extension: skills/list and skills/get return the one BestPrice Shopping Skill with its SHA-256 digest and byte size, and resources/read returns the exact markdown bytes. Older clients simply see the Skill as an ordinary resource. There are no prompts, completions or logging; those methods answer -32601.
  • Responses. A client that accepts both application/json and text/event-stream gets a one-event SSE response. Accept: application/json, */* or no Accept header gets a single JSON body. Every tool returns structuredContent that validates against its outputSchema, plus the same result as text for clients that do not pass structured content to the model.
  • Errors. An unknown tool is a JSON-RPC error (-32602). Invalid arguments and service failures such as an unknown product are tool results with isError: true, so the model can read and correct them.
  • Limits. JSON request bodies up to 256 KiB (413 above that), a 12-second request deadline, and per-client rate limits answered with HTTP 429, JSON-RPC error -32029 and a Retry-After header. JSON-RPC batch arrays are refused with 400.
  • Browsers. Desktop, CLI and server-side clients send no Origin header and are not affected. A browser page may call the endpoint from an allowlisted AI-host origin, from bestprice.gr, or from localhost (so MCP Inspector works in direct mode); any other origin gets 403.
  • Authentication. The six research tools work without an account. Optional account linking is scoped to events:subscribe; protected-resource metadata is available at /.well-known/oauth-protected-resource and /mcp/oauth-protected-resource. Actual host subscription and delivery qualification is recorded separately in the release matrix.

Developer quick start

Every client below connects to the same endpoint. Copy-paste connector setup for Perplexity, Claude, ChatGPT developer mode, Gemini CLI, Copilot, Grok Bot, and Cursor is in docs/connect.md. Longer provider notes, including OpenAI and Microsoft Copilot Studio, are in docs/provider-setup.md.

Claude

Connect BestPrice to Claude opens the custom-connector flow with the endpoint prefilled. For Claude Code:

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

The bundled .mcp.json is the equivalent project-scoped configuration.

Cursor

Add BestPrice to Cursor shows the decoded configuration before adding it. The .cursor-plugin/ directory holds the marketplace plugin and an agent skill.

VS Code and VS Code Insiders

Add BestPrice to VS Code

Add BestPrice to VS Code Insiders

Kiro

Add BestPrice to Kiro opens Kiro's confirmation dialog with the remote URL. Kiro shows the configuration before writing it.

Gemini CLI and Qwen Code

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

Both extensions restrict the imported tools to the four listed above.

Codex, Claude plugins, and Agent Skill hosts

The root plugin.json, mcp.json, and skills/bestprice-shopping/SKILL.md form a portable Agent Plugins package: the MCP supplies live shopping data and the Skill teaches the host when and how to route unbranded Greek shopping intent. Agent-compatible hosts that discover repository-local skills under .agents/skills/ get the same canonical workflow at .agents/skills/bestprice-shopping/SKILL.md. .codex-plugin/ remains the Codex compatibility manifest. .claude-plugin/plugin.json plus the same root Skill and .mcp.json also make this repository a Claude plugin package. claude-plugin/ is a slim copy of that Claude plugin, with no build files, for the Claude plugin directory.

Self-hosted plugin marketplaces

The same repository can be added directly as a plugin marketplace, with no copied tool or Skill logic:

sh
copilot plugin marketplace add TheBestCo/bestprice-mcpcopilot plugin install bestprice-shopping@bestprice
claude plugin marketplace add TheBestCo/bestprice-mcpclaude plugin install bestprice-shopping@bestprice

Copilot reads .github/plugin/marketplace.json and, under Agent Plugins 1.0, loads the canonical root plugin.json, mcp.json, and skills/bestprice-shopping/SKILL.md. Claude reads .claude-plugin/marketplace.json and uses .claude-plugin/plugin.json, .mcp.json, and the same root Skill.

Gemini API, DeepSeek, Z.ai

Runnable examples live in examples/: the Gemini Interactions API and Genkit, a DeepSeek Harness plugin entry, and a Z.ai GLM call. Each needs the provider's own API key. BestPrice needs none.

Any other MCP client

Add the hosted Streamable HTTP endpoint. That is the install path:

text
https://mcp.bestprice.gr/mcp

Hosts that read an mcpServers JSON configuration accept:

json
{  "mcpServers": {    "bestprice-shopping": {      "url": "https://mcp.bestprice.gr/mcp"    }  }}

A checkout of this repository includes stdio.mjs, a local forwarder to that same endpoint for a host that cannot speak HTTP. From a checkout you already have for development, run node stdio.mjs. It accepts two environment variables: BESTPRICE_MCP_URL (default: the public endpoint) and BESTPRICE_MCP_TIMEOUT_MS (default: 60000). A Dockerfile builds the same forwarder for Glama and similar hosts. It is not an install command and it does not download or execute a remote package.

This package is private. It is not published to npm under bestprice-mcp or any scoped name. There is no registry package to install or to run with npx. A directory that shows an npm install for version 1.2.7 is repeating a stale crawler inference; that version is not in the npm registry.

A safe first conversation

  1. Ask for a decision: Θέλω κινητό έως 500 ευρώ με NFC και 5G υποχρεωτικά. (I want a phone up to 500 euros, NFC and 5G required.)
  2. Or search: Find Sony WH-1000XM5 under 300 euros.
  3. Pass a returned product_id to compare_offers with postal code 10558.
  4. Pass the same product_id to get_price_history for 180 days.

Queries work in Greek or English. Result summaries, catalog data and merchant names come back in Greek.

Browser-native WebMCP

BestPrice pages register 22 contextual WebMCP tools (contract 2.8) in compatible browsers — each one reads or acts, never both — covering search with structured results (narrowed by price, stock, deals and order) and opening the results page a search returned in the tab, the shopper's shopping list and comparisons (read everywhere, added to and removed from on a product page), a price-drop alert dialog, the visible products and loading more, filters and sorting, opening any product by id (read before the tab moves), product facts, offers, specifications and price history (with its chart), one visible-offer action, and the BestPrice Shopping Brain — on every public page, articles and stores included — while leaving the merchant choice to the shopper. Every tool publishes an input and an output schema. The contracts, fail-closed runtime, deterministic evaluator, and the 47-case natural-language dataset are in webmcp/.

Discovery

  • Official MCP Registry
  • Open agent discovery: ard.json, ai-catalog.json, server card, and the provider-neutral BestPrice Shopping skill. The ARD examples are deliberately unbranded shopper intents so discovery can match “what should I buy?”, delivered-price, and price-timing requests before a user knows BestPrice.
  • webmcp.json describes the contextual browser tools exposed by BestPrice pages.
  • The repository is listed in the Gemini CLI extension gallery as bestprice-shopping (Google crawls tagged public extension repositories), while GitHub Agent Finder can ingest the public MCP catalog and ARD resources.
  • Copy-ready, CI-pinned external catalog contributions live under distribution/: a GitHub Agent Finder Skill entry and a Docker MCP Registry remote-server entry. Those catalogs require review in their own repositories; the checked-in files are submission payloads, not claims that the external listings are already live.
  • Community indexes: Glama, WebMCP Registry, webmcp.com, cursor.directory

Development

sh
npm cinpm run check   # Biome lint and formatnpm test        # node --test: bridge, WebMCP, manifests, dataset

Tests need no network: the bridge is exercised against an in-process fake remote. Node 20 or newer is required; .nvmrc pins 22.

Versioning

Two versions appear in this repository on purpose:

  • Package version in package.json and every plugin or extension manifest. It changes when this repository's manifests, bridge, or WebMCP layer change, and is tagged vX.Y.Z.
  • Server version in server.json and the line near the top of this README. It is the version the hosted service reports and is published to the official MCP Registry.

CHANGELOG.md tracks the package version.

Timestamped hosted-service checks are recorded separately. The 7 September Shopping Brain v12 verification includes its exact gateway revision, sanitized canary results, and scope limits.

Security

Report vulnerabilities privately as described in SECURITY.md.

Contributing

See CONTRIBUTING.md. Issues and pull requests are welcome.

License

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

Privacy: https://www.bestprice.gr/policies/privacy · Terms: https://www.bestprice.gr/policies/terms

來源:README.md,提交 da1665e

工具

6

get_shopping_decision

Get a BestPrice shopping decision

Provides read-only shopping recommendations, product comparisons, purchase-timing context, and basket plans for physical products sold in Greece. Accepts only a concise current shopping request with a budget, required specifications, and relevant corrections, excluding chat transcripts and unrelated personal data. Uses the same Shopping Brain as BestPrice Ask and returns selected products, reasons, tradeoffs, typed catalog attributes, checked offer and historical-price context, evidence references, and unknowns. Each product-family decision starts with one bounded catalog page and returns at most four candidates per slot. A failed recommendation may check a small set of externally discovered models against BestPrice. Basket plans accept two to five supported product-family slots under one aggregate budget, or at least two exact grouped bp_<id> products, and require a five-digit Greek delivery postcode. Product prices exclude shipping; unknown delivery costs remain unknown. Unsupported or unidentified basket categories require clarification. Does not place orders, create alerts, access account history, or predict future prices.

輸入參數message必填postal_codeevidence_detailskip_clarification

search_products

Search BestPrice products

Searches physical products sold in Greece by product name, model, category, or barcode and returns up to eight grouped products with canonical product IDs, catalog prices, relevance warnings, and BestPrice links. Price bounds apply before shipping; feature hints are not independently verified. A valid GTIN with one unambiguous catalog match is supported. Broadened-category results are related products rather than exact matches. Categories containing only ungrouped listings return an empty product list and a category handoff. Catalog minimum prices are indicative, may include filtered offers, and are not buyable quotes. Prohibited, age-restricted, digital, service, and unverified catalog branches are excluded. No checkout or direct merchant links are provided.

輸入參數sortlimitquery必填localecountryprice_maxprice_minrequired_features

compare_offers

Compare BestPrice offers

Compares current Greek merchant offers for one exact grouped BestPrice product ID. Returns public store names, item prices, shipping information, calculable delivered totals, ranking reasons, and BestPrice links. Without objective it ranks by lowest_total_cost when postal_code is given and by lowest_item_price otherwise, keeping shipping and total cost unknown; an explicit lowest_total_cost requires a Greek postcode (five digits, 10000 to 85999). Other ranking options include merchant rating. Catalog minimum prices and the lowest returned quoted prices have separate fields, with a reason when the catalog minimum is absent from the returned offers. Results exclude sponsored offers and merchant destination URLs. The operation is read-only and creates no CPC click.

輸入參數limitobjectiveproduct_id必填postal_codein_stock_onlyminimum_merchant_rating

get_price_history

Inspect BestPrice price history

Returns historical prices and a deterministic deal classification for one exact grouped BestPrice product ID. Includes minimum and median statistics, a compact daily price series, coverage gaps, and methodology. period_days selects the daily series and coverage gaps only: deal_classification and price_delta_vs_180d_median_pct always compare the current price with the 180-day median, and window_stats always carries the 30-, 90- and 180-day statistics. Historical observations do not guarantee future prices.

輸入參數product_id必填period_days

optimize_basket

Optimize a BestPrice basket

Calculates read-only basket plans for exact grouped BestPrice product IDs delivered to a Greek postcode. Compares cheapest, fewer-merchant, and balanced reliability-and-cost plans within the requested merchant ceiling and rating floor. Returns public store names and cost breakdowns; unknown shipping leaves affected delivered totals null. Does not discover products, place orders, process payments, or expose merchant destination URLs.

輸入參數items必填objectivepostal_code必填maximum_merchantsminimum_merchant_rating

check_deal

Check a BestPrice deal

Checks an offer using a BestPrice product URL, a reviewed merchant URL, a barcode, or visible product text from a screenshot. Screenshot inputs consist of visible identity text and an optional observed price. Unique barcodes and reviewed variant-identifying URLs can establish an exact identity. Text queries return candidates for explicit user selection; similarity does not establish an exact retailer match. Compares current eligible offers and known delivered totals separately from market item-price history. Observed prices remain user-supplied, missing variants and former prices remain unverified, and unknown shipping remains unknown. Read-only; no checkout or alerts.

輸入參數urlqueryproduct_idpostal_codeobserved_price

版本歷史

6
  1. v1.9.0最新Nov 4, 2026
  2. v1.8.5Oct 29, 2026
  3. v1.8.4Oct 1, 2026
  4. v1.8.3Sep 30, 2026
  5. v1.8.1Sep 24, 2026
  6. v1.8.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分