kupi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KUPI_LOCALITIES | No | Seznam předem známých lokalit `Label:localityId[:sublocalityId]`. | |
| KUPI_TIMEOUT_MS | No | Timeout jednoho HTTP pokusu. | 15000 |
| KUPI_USER_AGENT | No | Nastavte transparentní název a kontakt provozovatele. | kupi-mcp/0.1 ... |
| KUPI_LOCALITY_ID | No | Interní ID odpovídající labelu; musí být nastaveno společně s labelem. | |
| KUPI_MAX_RETRIES | No | Počet opakování jen pro 429 a dočasné 5xx/network chyby. | 2 |
| KUPI_CACHE_TTL_MS | No | TTL paměťové cache; minimum je 30 minut. | 1800000 |
| KUPI_LOCATION_LABEL | No | Volitelný přesný veřejný název jedné nakonfigurované lokality. | |
| KUPI_SUBLOCALITY_ID | No | Volitelné odpovídající `user_slocality`. | |
| KUPI_MAX_CONCURRENCY | No | Maximum souběžných živých požadavků. | 2 |
| MCP_HTTP_BEARER_TOKEN | No | Povinný bearer token pro vzdálený HTTP endpoint. | |
| KUPI_MAX_RESPONSE_BYTES | No | Maximální přijatá velikost HTML. | 2097152 |
| MCP_HTTP_MAX_BODY_BYTES | No | Maximální deklarovaná velikost MCP HTTP requestu. | 1048576 |
| MCP_HTTP_ALLOWED_ORIGINS | No | Čárkou oddělený CORS allowlist. | |
| KUPI_MIN_REQUEST_INTERVAL_MS | No | Minimální rozestup zahájení požadavků. | 1000 |
| MCP_HTTP_ALLOW_UNAUTHENTICATED | No | Nouzové povolení anonymního HTTP přístupu; veřejně nepoužívat. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_productsA | Vyhledá nabídky ve veřejném server-renderovaném HTML Kupi.cz. Ve výchozím stavu vrací jen akce platné dnes; budoucí akce nejsou vydávány za aktuálně platné. Údaje o balení v dotazu („hermelín 100 g“) se automaticky oddělí, aby nekazily hledání. Každý produkt nese match.confidence (0–1) a match.quality (high/medium/low) vyjadřující, jak dobře odpovídá dotazu. Výsledek uvádí skutečnou lokalitu dat; nejde o potvrzení skladové dostupnosti. |
| get_product_offersA | Načte veřejný detail /sleva/{slug}, deduplikuje doporučené nabídky a nabídky dle ceny a označí klubové, aplikační a množstevní podmínky. |
| compare_shopping_listA | Porovná letákové nabídky pro více položek, respektuje obchody, dostupná členství a maximální počet obchodů. Ve výchozím stavu používá jen akce platné dnes. Množství zadávejte přes amount + unit („2 kg“); počet balení se dopočítá podle skutečné velikosti balení (2 kg z balení po 600 g = 4 balení). Produkty s nízkou jistotou shody se nepoužijí a skončí v unresolvedItems. Pokud není pokryt celý košík, je status „partial“ a totalPrice je null — cena vyřešené části je v resolvedPrice. Výsledek je přibližný a neřeší vzdálenost ani sklad. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: search products, fetch detailed offers for a specific product, and compare a whole shopping list. There is no meaningful overlap between any pair, and the descriptions emphasize their different inputs and outputs.
All tool names follow a consistent verb_noun pattern in snake_case: search_products, get_product_offers, compare_shopping_list. The verbs clearly indicate the action and the object indicates the resource.
Three tools is a compact but well-scoped set for a narrow domain. Each tool earns its place: search handles discovery, get_product_offers handles per-product detail, and compare_shopping_list handles batch comparison.
The core workflow of searching products, viewing offer details, and comparing a shopping list is covered with no dead ends. Minor gaps exist, such as no explicit store listing or category browsing tool, but these do not undermine the server's stated purpose.