AI asistent mi upravuje obsah webu, ale nemá administrátorský účet ani přístup do databáze. V LydiaCMS je to obyčejný uživatel s omezenými oprávněními a všechno, co udělá, se zapíše do auditního logu. Rutinní úpravy textů, SEO a překladů mu proto můžu svěřit a stále vím, co se změnilo.
Co se může pokazit a co s tím systém dělá
Asistent udělá chybu
Každá změna se zapíše do auditního logu se starou a novou hodnotou a administrace ji ukáže jako rozdíl. Vidím tak, kdo změnu provedl a co přesně se v textu změnilo, a špatnou úpravu vrátím jedním kliknutím.
Změnu jde vrátit jen tehdy, když se záznam od ní nezměnil. Pokud ano, systém vrácení odmítne a vypíše, která pole se mezitím změnila, takže se nepřepíše novější práce. Vracení se týká stránek a dalších obsahových záznamů. U uživatelů a rolí ho záměrně nenabízím.
Asistent chce víc, než smí
MCP server běží pod konkrétním uživatelem a každá operace prochází stejnou kontrolou oprávnění (ACL) jako administrace. Asistent nemůže spravovat uživatele ani role a nikdo nemůže přidělit víc práv, než sám má. Jak se oprávnění dědí po stromě kontextů, popisuje Architektura.
Do obsahu se dostane škodlivý kód
HTML se při ukládání filtruje podle seznamu povolených značek a atributů (HTMLPurifier). Skripty a nepovolené atributy se z obsahu odstraní bez ohledu na to, kdo ho poslal.
Server volá někdo nepovolaný
Nástroje s oprávněním vyžadují sdílený token. Když není token nastavený, server nepustí nikoho. Token se čte z prostředí až při volání, takže nekončí v zkompilovaném DI kontejneru.
Jak to používám
Tímto způsobem upravuju i obsah tohoto webu: texty stránek, jejich SEO vlastnosti (slug, titulek, popis), nahrávání obrázků a překlady. Nástroje vznikají z registrovaných endpointů administračního API a jmenují se podle nich, například core_pages_update nebo core_translations_set. Další balíčky přidávají vlastní nástroje, například správu měst a zemí v balíčku location.
Pod pokličkou: jedno API, dva transporty
- Lokální STDIO v
lydiacms/core. MCP klient spustílydiacms:mcppřes Docker, CLI nebo SSH, takže není potřeba žádný veřejný HTTP endpoint. - Streamable HTTP v
lydiacms/api. Stejné schopnosti lze vzdáleně vystavit přes/api/mcpa ověřovat webservice Bearer tokenem. Vzdálený přístup se musí zapnout výslovně.