Pro AI agenty
Kybriq je rozhodovací engine podle českého zákona č. 264/2025 Sb. o kybernetické bezpečnosti a přílohy vyhlášky č. 408/2025 Sb. Rozhodnutí je deterministické a pravidlové: každý právní výrok nese citaci verbatim kotvy z ověřeného korpusu v poli sources. Žádný jazykový model nepíše právní výstup.
Odpověď na otázku „spadáme pod zákon?“ v češtině: test regulované služby; sankce: horní hranice pokut podle § 59 až 63.
Kontrakty a soubory
- llms.txt: rychlý přehled a pravidla použití
- llms-full.txt: rozšířený obsah včetně kotevních citací
- openapi.json: kontrakt REST rozhraní, které se skutečně servíruje
- /.well-known/mcp.json: karta MCP serveru
- /api/offers.json: co je na prodej, za kolik, s jakým režimem DPH, co se dodá a jak zní odmítnutí
- decision-table.json: úplná rozhodovací plocha s kotvami
- verification.json: živá kontrola korpusu
REST: tři cesty, POST + JSON, bez autentizace
POST /api/v1/scope: poskytuje organizace regulovanou službu a v jakém režimuPOST /api/v1/timeline: datovaný kalendář povinností od doručení rozhodnutí o registraciPOST /api/v1/incident-clocks: lhůty hlášení incidentů podle § 16 od okamžiku zjištění
Tělo je omezeno na 64 KB, limity jsou na IP adresu, každá odpověď nese sources,
disclaimer a hlavičku X-Robots-Tag: noindex. Validace je fail-closed:
neznámé pole, hodnota mimo slovník nebo neexistující datum se odmítají, nikdy neignorují.
Chybějící ODPOVĚĎ chybou není: vrátí se needs_review a seznam otázek v missing.
curl -sS https://kybriq.cz/api/v1/scope \
-H 'Content-Type: application/json' \
-d '{"serviceRow":"vyh408_18_1_health_care","sector":"health",
"sizeClass":"large","hasLinkedOrPartnerEnterprises":false,
"stateHealthProvider":false}'
MCP: POST /mcp
Streamable HTTP, bezstavově, odpovědi v application/json místo event streamu.
GET vrací 405, protože není co streamovat a není jaká relace ukončovat. Verze protokolu se
sjednává v initialize. Nástroje:
classify_zkb: totéž co/api/v1/scopeobligation_timeline: totéž co/api/v1/timelineincident_clocks: totéž co/api/v1/incident-clocksstart_checkout: otevře URL Stripe Checkout, na které platbu dokončí ČLOVĚKcheck_order_status: přečte stav té relace a po zaplacení vrátí unlock odkaz
Oba přenosy volají tytéž procesní handlery a utrácejí tytéž kbelíky na volajícího, takže přepnutí protokolu nepřidá žádný příděl.
curl -sS -X POST https://kybriq.cz/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Chyby: RFC 9457
Každé odmítnutí je problémový dokument podle RFC 9457. Po HTTP je to tělo odpovědi
s typem application/problem+json; přes MCP je týž dokument obsahem
structuredContent ve výsledku s isError: true. Větvěte podle
error.code; pole type odkazuje na řádek této tabulky.
| error.code | HTTP | Význam |
|---|---|---|
bad_request | 400 | Tělo požadavku není platný JSON, nebo není JSON objekt. |
invalid_input | 422 | Pole bylo odmítnuto: neznámý klíč, hodnota mimo slovník, nebo datum, které neexistuje v kalendáři. Nic se nepřetypovává a nic se neignoruje. |
not_found | 404 | Taková cesta, takový nástroj nebo taková relace Stripe Checkout neexistuje. |
method_not_allowed | 405 | Endpoint přijímá pouze POST. GET na /mcp vrací 405, protože bezstavový profil neotevírá žádný event stream. |
payload_too_large | 413 | Tělo požadavku přesáhlo 64 KB. |
rate_limited | 429 | Kbelík pro tuto adresu je prázdný. Kbelíky jsou sdílené mezi /api/v1/* a /mcp, takže přepnutí protokolu nepřidá žádný příděl. |
idempotency_mismatch | 422 | Tento idempotency_key už byl použit s jinými argumenty. Vygenerujte nový. Odmítnutí nikdy neprozradí, k čemu je klíč navázán. |
in_progress | 409 | Checkout s tímto idempotency_key se právě vytváří. Zkuste to za chvíli znovu místo poslání druhého požadavku. |
checkout_unavailable | 503 | Tato instalace neumí vytvořit relaci Checkout. Pošlete člověka na veřejný platební odkaz uvedený v chybě, pokud je nastaven. |
upstream_unavailable | 502 | Platební poskytovatel nebyl dostupný. Jeho vlastní zprávu nikdy nepředáváme dál. |
server_error | 500 | Neočekávaná chyba. O vnitřním stavu nezveřejňujeme nic. |
Zásady
Zásady: výstup není právní radou · registrace probíhá jen na Portálu NÚKIB (portal.nukib.gov.cz), my podklady připravujeme, nepodáváme je · žádné částky ani lhůty bez verbatim kotvy z ověřeného korpusu · permanentní odkazy jsou přísně validované (neznámý klíč = odmítnutí celého payloadu) · cenu, částku i měnu určuje server z vlastní konfigurace, argumenty je nelze ovlivnit.