Skip to main content
Glama
eladkishon
by eladkishon

buyme-mcp-vercel

Public remote MCP server (Streamable HTTP) for searching Israeli businesses that accept BuyMe (buyme.co.il) gift cards. Deployed on Vercel.

Live: https://buyme-mcp-vercel.vercel.app MCP endpoint: https://buyme-mcp-vercel.vercel.app/api/mcp

This repo holds two servers that share the same catalog:

  • Cloud / remote (this Next.js app, app/api/[transport]/route.ts) — the public Streamable HTTP endpoint any MCP client (Gemini, Claude, ChatGPT…) can use over the internet. Search/lookup only; wallet reads are DISABLED_ON_CLOUD by design.

  • Local / stdio (local-server/) — the server you run on your own machine, where your BuyMe token stays local and the wallet tools actually work. See local-server/README.md and local-server/WALLET-SETUP.md.

Tools

Catalog tools (both servers):

  • search_businessesquery (HE/EN) + filters: category, region, online_only, min_price, max_price, limit

  • get_business — full detail + all products/prices for one id, incl. paymentWay + acceptsMultipleVouchers (whether several BuyMe cards can be stacked in one purchase — true for MultiPass, false for Shva/card-POS)

  • list_categories / list_regions — browse with counts

Wallet tools (local server only — the cloud server returns DISABLED_ON_CLOUD):

  • list_my_giftcards — your cards: balance, code, expiry, redeem link, total

  • wallet_summary — total, counts, value distribution, small cards to clear, expiry buckets

  • giftcards_expiring — cards lapsing within N days (default 90), soonest first

  • assemble_amount — which cards to combine to cover a target ₪ amount, lowest balance first

  • bulk_giftcard_codes — redemption details (serial code, barcode, redeem link) for many cards at once; pass ids to target specific cards

Related MCP server: Israel Real Estate MCP

Connect

# Gemini CLI
gemini mcp add --transport http buyme https://buyme-mcp-vercel.vercel.app/api/mcp

# Claude Code
claude mcp add --transport http buyme https://buyme-mcp-vercel.vercel.app/api/mcp

Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the endpoint URL.

Gemini API (google-genai) and other SDKs: point their MCP client transport at the same URL.

Claude Code plugin

plugin/ is a self-contained Claude Code plugin (buyme) that wires this repo up for Claude Code in one shot:

  • MCP (plugin/.mcp.json) — registers TWO servers:

    • buyme (stdio, local-server/server.mjs) — full catalog + wallet tools. Reads the BuyMe token from BUYME_TOKEN (passed through) or ~/.buyme-token.json.

    • buyme-cloud (HTTP, the Vercel endpoint) — catalog only; works in any environment with no local setup, so the plugin is useful even where the stdio server can't run.

  • Skill (plugin/skills/concierge/SKILL.md) — the concierge behavior (buyme:concierge): always read terms, verify hours/closures, flag redemption blockers, handle the wallet.

  • Commands/buyme:find, /buyme:wallet, /buyme:expiring, /buyme:combine, /buyme:codes.

Install (the marketplace lives on GitHub via .claude-plugin/marketplace.json):

claude plugin marketplace add eladkishon/buyme-mcp   # or: add .  (from a local clone)
claude plugin install buyme@buyme-local

Running in a cloud / remote Claude env

  • Public / shared cloud: add buyme-cloud (the HTTP endpoint) — catalog tools work everywhere. Wallet tools return DISABLED_ON_CLOUD by design (a shared server must never hold your credentials).

  • Private cloud env you control (your own Claude Code sandbox/agent): the stdio buyme server gives full wallet access too — clone the repo, cd local-server && npm install, and set BUYME_TOKEN as a secret env var. The plugin forwards it ("env": {"BUYME_TOKEN": "${BUYME_TOKEN:-}"}), so no token file is needed.

Architecture

app/api/[transport]/route.ts        MCP server (mcp-handler, Streamable HTTP) -> /api/mcp
app/page.tsx                         server: gathers endpoint + stats
app/_components/Landing.tsx          bilingual (HE/EN) UI, RTL toggle
lib/catalog.ts                       search / filter / lookup logic (shared)
lib/dataset.ts                       loads bundled data/buyme.json
scripts/scrape.mjs                   scraper -> data/buyme.json
.github/workflows/refresh-catalog.yml  weekly auto-refresh
data/buyme.json                      bundled catalog
local-server/                        local stdio MCP server (wallet tools; not part of the Vercel build)
plugin/                              Claude Code plugin: MCP config + concierge skill + slash commands

Stateless Streamable HTTP — no Redis required. Node.js runtime.

Keeping the catalog fresh (automatic)

A GitHub Action (.github/workflows/refresh-catalog.yml) re-scrapes BuyMe every Monday 04:00 UTC, and commits data/buyme.json only if it changed. The push triggers a Vercel production deploy, so the live site + MCP endpoint always serve fresh data. No Vercel plan limits apply (the scrape runs on the GitHub runner, not in a serverless function).

  • Run it on demand: GitHub → Actions → "Refresh BuyMe catalog" → Run workflow.

  • Manual local refresh: node scripts/scrape.mjs && git commit -am "refresh catalog" && git push.

Caveat

Unofficial community index built from publicly available data on buyme.co.il. Not affiliated with BuyMe. Prices/terms/participating businesses may be stale — verify on the official site. Every tool response includes a _source attribution note. The endpoint has best-effort per-instance rate limiting; for hard limits add Upstash/Vercel KV.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for querying Israeli government real estate data, enabling property deal searches, market trend analysis, and address retrieval.
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for KSP, Israel's electronics retailer. Enables searching products by name or filters, getting product details, and browsing filters via KSP's internal JSON API.
    4
    34 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server (Streamable HTTP) that reads and parses the public catalog website atcmarket.cz (AT Computers) to enable product search, category-filtered search, supported filter listing, product detail lookup, and cross-product comparison — without login or state.
    -