io.github.chrischall/groupon-mcp

Official registry Search and web

Groupon deals for Claude — search and browse local, goods, and travel deals

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package groupon-mcp
Claude Code
claude mcp add groupon-mcp -e 'GROUPON_SESSION_COOKIE=<your groupon_session_cookie>' -e 'GROUPON_DISABLE_FETCHPROXY=<GROUPON_DISABLE_FETCHPROXY>' -e 'GROUPON_GRAPHQL_URL=<GROUPON_GRAPHQL_URL>' -e 'GROUPON_CACHE_TTL=<GROUPON_CACHE_TTL>' -e 'FETCHPROXY_WS_PORT=<FETCHPROXY_WS_PORT>' -e 'FETCHPROXY_WS_HOST=<FETCHPROXY_WS_HOST>' -e 'FETCHPROXY_IDENTITY_DIR=<FETCHPROXY_IDENTITY_DIR>' -- npx -y groupon-mcp@1.1.10
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "groupon-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "groupon-mcp@1.1.10"
            ],
            "env": {
                "GROUPON_SESSION_COOKIE": "<your groupon_session_cookie>",
                "GROUPON_DISABLE_FETCHPROXY": "<GROUPON_DISABLE_FETCHPROXY>",
                "GROUPON_GRAPHQL_URL": "<GROUPON_GRAPHQL_URL>",
                "GROUPON_CACHE_TTL": "<GROUPON_CACHE_TTL>",
                "FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
                "FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
                "FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
            }
        }
    }
}

Environment variables

  • GROUPON_SESSION_COOKIE secret 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_FETCHPROXY Set to 1/true to disable the fetchproxy browser-bridge fallback (then the cart path relies solely on GROUPON_SESSION_COOKIE).
  • GROUPON_GRAPHQL_URL Override 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_TTL Response-cache TTL for reads in seconds (0 = off; default 60).
  • FETCHPROXY_WS_PORT Localhost 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_HOST Bind 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_DIR Absolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. groupon-mcp
  2. Tools
  3. Setup
  4. Confirmations
  5. Development
  6. License

groupon-mcp

MCP server for Groupon — search and browse local, goods, and travel deals from Claude via natural language, and add deals to your signed-in Groupon cart once you confirm.

This project was developed and is maintained by AI. Use at your own discretion.

Tools

ToolWhat it doesNeeds sign-in
groupon_search_dealsSearch or browse a city's dealsno
groupon_get_dealOne deal's detail, including each option's id and priceno
groupon_list_categoriesGroupon's category taxonomyno
groupon_healthcheckOne live request to Groupon, reporting what failed if anything didno
groupon_view_cartThe items in your Groupon cartyes
groupon_purchaseAdd a deal option to your cart (after you confirm) and return the checkout URLyes
groupon_clear_cartRemove every item from your cart (after you confirm)yes

The deal reads use Groupon's public consumer endpoint with no API key or account. The cart tools act on your signed-in Groupon account through its session cookie (see below). groupon_purchase cannot place an order: Groupon's checkout is native Apple/Google Pay, card or PayPal, so you complete payment yourself at the checkout URL.

Setup

Add the server to your .mcp.json:

{
  "mcpServers": {
    "groupon": {
      "command": "npx",
      "args": ["-y", "groupon-mcp"]
    }
  }
}
Cart sign-in (optional)

Reading deals needs no account. The cart tools (groupon_view_cart, groupon_purchase, groupon_clear_cart) use your signed-in groupon.com session, which the server picks up from your browser through the ContextMint Bridge extension:

  1. Install ContextMint Bridge from its releases page. Chrome: download the Chrome zip, unzip it, and load it unpacked at chrome://extensions (Developer mode). Safari isn't available yet (it will ship inside the ContextMint app, which has no public download), so use Chrome for now.

    ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer; fetchproxy's own README (https://github.com/chrischall/fetchproxy#extension) points to it. Its source is public at https://github.com/nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the .sha256 file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).

  2. Sign in at groupon.com in that browser. The first cart call lifts the session cookie; approve the request in the extension when asked.

