kupi-mcp
This server is a read-only MCP tool for working with public Kupi.cz discount offers: searching deals, comparing offers for a product, and optimizing a shopping list across stores.
search_products: search current or date-specific sale products on Kupi.cz with filters for stores, sale-only items, excluded words, membership-only offers, location, sorting (relevance, price, unit price, discount), and a result limit (1–50). Each match includes a confidence score and quality rating.
get_product_offers: fetch and compare all offers for a specific product by slug or HTTPS product URL, sorted by price and unit price, with optional store, location, validity-date, and membership filters.
compare_shopping_list: optimize 1–20 shopping-list items across up to 8 stores, respecting quantities (amount + unit), preferred/required package sizes, allowed/excluded stores, available memberships, and optimization goals (lowest price, fewest stores, balanced). Reports complete/partial coverage, resolved/unresolved items, and package vs. purchase prices.
Location handling: supports preconfigured localities, shows actual location used, warns on mismatch, and never guesses unconfigured locations.
Offer validity checking: filters offers by validity date, never presents future offers as currently valid.
Branch/radius support: can restrict stores to verified branches within a radius, returning branch details and straight-line distance, with clear caveats about assumed applicability.
Package intelligence: parses quantities like "2 kg" or multipacks such as "6 × 0.5 l", computes needed packages, and supports any/preferred/required package-size modes.
Price sanity checks: flags unusually high unit prices relative to comparable candidates (normal/high/extreme) without hard-blocking.
Debug diagnostics: optional structured reason codes, rejected matches/offers, and HTTP request details for transparency.
Safety/limitations awareness: read-only, no login, respects robots.txt, returns structured errors on blocking, and explicitly marks results as approximate rather than confirming stock availability.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kupi-mcpPorovnej ceny mléka a másla v aktuálních akcích"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kupi-mcp
Neoficiální MCP server nad veřejnými slevovými stránkami Kupi.cz. Pouze čte: vyhledá akční produkty, porovná nabídky jednoho produktu a sestaví z akcí nákupní seznam.
Není spojený s provozovatelem Kupi.cz ani jím schválený.
Nástroje
Nástroj | K čemu je |
| Najde akční produkty. Každý výsledek nese |
| Nabídky jednoho produktu z jeho detailu — víc obchodů než výsledek hledání. |
| Hlavní nástroj: z celého seznamu sestaví proveditelný nákup přes několik obchodů. |
Volitelný parametr radiusKm u prvního a třetího omezí výsledek na řetězce s ověřenou
pobočkou v okolí. Stojí další HTTP požadavky; bez něj server vzdálenost obchodů nezná.
Related MCP server: coffee-price-mcp
Čemu výstup věří a čemu ne
Leták není sklad. Cena z akce neznamená, že produkt na pobočce je.
Vzdálenost je vzdušná čára ze souřadnic pobočky, ne délka jízdy.
Otevírací doba je běžná týdenní; svátky a jednorázová zavření zdroj neuvádí.
Platnost akce na konkrétní pobočce se nedá z veřejných stránek ověřit, proto je označená jako
assumed.Neúplný košík má
totalPrice: null. Cena vyřešené části je vresolvedPrice.Produkt, který dotazu neodpovídá dost jistě, se nepoužije; položka zůstane nevyřešená.
Lokalita
Kupi.cz drží lokalitu v cookies. Endpoint, který překládá název města na interní ID, je
zakázaný v robots.txt, takže se ID nikdy neodhaduje. Buď ho předáte v
KUPI_LOCALITIES, nebo se použije anonymní výchozí lokalita podle IP — a výsledek
vždy uvádí, pro kterou lokalitu data skutečně jsou.
ID si zjistíte ve vlastním prohlížeči z cookies user_locality a user_slocality po
nastavení města na Kupi.cz. Jsou to provozní data; do repozitáře nepatří.
Konfigurace
Proměnná | Výchozí | Význam |
| prázdné |
|
| obecný | User-Agent, kterým se server představuje |
|
| Rozestup mezi požadavky na zdroj |
|
| Souběžné požadavky |
|
| Platnost cache staženého HTML |
|
| Timeout jednoho požadavku |
|
| Opakování po dočasné chybě |
|
| Strop velikosti odpovědi |
Pro HTTP nasazení navíc:
Proměnná | Význam |
| Token, který klient posílá v |
|
|
| Povolené |
| Strop velikosti požadavku (výchozí 1 MiB) |
Bez MCP_HTTP_BEARER_TOKEN a bez výslovného povolení anonymního přístupu endpoint
odpovídá 503. Nezabezpečený server nikdy nevznikne omylem.
Spuštění
npm ci
npm run build
npm startPřes stdio, například v Claude Desktop:
{
"mcpServers": {
"kupi": {
"command": "node",
"args": ["/cesta/ke/kupi-mcp/dist/index.js"],
"env": { "KUPI_LOCALITIES": "Mesto:localityId:sublocalityId" }
}
}
}Nasazení na Vercel
Repozitář je připravený jako drop-in projekt: api/mcp.ts je MCP endpoint,
api/health.ts odpovídá na kořenové cestě. Nastavte MCP_HTTP_BEARER_TOKEN mezi
proměnnými prostředí projektu a nasaďte. npm run package vyrobí ZIP, který se dá na
Vercel přetáhnout beze změn.
Klient se pak připojí na https://vase-nasazeni.vercel.app/api/mcp s hlavičkou
Authorization: Bearer <token>; klienti, které vlastní hlavička Authorization
nepustí, mohou poslat X-Api-Key.
Snapshot poboček
Vyhledávání s radiusKm jinak stahuje stránky poboček za běhu, což je po studeném startu
pomalé. Předgenerovaný snapshot to odstraní:
npm run branches:refresh -- --location Mesto --radius 50Zapíše data/store-branches.json. Opakované běhy pro různá města se slučují. Soubor je
volitelný — bez něj se pobočky dohledávají živě.
Vývoj
npm run typecheck
npm run lint
npm testnpm run privacy:check hlídá, aby se do repozitáře nedostaly e-maily, absolutní cesty
z domovského adresáře ani konkrétní ID lokalit.
Co jsme o zdroji zjistili a proč je kód místy opatrnější, než by se zdálo nutné, je v docs/kupi-facts.md.
Ohleduplnost ke zdroji
Požadavky jsou sériové s rozestupem, odpovědi se cachují a odpovědi 429/403 se
nepřekračují — server se je nesnaží obejít, vrátí strukturovanou chybu. Skupina
User-agent: AI má v robots.txt Kupi.cz úplný zákaz; pro veřejné nebo objemné nasazení
si vyžádejte souhlas provozovatele.
Licence
MIT, viz LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.711528AGPL 3.0
- AlicenseAqualityBmaintenanceA read-only MCP server that wraps the coffee.pryzm.gg public API to calculate effective prices of coffee drinks after discounts, enabling users to find the cheapest coffee deals, search for discounts, and verify receipt prices.32MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying and comparing prices, availability, ratings, reviews, and seller details from major Russian and Chinese marketplaces (Wildberries, Ozon, Yandex Market, and others) without requiring API keys, via a unified MCP interface.3MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for Greek supermarket product and price data from PosoKanei. Enables product search, barcode lookup, price comparison across retailers, and basket evaluation.10632MIT
Related MCP Connectors
Read-only shopping decisions, product search, offers, and price history for Greece.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Search ~8.5M products from 2,500+ Central European e-shops. Semantic, keyword, GTIN lookup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pokys/kupi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server