关于 groupon-mcp
groupon-mcp 是面向 Claude 的 Groupon MCP 服务,可搜索优惠、查看详情并管理登录账户的购物车。购物车写入需确认,服务只添加商品并返回结账链接,不会代为付款。
主要功能
- 01搜索城市优惠
- 02查看优惠详情与选项价格
- 03浏览分类并检查服务状态
- 04查看登录账户购物车
- 05确认后添加或清空购物车
适用场景
- 01查找本地、商品或旅行优惠
- 02确认优惠选项和价格后加入购物车
- 03查看购物车并自行前往结账
MCP 相关
它通过 MCP 向客户端提供 Groupon 优惠查询和购物车工具。读取优惠无需登录;购物车操作使用已登录的 Groupon 会话,并在变更前要求确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y groupon-mcpGROUPON_SESSION_COOKIE密钥Optional, and only for the cart tools. Leave unset to have the ContextMint Bridge browser extension pick up your signed-in groupon.com session. Otherwise paste the full Cookie request header from a signed-in www.groupon.com /mobilenextapi/graphql request (DevTools → Network). It authorizes changes to your Groupon cart, so treat it like a password.GROUPON_DISABLE_FETCHPROXYSet to 1/true to disable the fetchproxy browser-bridge fallback (then the cart path relies solely on GROUPON_SESSION_COOKIE).GROUPON_GRAPHQL_URLOverride the GraphQL endpoint (defaults to https://www.groupon.com/mobilenextapi/graphql). The cart tools send your session cookie, so they refuse any override that is not an https://*.groupon.com URL.GROUPON_CACHE_TTLResponse-cache TTL for reads in seconds (0 = off; default 60).FETCHPROXY_WS_PORTLocalhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
7收录的工具列表 · 更新于 2 天前
此工具无需参数。
详细介绍
groupon-mcp
用于 Groupon 的 MCP 服务——通过自然语言从 Claude 搜索和浏览本地、商品及旅游优惠,并在你确认后将优惠添加到已登录的 Groupon 购物车。
此项目由 AI 开发并维护。请自行斟酌使用。
工具
| 工具 | 功能 | 需要登录 |
|---|---|---|
groupon_search_deals | 搜索或浏览某个城市的优惠 | 否 |
groupon_get_deal | 获取某项优惠的详情,包括各选项的 ID 和价格 | 否 |
groupon_list_categories | 获取 Groupon 的分类体系 | 否 |
groupon_healthcheck | 向 Groupon 发起一次实时请求,并报告出现的问题 | 否 |
groupon_view_cart | 查看你的 Groupon 购物车中的商品 | 是 |
groupon_purchase | 将某个优惠选项添加到购物车(需确认),并返回结账 URL | 是 |
groupon_clear_cart | 从购物车中移除所有商品(需确认) | 是 |
读取优惠时,使用的是 Groupon 面向消费者的公开接口,无需 API 密钥或账户。购物车工具会通过会话 Cookie 操作你已登录的 Groupon 账户(见下文)。groupon_purchase 无法下单:Groupon 结账使用原生 Apple/Google Pay、银行卡或 PayPal,因此你需要自行通过结账 URL 完成支付。
设置
将该服务添加到你的 .mcp.json 中:
{
"mcpServers": {
"groupon": {
"command": "npx",
"args": ["-y", "groupon-mcp"]
}
}
}
登录购物车(可选)
读取优惠无需账户。购物车工具(groupon_view_cart、groupon_purchase、groupon_clear_cart)会使用你在 groupon.com 上的已登录会话,服务会通过 ContextMint Bridge 扩展从浏览器获取该会话:
-
从 发布页面 安装 ContextMint Bridge。Chrome:下载 Chrome 压缩包,解压后在
chrome://extensions中以解压缩的扩展程序加载(需开启开发者模式)。Safari 目前尚不可用(它将内置于 ContextMint 应用中,该应用尚未公开下载),因此暂时请使用 Chrome。ContextMint Bridge 是 fetchproxy 浏览器扩展的新名称,由同一维护者维护;fetchproxy 自身的 README(https://github.com/chrischall/fetchproxy#extension)中也有指向该扩展的链接。其源代码公开在 https://github.com/nullnet-app/contextmint-bridge:你可以自行构建,也可以使用发布包旁边的
.sha256文件校验发布压缩包(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。 -
在该浏览器中登录 groupon.com。首次调用购物车工具时会获取会话 Cookie;扩展发出请求时,请批准该请求。
在本地开发时,如果不使用扩展,可设置 GROUPON_SESSION_COOKIE(参见 .env.example);设置 GROUPON_DISABLE_FETCHPROXY=1 可关闭浏览器路径。该 Cookie 可以授权修改你的购物车,因此请像对待密码一样妥善保管。购物车工具只会将它发送到 https://*.groupon.com 端点,并会拒绝指向其他位置的 GROUPON_GRAPHQL_URL 覆盖值。
环境
全部为可选项;它们与 .mcpb 清单中的设置对应(MCP_CONFIRM_* 系列位于确认部分)。
| 变量 | 默认值 | |
|---|---|---|
GROUPON_SESSION_COOKIE | 未设置 | 来自已登录的 www.groupon.com 请求的完整 Cookie 标头,仅供购物车工具使用。留空时,桥接程序会自动获取你的会话信息。请像对待密码一样保管它。 |
GROUPON_DISABLE_FETCHPROXY | 未设置 | 设为 1 可关闭浏览器桥接路径;此时购物车工具会依赖 GROUPON_SESSION_COOKIE。 |
GROUPON_GRAPHQL_URL | https://www.groupon.com/mobilenextapi/graphql | GraphQL 端点覆盖值。购物车工具拒绝任何不是 https://*.groupon.com URL 的覆盖值。 |
GROUPON_CACHE_TTL | 60 | 读取响应的缓存 TTL,单位为秒(0 = 关闭)。如果遇到速率限制,可调高此值。 |
FETCHPROXY_WS_PORT | 37149 | ContextMint Bridge 连接的汇聚器端口。同一台机器上的所有 MCP 共用此端口,因此要么为所有 MCP 更改,要么都不更改。 |
FETCHPROXY_WS_HOST | 127.0.0.1 | 桥接程序的绑定接口,只能是字面 IP。请保持为环回地址;此设置适用于在独立网络命名空间中运行的托管部署。 |
FETCHPROXY_IDENTITY_DIR | ~/.fetchproxy/identity/ | 桥接程序长期身份密钥对的绝对路径。 |
确认
购物车写入操作(groupon_purchase、groupon_clear_cart)会在更改任何内容前要求你确认。能够显示确认提示的客户端(Claude Code)会显示提示,除非服务将 MCP_CONFIRM_ELICITATION=off 设为关闭。在其他客户端中,首次调用不会更改任何内容,而是返回预览和 confirmToken;只有再次携带该令牌调用时才会继续执行。令牌仅适用于预览的确切内容:如果两次调用之间优惠价格、所选选项或数量,或购物车内容发生变化,则写入操作会被拒绝,并返回新的预览。groupon_purchase 的预览还会显示购物车中已有的该选项数量,因为 Groupon 可能会将该商品行的数量设为新数量,而非在原数量上累加。此操作仍只会将商品加入购物车;你需要自行前往结账 URL 完成付款。groupon_clear_cart 仅会移除购物车中的商品行,并接受将预览中的 optionIds 作为 expectedOptionIds 传回;如果购物车已发生变化,操作会被拒绝。如果移除过程中部分失败,则会说明哪些商品已移除、哪些未移除。
| 变量 | 默认值 | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | 当客户端无法显示确认提示时(claude.ai、Claude Desktop),写入操作的处理方式。ask-user:分两步执行——首次调用不执行任何操作,并返回预览和令牌;模型必须先在聊天中获得你的批准,然后才能再次携带该令牌调用。auto:同样分两步执行,但模型自行检查预览后可以使用令牌。refuse:在此类客户端上拒绝写入操作。能够显示提示的客户端(Claude Code)始终会收到实际提示,除非 MCP_CONFIRM_ELICITATION=off。无法识别的值会按 refuse 处理。 |
MCP_CONFIRM_ELICITATION | on | off 表示不显示确认提示,因此所有客户端都会采用 MCP_CONFIRM_MODE 的行为。对于声称能显示提示但实际上从不显示的客户端(opencode 2.0.x,写入操作会一直挂起),请设置此项。其他任何值都按 on 处理,并在 stderr 上显示警告。 |
MCP_CONFIRM_TTL_SECONDS | 600 | 令牌的有效时长。 |
MCP_CONFIRM_SECRET | 每个进程随机生成 | 签名密钥;仅当令牌必须在服务重启后继续有效时才设置。 |
开发
npm install
npm run build # tsc + esbuild bundle → dist/
npm test # tsc typecheck + vitest
有关架构、约定和注意事项,请参阅 CLAUDE.md。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。