For local dev without the extension, set GROUPON_SESSION_COOKIE (see .env.example); set GROUPON_DISABLE_FETCHPROXY=1 to turn the browser path off. The cookie authorizes changes to your cart, so treat it like a password. The cart tools only send it to an https://*.groupon.com endpoint, and refuse a GROUPON_GRAPHQL_URL override pointing anywhere else.

Environment

All optional; they mirror the .mcpb manifest's settings (the MCP_CONFIRM_* family is under Confirmations).

variabledefault
GROUPON_SESSION_COOKIEunsetFull Cookie header from a signed-in www.groupon.com request, for the cart tools only. Leave unset to have the bridge pick up your session. Treat it like a password.
GROUPON_DISABLE_FETCHPROXYunset1 turns the browser-bridge path off; the cart tools then rely on GROUPON_SESSION_COOKIE.
GROUPON_GRAPHQL_URLhttps://www.groupon.com/mobilenextapi/graphqlGraphQL endpoint override. The cart tools refuse any override that is not an https://*.groupon.com URL.
GROUPON_CACHE_TTL60Response-cache TTL for reads, in seconds (0 = off). Raise it if you hit rate limits.
FETCHPROXY_WS_PORT37149Concentrator port the ContextMint Bridge connects to. Every MCP on one machine shares it, so move it for all of them or none.
FETCHPROXY_WS_HOST127.0.0.1Bridge bind interface, a literal IP only. Keep on loopback; it exists for hosted deployments in their own network namespace.
FETCHPROXY_IDENTITY_DIR~/.fetchproxy/identity/Absolute path for the bridge's long-term identity keypair.

Confirmations

The cart writes (groupon_purchase, groupon_clear_cart) ask you to confirm before they change anything. A client that can show a confirmation prompt (Claude Code) shows one, unless the server sets MCP_CONFIRM_ELICITATION=off. Elsewhere, the first call changes nothing and returns a preview plus a confirmToken, and only a repeat call with that token proceeds. The token is tied to exactly what was previewed: if the deal's price, the chosen option or quantity, or the cart's contents change between the two calls, the write is refused and a fresh preview is returned. groupon_purchase's preview also shows how many of that option are already in your cart, since Groupon may set the line to the new quantity rather than add to it. It still only fills the cart; you complete payment yourself at the checkout URL. groupon_clear_cart removes only the cart's line items, and accepts the previewed optionIds back as expectedOptionIds so it refuses if the cart has changed; if a removal fails partway it says which items were and were not removed.

variabledefault
MCP_CONFIRM_MODEask-userWhat a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.

Development

npm install
npm run build   # tsc + esbuild bundle → dist/
npm test        # tsc typecheck + vitest

See CLAUDE.md for architecture, conventions, and gotchas.

License

MIT

Frequently asked questions

What is io.github.chrischall/groupon-mcp?

Groupon deals for Claude — search and browse local, goods, and travel deals

How do I install io.github.chrischall/groupon-mcp?

It runs on your machine. In Claude Code: claude mcp add groupon-mcp -e 'GROUPON_SESSION_COOKIE=<your groupon_session_cookie>' -e 'GROUPON_DISABLE_FETCHPROXY=<GROUPON_DISABLE_FETCHPROXY>' -e 'GROUPON_GRAPHQL_URL=<GROUPON_GRAPHQL_URL>' -e 'GROUPON_CACHE_TTL=<GROUPON_CACHE_TTL>' -e 'FETCHPROXY_WS_PORT=<FETCHPROXY_WS_PORT>' -e 'FETCHPROXY_WS_HOST=<FETCHPROXY_WS_HOST>' -e 'FETCHPROXY_IDENTITY_DIR=<FETCHPROXY_IDENTITY_DIR>' -- npx -y groupon-mcp@1.1.10. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.chrischall/groupon-mcp need an API key?

Yes. It expects GROUPON_SESSION_COOKIE, which you set in its configuration.

Is io.github.chrischall/groupon-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.chrischall/groupon-mcp?

It is published by chrischall. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.