Skip to main content
Glama
Samxel

geizhals-mcp

by Samxel

一个 MCP 服务器,让 AI 能够搜索 Geizhals 的价格比较数据:产品、最优价格、价格历史、评分和类别。它封装了 Geizhals 移动应用的 API(api.geizhals.net/gh/v9),并将重要字段返回给 AI。

亮点

  • 所有商店的最低价格
    查找产品,获取其 最低价格、完整价格区间、星级评分和测试评论数量,这些数据汇总自所有 Geizhals 商家,而非单个 listing。

  • 知道何时该买
    拉取完整的价格历史和当前降价(Schnäppchen),可按最大百分比降价排序,让模型能够回答“现在买是否划算,还是应该等”。

  • 从关键词到分类
    通过自由文本搜索,或浏览 完整的 Geizhals 分类树(服务器内置 2200+ 个分类),精确找到合适的细分市场,然后并排对比候选清单。

Related MCP server: geizhals-mcp

工具

search_geizhals(query, ...)

按关键词搜索产品。支持国家(loc/hloc)、分类和制造商的筛选,以及排序和分页。返回匹配结果和分面聚合(分类、制造商、价格区间),便于进一步精化。

get_product(product_id)

单个产品的完整详情:名称、评分、最优价格区间、图片、报价链接以及测试评论数量。

get_price_history(product_id, days=31)

最小值/最大值/当前价格的汇总,以及原始 [timestamp, price, flag] 序列。

get_product_ratings(product_id)

平均评分、总评分、各星级数量和评论链接。

browse_category(category, ...)

按分类代码列出分类中的产品,包含价格区间和排序。

compare_products(product_ids)

并排比较多个产品。

get_deals(sort="percent", ...)

当前降价:最低心价格刚刚下降的产品,附带降价百分比和金额。支持按最大 percent 降幅、price、latest、popularity 或 top 排序,并用 min_discount_percent 筛选。

list_categories(query)

浏览 Geizhals 的分类树,查找 browse_category 所需的分类代码。完整分类树随服务器附在 data/categories.json 中。

环境要求

需要 Python 3.9+。

pip install -r requirements.txt

运行

python main.py

服务器通过 streamable HTTP 启动,并打印监听地址:

Starting geizhals-mcp server on http://127.0.0.1:8000/mcp

将 MCP 客户端指向该 URL。主机、端口和路径位于 main.py 顶部。

通过 Claude Desktop 使用

Claude Desktop 通过 stdio 启动 MCP 服务器,因此需要使用 mcp-remote(需要 Node.js)与 HTTP 服务器对接:

  1. 启动服务器(python main.py)并保持运行。

  2. 在 Claude Desktop 中打开 Settings > Developer > Edit Config;这会打开 claude_desktop_config.json,添加 geizhals 条目:

    {
      "mcpServers": {
        "geizhals": {
          "command": "cmd",
          "args": ["/c", "npx", "-y", "mcp-remote", "http://127.0.0.1:8000/mcp"]
        }
      }
    }

    在 macOS/Linux 上放弃 Windows 包装:使用 "command": "npx" 和 "args": ["-y", "mcp-remote", "http://127.0.0.1:8000/mcp"]。

  3. 保存文件并重启 Claude Desktop。

说明

  • data/categories.json 是 Geizhals 分类树的快照(标题、id、子分类)。main.py 加载它以供 list_categories 使用。

  • coverage.json 保存上方徽章显示的目录计数。scripts/update_coverage.py 会从 Geizhals 主页刷新数据,并由每日 GitHub Action 提交任何更改。

  • API 细节记录在 search_api.md 中。

  • 本工具使用 Geizhals 的内部移动 API,而非官方 API。请友好对待它。

故障排除

403 invalid request_fingerprint in payload — main.py 中的 HMAC 密钥或签名方案(GH_HMAC_SECRET、request_fingerprint、API_HOST)不再匹配当前实现。由于这是从应用逆向并硬编码的,一旦 Geizhals 更换密钥或更改方案,就可能失效。

免责声明

这是独立的非官方项目,不隶属、不认可或与 Geizhals 无关。“Geizhals”及所有相关商标归各自所有者所有。

仅用于教育和研究目的。它调用的 Geizhals 内部 API 并非为公开使用设计,可能随时中断或变化。你有责任正确使用:遵守 Geizhals 的服务条款、robots 规则和适用法律,不要频繁请求。

许可证

MIT LICENSE。按“原样”提供,不提供任何担保。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and compare live prices from Finnish marketplaces (Hinta.fi, Tori.fi, Huuto.net) for new and used products like electronics, furniture, and more.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search products and retrieve detailed information from Galaxus and Digitec, including prices, specifications, and price history.
    5
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables product search and discovery on Galaxus and Digitec, with tools for searching, browsing, comparing, and looking up prices and specifications.
    7
    1
    MIT