MCP server — připojení AI klienta k Smable API
Produkt: API · Aktualizováno: 2026-08-25
Pomocí MCP serveru (Model Context Protocol) propojíte svého AI asistenta — Claude, ChatGPT — přímo s daty své provozovny ve Smable. Asistent pak odpovídá z živých prodejních dat: kolik jste čeho prodali, které kategorie táhnou, jak si vedou zaměstnanci. S výslovným oprávněním umí i měnit ceny nebo stav skladu, vždy až po vašem potvrzení.
- Adresa serveru:
https://mcp.smable.cz/mcp - Přístup: vždy jen k té provozovně, ke které jste souhlas udělili
Připojení podle klienta
Adresa serveru je vždy stejná — https://mcp.smable.cz/mcp — liší se jen místo, kam ji ve svém klientovi vložíte. Hesla ani klíče se nikam nekopírují.
Claude (claude.ai i aplikace pro počítač)
- Otevřete Customize a v něm Connectors.
- Klikněte na Add a zvolte Add custom connector.
- Vyplňte Name (jak se konektor bude jmenovat v seznamu, třeba Smable) a do Remote MCP server URL vložte adresu serveru.
- Potvrďte tlačítkem Continue. Konektor se objeví v seznamu; připojíte ho tlačítkem Connect, které spustí přihlášení do Smable.
Ve firemním účtu (Team, Enterprise) přidává konektor vlastník účtu v Organization settings → Connectors. Ostatní členové ho pak najdou v Customize → Connectors a kliknou na Connect. V konverzaci se konektor zapíná tlačítkem + pod polem pro psaní, v sekci Connectors. Vlastní konektory fungují na tarifech Free, Pro, Max, Team i Enterprise.
ChatGPT
- Zapněte režim pro vývojáře: Settings → Apps → Advanced settings → Developer mode (v některých verzích Settings → Connectors → Advanced settings).
- Přidejte vlastní konektor a vložte adresu serveru.
Funguje ve webové verzi ChatGPT na tarifech Plus, Pro, Business, Enterprise a Edu. Ve firemním účtu zapíná režim pro vývojáře jeho administrátor. ChatGPT si navíc nechá potvrdit každou akci, která mění data.
Claude Code
Stačí jeden příkaz v terminálu:
claude mcp add --transport http smable https://mcp.smable.cz/mcp
Klient, který vlastní server neumí
V aplikaci Smable otevřete Nastavení → AI přístup, vytvořte přístup a vložte do klienta Client ID a Client secret ručně. Secret se zobrazí jen jednou.
Názvy položek se u každého klienta trochu liší a výrobci je průběžně mění — hledejte v jeho nastavení položku Konektory nebo MCP. Předpokladem je klient, který umí připojit vlastní MCP server; u některých je to vázané na vyšší tarif nebo na zapnutí režimu pro vývojáře.
Endpoint přijímá jen POST. GET slouží ve Streamable HTTP transportu k volitelnému SSE streamu, který tenhle server nenabízí, a vrací proto 405 s hlavičkou Allow: POST — otevření adresy v prohlížeči skončí právě touhle hláškou.
Co uvidíte na souhlasné obrazovce
Po vložení adresy otevře klient prohlížeč, vy se přihlásíte do Smable a objeví se souhlasná obrazovka.
- Nadpis „<jméno klienta> chce přístup k vašim datům ve Smable".
- Seznam Co bude asistent dělat — každé oprávnění na vlastním řádku. Zelená fajfka značí čtení, oranžová tužka zápis.
- Když je mezi oprávněními zápis, přibude upozornění: „Změny vám asistent vždy nejdřív navrhne a provede je až po vašem potvrzení."
- Když máte víc provozoven, je tu výběr Provozovna, ke které přístup povolíte a pod ním vysvětlení, že asistent uvidí data jen z vybrané provozovny a pro další je potřeba spustit připojení znovu. S jedinou provozovnou se místo výběru vypíše její název.
- Řádek Přihlášeni jako <váš e-mail> a vedle něj odkaz Přihlásit jako někdo jiný — ten použijte, když jste přihlášeni pod účtem, který k dané provozovně nepatří.
- Tlačítka Povolit přístup a Zamítnout, pod nimi připomínka, že souhlas jde kdykoli zrušit v Nastavení → AI přístup.
Co přesně smí asistent dělat, určuje seznam oprávnění, o která si klient řekl. Čtecí oprávnění jsou třeba prodejní reporty, ceník, sklad nebo zákazníci; zápisová umožňují upravit položky a sklad nebo založit zákazníka či zaměstnance. Povolujete je jako celek — jednotlivé řádky odškrtnout nejdou, buď souhlasíte s celým seznamem, nebo připojení zamítnete.
Po povolení se klient sám propojí. Přístupový token platí 15 minut a klient si ho po dobu 30 dní obnovuje sám, takže připojení nemusíte opakovat.
Na co se můžete ptát
Ptejte se běžnou řečí, asistent si sám vybere nástroj. Ukázky odpovědí jsou obecné — konkrétní čísla vždy přijdou z vašich dat.
Prodeje a tržby
- „Kolik jsme prodali za posledních 30 dní?"
Přes
report_itemsvrátí tabulku položek s počtem kusů a tržbou za období. - „Které kategorie měly minulý měsíc nejvyšší tržbu?"
report_categoriesseřadí kategorie podle tržby za zvolené období. - „Co se nám prodává nejhůř?" Tentýž položkový report, jen obráceně — asistent výsledek seřadí od nejmenšího prodeje.
- „Kolik účtenek vydala Jana minulý týden a kolik dostala na spropitném?"
report_staffvrací počet účtenek, tržbu a spropitné po jednotlivých zaměstnancích. - „Jak vypadal vývoj tržeb den po dni za poslední dva týdny?"
report_profitdá denní řadu tržeb a nákladů. - „Porovnej mi červen a červenec." Asistent zavolá report dvakrát za různá období a rozdíl dopočítá sám.
Ceník a sklad
- „Zvedni cenu černé kávy na 65 Kč."
set_item_pricenejdřív ukáže náhled „ze staré na novou cenu"; teprve po vašem potvrzení cenu změní. Vyžaduje oprávnění k úpravě položek. - „Vypni na pokladně sezónní limonádu, došla nám."
set_item_availabilitypoložku skryje z pokladny, opět s potvrzením. - „Napočítal jsem 8 kg mouky, srovnej to ve skladu."
adjust_stocknastaví absolutní stav suroviny — je to inventurní oprava, ne příjem zboží. - „Které položky se za poslední tři měsíce neprodaly ani jednou?"
report_unsoldvrátí souhrn za celý ceník — kolik položek do něj spadlo a u kolika je nula — a k tomu seznam s párovacími kódy. Volbamode: weakestmísto toho seřadí ceník od nejslabších. Položky založené až během období se nezapočítávají, novinka není ležák.
Suroviny, receptury a modifikátory
- „Kolik máme na skladě slaniny a v čem se počítá?"
list_elementsvyhledá surovinu podle názvu a vrátí označení, měrnou jednotku a stav skladu. Nákupní ceny nevrací. - „Z čeho se skládá burger a jaký je postup přípravy?"
get_recipevypíše recepturu položky včetně spotřeby jednotlivých surovin a uloženého postupu. - „Přidej do receptury na burger ještě plátek sýra."
set_recipenastavuje celou recepturu najednou, takže si asistent nejdřív načte stávající složení, připojí novou surovinu a předloží náhled celé nové receptury k potvrzení. - „Jaké máme modifikátory u jídel?"
list_modifier_templatesvypíše skupiny voleb i s příplatky u jednotlivých voleb. - „Založ skupinu Velikost s volbami malá za 0 a velká za 20 Kč."
create_modifier_templateskupinu vytvoří. Přiřazení ke konkrétním položkám se dělá v BackOffice.
Zaměstnanci
- „Vypiš mi dostupné role pro zaměstnance včetně toho, co smí dělat."
list_employee_rolesnačte role z katalogu a vypíše je i s popisem, co která role smí, a označí ty, které vidí do BackOffice. - „Založ nového číšníka Jana Nováka s maximální slevou 10 %."
create_employeepřipraví náhled se zadanými údaji i s popisem role a zaměstnance vytvoří až po potvrzení. Oprávnění rozbalí server podle role; bez oprávnění k zakládání zaměstnanců nástroj odmítne.
Nápověda a nastavení
- „Jak ve Smable nastavím tiskárnu účtenek?"
search_helpprohledá nápovědu Smable a shrne postup i s odkazem na článek. - „Jak se dělá uzávěrka pokladny?" Totéž — asistent odpoví z nápovědy, ne z vašich dat.
Zakládání zaměstnanců je samostatné oprávnění (
public:employees.write). Klient s oprávněním k úpravě položek zaměstnance zakládat nesmí.
Marže a nákupní ceny: připojený asistent je vidí jen tehdy, když má merchant oprávnění. Běžně připojený AI klient dostane počty kusů a tržby, ale ne nákupní ceny ani marži.
Dvě adresy: data a nápověda
Smable vystavuje dva MCP servery. Liší se tím, co nabízejí a jestli po vás chtějí přihlášení.
https://mcp.smable.cz/mcp— data vaší provozovny. Vyžaduje přihlášení vždy. Nepřihlášenému klientovi odpoví chybou 401, čímž mu dá pokyn, aby přihlášení spustil.https://mcp.smable.cz/public/mcp— jen vyhledávání v nápovědě Smable, bez přihlášení, pro kohokoli. Nabízí jediný nástrojsearch_help. Když na téhle adrese zavoláte nástroj na prodejní data, server ho odmítne a odkáže vás na adresu s přihlášením. Případný token tady server ignoruje — data provozovny přes veřejnou adresu získat nelze.
Rozdělení není zbytečná komplikace: AI klienti spouštějí přihlášení až ve chvíli, kdy dostanou odpověď 401. Kdyby adresa s daty odpovídala i nepřihlášenému klientovi, považoval by se za připojený a o přihlášení by vás nikdy nepožádal.
Dostupné nástroje
Čtecí
Období se zadává ve formátu YYYY-MM-DD, nejvýše 366 dní.
| Nástroj | Co vrací | Parametry |
|---|---|---|
report_items |
prodeje po položkách — počet kusů a tržba | date_from, date_to, volitelně item_id |
report_categories |
prodeje po kategoriích | date_from, date_to |
report_staff |
prodeje po zaměstnancích — účtenky, tržba, spropitné | date_from, date_to |
report_profit |
tržba po dnech | date_from, date_to |
search_help |
články nápovědy k dotazu | query, volitelně limit (1–20, výchozí 5) |
list_elements |
suroviny podle názvu — označení, jednotka, stav skladu (bez nákupních cen) | volitelně search, limit (1–50, výchozí 20) |
get_recipe |
recepturu položky — suroviny, množství, postup | item_id |
list_modifier_templates |
skupiny voleb i s příplatky | volitelně limit (1–50, výchozí 20) |
list_employee_roles |
role zaměstnanců i s popisem, co role smí | — |
report_unsold |
ležáky — co se za období neprodalo, nebo žebříček nejslabších položek (souhrn za celý ceník + omezený výpis) | date_from, date_to, volitelně mode (unsold / weakest), category_id, limit (1–1000, výchozí 100) |
Nákupní ceny, hrubý zisk ani marži připojený asistent nedostane — ta čísla zůstávají jen v aplikaci Smable. Prodejní ceny položek se přes MCP zatím číst nedají, asistent je umí jen měnit (viz níže).
Zápisové
| Nástroj | Co dělá | Pojistka |
|---|---|---|
set_item_price |
nastaví prodejní cenu položky | cena nejvýše 10 000 000 |
set_item_availability |
zapne/vypne položku na pokladně | — |
rename_item |
přejmenuje položku | název max 255 znaků |
create_customer |
založí zákazníka | e-mail se ověřuje formátem |
adjust_stock |
nastaví absolutní stav suroviny (inventura) | množství nejvýše 10 000 000 |
set_recipe |
nastaví celou recepturu položky (nahrazuje stávající) | nejvýše 100 surovin, množství musí být kladné |
create_modifier_template |
založí skupinu voleb s příplatky | nejvýše 50 voleb, příplatek nesmí být záporný |
import_items |
hromadně založí položky (jen zakládá, duplicity nehlídá) | nejvýše 100 položek najednou |
create_employee |
založí zaměstnance a přidělí mu roli | PIN 4–20 číslic, sleva 0–100 %, oprávnění rozbaluje server |
Změny dat a potvrzení
Zápisové nástroje mají dvě pojistky:
- Náhled napřed. První volání nic nezmění — vrátí jen srovnání současné a nové hodnoty. Teprve druhé volání s potvrzením změnu provede. Asistent se vás tedy vždy nejdřív zeptá.
- Vlastní oprávnění. Každý zápis vyžaduje samostatné oprávnění, které jste museli povolit na souhlasné obrazovce. Bez něj asistent změnu neprovede.
Každý zápis se zapisuje do auditní stopy provozovny. Provozovna se navíc bere vždy z tokenu, nikdy z toho, co asistent pošle — do cizích dat se zapsat nedá.
Odvolání přístupu
- Otevřete Nastavení → AI přístup.
- V sekci Připojení asistenti klikněte u daného asistenta na Odvolat.
Asistent ztratí přístup nejpozději do 15 minut — tak dlouho může platit jeho poslední vydaný token. Nový už si nevymění.
Připojení pro vlastní skripty
Pro vlastní automatizace se hodí přímé server-to-server připojení bez souhlasové obrazovky.
- V Nastavení → AI přístup vytvořte přístup a poznamenejte si Client ID i Client secret — secret se zobrazí jen jednou.
- Vyměňte je za token:
curl -X POST https://api-v3.smable.cz/v3/oauth/token \
-u "CLIENT_ID:CLIENT_SECRET" \
-d "grant_type=client_credentials"
- Token přikládejte ke každému volání:
curl -X POST https://mcp.smable.cz/mcp \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"report_items",
"arguments":{"date_from":"2026-07-01","date_to":"2026-07-31"}}}'
Technické parametry: JSON-RPC 2.0 přes HTTP (MCP Streamable HTTP v JSON-response režimu), bez SSE streamování a bez dávkových požadavků. Podporované verze protokolu: 2025-06-18 (výchozí), 2025-03-26, 2024-11-05. Handshake initialize vrací i pole instructions, které si AI klient načte sám.
Když něco nefunguje
- 401 — chybí nebo je neplatný token. U připojeného asistenta zkuste připojení obnovit; token po 30 dnech bez použití vyprší.
- Chyba
-32002— token nemá přiřazenou aktivní provozovnu. - Chyba
-32003— token nemá oprávnění číst reporty. Typicky jde o token pokladny, který k MCP určený není. - Chyba
-32004— asistent zkusil zápis bez oprávnění, které jste mu nepovolili. - Odpověď s
isError— neplatné vstupy: období delší než 366 dní, záporná cena, prázdný název.