BestPrice MCP 是 BestPrice.gr(希腊比价服务)的官方 Model Context Protocol 服务器,旨在为 AI 助手提供只读的购物决策支持,包括实时商品搜索、报价比较和价格历史。无需账户或 API 密钥即可使用。
用途与主要能力
服务器提供四个只读工具,用于购物决策、商品搜索、报价比较和价格历史。所有工具均为只读,不会下单、创建提醒或读取账户数据。结果链接到 BestPrice 商品页,绝不直接链接到商家。未知运费报告为未知,而非免费。搜索仅覆盖安全的实体商品,排除数字商品、服务和年龄限制品类。
查询支持希腊语或英语,但结果摘要、目录数据和商家名称以希腊语返回。
使用方式
Public endpoint 为 Streamable HTTP over HTTPS;匿名购物可用,Events 可选 OAuth。官方注册 ID 为 gr.bestprice/mcp,服务器版本 1.8.4。公共指南见 https://www.bestprice.gr/mcp。
多个客户端连接同一端点:
- Claude:通过预填连接器表单连接 BestPrice;Claude Code 可使用仓库中的 .mcp.json 作为项目级配置。
- Cursor:通过“Add BestPrice to Cursor”添加,配置在添加前会展示解码后的内容;.cursor-plugin/ 目录包含市场插件和 agent skill。
- VS Code、Gemini CLI、Qwen Code:均有对应扩展,且仅导入上述四个工具。
- Codex、Claude 插件与 Agent Skill 主机:根目录的 plugin.json、mcp.json 和 skills/bestprice-shopping/SKILL.md 构成可移植的 Agent Plugins 包;兼容主机可在 .agents/skills/ 下发现同一 Skill。
- Copilot:读取 .github/plugin/marketplace.json,并在 Agent Plugins 1.0 下加载根目录的 plugin.json、mcp.json 和 skills/bestprice-shopping/SKILL.md。
- 自托管插件市场:仓库可直接作为插件市场添加,无需复制工具或 Skill 逻辑。
- Gemini API、DeepSeek、Z.ai:examples/ 目录下有可运行示例,各需对应提供商的 API 密钥;BestPrice 本身不需要。
- 其他 MCP 客户端:添加 Streamable HTTP 服务器 https://mcp.bestprice.gr/mcp;若主机仅支持 stdio,可使用仓库中的桥接。桥接转发一切到公共端点,接受环境变量 BESTPRICE_MCP_URL(默认公共端点)和 BESTPRICE_MCP_TIMEOUT_MS(默认 60000)。Dockerfile 可为 Glama 等主机构建同一桥接。
协议细节
- 版本协商:initialize 协商 2025-11-25、2025-06-18、2025-03-26、2024-11-05 和 2024-10-07;请求其他版本时返回 2025-11-25。也支持 2026-07-28 的按请求修订:需发送 MCP-Protocol-Version、Mcp-Method(tools/call 还需 Mcp-Name)头,并在每个请求的 _meta 中放入 io.modelcontextprotocol/protocolVersion 和 io.modelcontextprotocol/clientCapabilities;缺少该信封而仅命名修订版本会被拒绝(-32602)。
- 无状态:不发放也不需要 MCP-Session-Id;DELETE 返回 405。带 Accept: text/event-stream 的 GET 会开启保活流,但服务器不会在其上发送请求或通知。
- 能力:兼容客户端可使用 tools 和 resources。资源面包含可选的 MCP Apps UI(ui://bestprice/shopping-results-v1.html)、服务器卡片(mcp://server-card.json)和规范 Skill(skill://bestprice-shopping/SKILL.md)。在 MCP 2026-07-28 上还声明 skills 扩展:skills/list 和 skills/get 返回唯一的 BestPrice Shopping Skill 及其 SHA-256 摘要和字节大小,resources/read 返回精确的 markdown 字节。无 prompts、completions 或 logging,这些方法返回 -32601。
- 响应:同时接受 application/json 和 text/event-stream 的客户端获得单事件 SSE 响应;仅接受 application/json、/ 或无 Accept 头则获得单个 JSON 体。每个工具返回符合其 outputSchema 的 structuredContent,并为不传递结构化内容的客户端附带相同结果的文本。
- 错误:未知工具为 JSON-RPC 错误(-32602);无效参数和服务故障(如未知商品)为工具结果且 isError: true,模型可读取并纠正。
- 限制:JSON 请求体最大 256 KiB(超过返回 413);请求超时 12 秒;每客户端速率限制返回 HTTP 429、JSON-RPC 错误 -32029 和 Retry-After 头。JSON-RPC 批量数组被拒绝(400)。
- 浏览器:桌面、CLI 和服务端客户端不发送 Origin 头,不受影响。浏览器页面可从允许的 AI 主机来源、bestprice.gr 或 localhost 调用(以便 MCP Inspector 直接模式工作);其他来源返回 403。
- 认证:四个购物工具无需账户。可选账户链接仅作用于 events:subscribe;受保护资源元数据位于 /.well-known/oauth-protected-resource 和 /mcp/oauth-protected-resource。Events 在端到端认证期间保持禁用。
浏览器原生 WebMCP
BestPrice 页面在兼容浏览器中注册 22 个上下文 WebMCP 工具(契约 2.8),每个工具只读或只写,覆盖:结构化搜索结果(按价格、库存、优惠和排序缩小范围)并打开搜索结果页、购物者的购物清单和比较(随处可读,在产品页添加和移除)、降价提醒对话框、可见商品和加载更多、筛选和排序、按 id 打开任意商品(标签移动前读取)、商品事实、报价、规格和价格历史(含图表)、一个可见报价操作,以及 BestPrice Shopping Brain——适用于所有公共页面,包括文章和商店,同时将商家选择留给购物者。每个工具都发布输入和输出 schema。契约、故障关闭运行时、确定性评估器和 47 条自然语言数据集位于 webmcp/。
官方 MCP 注册与发现
开放智能体发现资源包括 ard.json、ai-catalog.json、服务器卡片和提供商中立的 BestPrice Shopping skill。ARD 示例故意使用无品牌购物者意图,以便在用户知道 BestPrice 之前匹配“我该买什么?”、含运费价格和购买时机请求。webmcp.json 描述 BestPrice 页面暴露的上下文浏览器工具。仓库列在 Gemini CLI 扩展库中为 bestprice-shopping;GitHub Agent Finder 可摄取公共 MCP 目录和 ARD 资源。distribution/ 下有待提交的外部目录贡献文件(GitHub Agent Finder Skill 条目和 Docker MCP Registry 远程服务器条目),这些目录需在其自身仓库中审核,签入文件为提交负载而非已上线声明。社区索引包括 Glama、WebMCP Registry、webmcp.com、cursor.directory。
开发与测试
测试无需网络:桥接针对进程内假远程进行测试。需要 Node 20 或更高版本,.nvmrc 固定为 22。仓库中故意出现两个版本:package.json 和各插件/扩展清单中的包版本(本仓库清单、桥接或 WebMCP 层变化时更新,以 vX.Y.Z 标记);server.json 和 README 顶部的服务器版本(托管服务报告的版本,发布到官方 MCP Registry)。CHANGELOG.md 跟踪包版本。带时间戳的托管服务检查单独记录。
适用场景
适用于希望在 AI 助手中进行希腊市场购物决策、商品搜索、报价比较和价格历史查询的用户与开发者。
限制
所有工具只读,不下单、不创建提醒、不读取账户数据;搜索排除数字商品、服务和年龄限制品类;结果链接到 BestPrice 商品页而非商家;未知运费报告为未知;查询语言支持希腊语和英语但结果以希腊语返回;受速率限制和请求超时约束。