Automatizacija objavljivanja u Strapiju: sa 90 na 5 minuta, i šta je ipak puklo

Automatizacija objavljivanja u Strapiju: sa 90 na 5 minuta, i šta je ipak puklo

Brza verzija našeg procesa objavljivanja proizvela je tri članka koji su, kada se pažljivo pogledaju, zapravo jedan članak prerušen u tri. Ništa nije otkazalo. Sve je proradilo iz prve, i upravo je to bio problem.

Ovo su beleške o tome kako smo objavljivanje jednog teksta na tri jezika skratili sa sat i po na oko 5 minuta, koristeći MCP server koji Strapi isporučuje od verzije 5.47 i jedan Claude skill. I o tome šta smo tim putem izgubili.

Pisanje nikad nije bilo problem

Sadržaj kod nas nije usko grlo. Nikad nije ni bio. Imamo o čemu da pišemo i pišemo brzo. Usko grlo je bilo objavljivanje.

Jedan članak za nas znači tri jezika: engleski, nemački i srpski. Pre ovog procesa, put od gotovog teksta do tri objavljene verzije trajao je između sat i dva. Skoro ništa od tog vremena nije otpadalo na pisanje.

Strapi v5 taj deo modeluje ispravno. Jedan dokument nosi tri lokalizacije i to je tačno ono što treba. Model nije bio problem.

Problem je bilo neslaganje oblika. Tekst nastaje kao Markdown. U bazi živi kao Blocks, niz čvorova u JSON stablu. Između ta dva oblika stoji čovek koji konverziju radi rukom, u pregledaču, po treći put istog dana.

Na to ide desetak dosadnih polja po jeziku. Slug, sažetak, vreme čitanja, meta naslov, meta opis, ključne reči, Open Graph, strukturirani podaci, FAQ stavke, kategorija, tagovi, autor. Puta tri. Ukupno oko sat vremena čistog činovničkog posla, i to onog koji dolazi tačno onda kada ste za njega najmanje raspoloženi.

Ono što je zaista bolelo nije bio trošak. Nismo objavljivali manje zato što nismo imali šta da kažemo. Objavljivali smo manje zato što se onaj bedni poslednji sat odlagao, pa se odlagao još malo, dok tema ne zastari. Režija oko objavljivanja nije bila samo cena. Bila je filter na to šta uopšte izlazi.

Tri načina da se to reši

Postoje tri realne opcije. Postoji i četvrta, koja se često pominje, a ne valja.

Prva je da ostanete u admin panelu. Nula podešavanja, nula rizika, i taj sat plaćate zauvek. Većina timova je tu, a da to nikada nije svesno odlučila.

Druga je skripta preko REST API-ja. Radi. Košta otprilike dan posla, i od tog dana je Vaša, sa svime što uz to ide. Kada se šema promeni, skripta se razbije tiho, a Vi to saznate nedeljama kasnije, kada primetite da se jedno polje više ne popunjava.

Ni to nije najveća zamerka. Skripta ne dira deo koji traži prosuđivanje. Automatizovali ste kucanje i zadržali razmišljanje, a razmišljanje nikada nije bilo skupi deo. Kucanje jeste.

Treća je agent koji radi kroz MCP server. Strapi ga isporučuje od verzije 5.47. Uključujete ga sa mcp: { enabled: true } u config/server.js, restartujete instancu, i endpoint stoji na /mcp. Autentifikacija ide admin tokenom.

Ovo vredi razumeti pre nego što uključite bilo šta: dozvole tokena određuju koje alate agent uopšte vidi. Ako token nema dozvolu za brisanje, alat za brisanje ne postoji u njegovom spisku. Nije blokiran. Nema ga.

Četvrta opcija je pisanje pravo u bazu. Ne. Gubite validaciju, lifecycle hooks i sistem draftova, a ne dobijate ništa što Vam prve tri opcije ne daju.

Izabrali smo treću. I odmah da kažem ono što se u tekstovima o MCP-u obično preskoči: sam server nam je vratio otprilike trećinu tog sata.

Šta MCP server rešava, a šta ne

MCP server nije integracija. To je API sa prijatnijim ulazom.

Razlika je u tome gde se CMS nalazi dok pišete. Sada je u istom razgovoru. Konverzija formata prestaje da bude zadatak i postaje sporedni efekat. Niko više ne pretvara Markdown u Blocks. Sadržaj jednostavno stigne kao Blocks.

A onda naiđete na ono što MCP server ne zna. Ne zna kako izgleda dobar članak na našem blogu. Ne zna da svaki tekst mora da nosi jedno stvarno priznanje da nešto nije prošlo kako treba. Ne zna da se nemačka verzija komponuje, a ne prevodi. Ne zna da meta opis ima između 50 i 160 karaktera i da ne sme da zvuči kao slogan.

Agent plus CMS bez uredničkih pravila je izuzetno brz način da objavite osrednji sadržaj. Brzina je stvarna. Osrednjost je isto toliko stvarna.

Taj drugi deo rešio je Claude skill. Skill je, tehnički, folder sa SKILL.md fajlom, referentnim fajlovima i skriptama. Agent ga učitava samo kada zadatak odgovara opisu. Naš drži pet formata članka, pravila glasa, listu zabranjenih fraza, ograničenja svakog polja, tačan redosled MCP poziva i posebna pravila za nemačku i srpsku verziju.

Najkraće rečeno, to je mali stilski priručnik koji se slučajno može izvršiti.

Podela posla je ispala ovako. MCP server je objavljivanje učinio mehaničkim. Skill ga je učinio ponovljivim na nivou koji možete da potpišete imenom. Ako imate vremena za samo jedno od ta dva, radite skill. Od tada svaki tekst izlazi ovim putem, sva tri jezika, nijedan ručno kroz admin panel.

Šta nas je koštalo i šta je ipak puklo

Podešavanje MCP servera trajalo je jedno popodne. Skill je trajao nedeljama i još uvek nije gotov. Taj odnos me je iznenadio. Verovatno je trebalo da mi bude očigledan.

Ujele su nas četiri stvari. Tri su tehničke i vredi ih zapisati. Četvrta nije bila kvar ni u jednom alatu, i zato je jedina koja je zaista važna.

Prvo, relacije se zakače tiho ili se ne zakače uopšte. Dokumentacija kaže da to-one relacija prima ili goli string sa vrednošću documentId, ili objekat sa documentId ključem. Objekat je prošao validaciju, vratio uspeh i nije zakačio ništa. Članak postoji, odgovor izgleda ispravno, a na sajtu nema ni autora, ni kategorije, ni tagova.

Gore od toga je što create i update odgovori prijavljuju relacije kao null i onda kada jesu zakačene. Odgovoru se ne veruje ni u jednom smeru. Jedina pouzdana provera je get poziv posle upisa. Koštalo nas je celu jednu sesiju debagovanja 25. jula 2026, a najveći deo te sesije otišao je na sumnjičenje frontenda, koji je bio potpuno nevin.

Drugo, update odbija da bude parcijalan. Menjate samo jednu relaciju, a payload i dalje mora da nosi title i slug. Bezopasno kada znate. Zbunjujuće sat vremena ako ne znate.

Treće, medija se ne može otpremiti kroz MCP. To je dokumentovano ograničenje, ne bag. Media polja referenciraju asset koji već postoji u biblioteci, a server neće da primi novi fajl. Naslovne slike zato ostaju ručne. Generišete karticu, otpremite je u media biblioteku, vratite agentu ID asseta, agent ga referencira. Oko 90 sekundi od onih 5 minuta.

Četvrto, i tu počinje deo koji je zapravo važan. QA članak objavljen 25. jula 2026. izašao je u sve tri jezičke verzije sa tačno 47 blokova. Pasus po pasus, jedan na jedan, engleski, nemački, srpski.

Tako ne izgleda nezavisno komponovanje. Tako izgleda prevod uglačan dok se ne počne čitati kao original. Nemački je bio tačan. Bio je i strukturno engleski članak sa nemačkim rečima u sebi, a nemački čitalac to oseti i onda kada ne ume da imenuje šta mu smeta.

Ništa u alatima nije otkazalo. Proces je uradio tačno ono što mu je rečeno i uradio je to brzo. Baš je brzina sakrila problem. Na 90 minuta bih to primetio. Na 5 minuta sam objavio.

Odatle izlazi jedini stav iz ovog projekta za koji stvarno garantujem. Kada uklonite trenje, uklonili ste i pauzu u kojoj biste nešto uhvatili. Ta pauza je bila besplatna i niste je birali, dobijali ste je uz sporost. Kada automatizujete tok posla, proveru morate da vratite namerno, jer besplatne više nema.

Šta bismo uradili drugačije

Provera između jezičkih verzija ide pre drugog članka, ne posle desetog. Skripta poredi da li se brojevi poklapaju, da li se neko ime pojavljuje u jednom jeziku a nedostaje u ostalima, i kako stoji struktura pasusa. Takva skripta Vam otvoreno kaže da Vaša nemačka verzija nije nemačka.

Dvadeset linija Python koda uhvatilo bi problem sa 47 blokova istog dana kada je nastao. Nismo ih napisali. To je cela priča.

Admin token treba suziti od prvog dana. Naš je bio širi nego što je trebalo, iz čistog nestrpljenja. Pošto vidljivost alata prati dozvole tokena, uzak token nije samo pitanje bezbednosti. On je i manja i jasnija površina o kojoj agent mora da razmišlja.

I treće, agent nema pravo da objavljuje. Draft sleti, čovek pročita, čovek pritisne dugme.

Kontraargument sam čuo i razumem ga. Zvuči kao poslednji komad pozorišta u inače automatizovanom procesu. Odbacujem ga, a posle članka sa 47 blokova odbacujem ga odlučnije nego ranije. To poslednje čitanje je jedino mesto na kom ceo proces ima prosuđivanje.

Ako je Vaš Strapi blog spori deo

Ako je Vaš CMS sasvim u redu, a objavljivanje u njega deo koji svi u timu izbegavaju, to se popravlja. Obično je i manji posao nego što izgleda spolja.

U Conimex IT-u gradimo blog i sadržajne frontendove na Strapiju. Konkretno: React ili Next.js frontend, Blocks renderer koji izlazi na kraj sa stvarnim sadržajem a ne samo sa srećnim slučajem, lokalizovano rutiranje koje ne lomi postojeće URL-ove, SEO i Open Graph polja povezana sa tagovima koje čitaju i Google i AI sistemi za odgovore. Ako Vam treba, i proces objavljivanja iza svega toga, da tim prestane da živi u admin panelu.

Ako Vam se ovo poklapa sa nečim što upravo rešavate, pišite na [email protected]. Odgovaram lično.

#Strapi#MCP#Headless CMS#Automatizacija#AI

Često postavljana pitanja

Šta je Strapi MCP server?

MCP server ugrađen u Strapi od verzije 5.47. Omogućava AI klijentima kao što su Claude Code, Claude Desktop ili Cursor da kroz Content Manager kreiraju, čitaju, menjaju, objavljuju i povlače sadržaj sa objave. Uključuje se u config/server.js, autentifikacija ide admin tokenom, a sve što agent može da uradi ograničeno je dozvolama tog tokena.

Da li je bezbedno pustiti AI agenta da piše u produkcioni CMS?

Bezbedno je tačno onoliko koliko je bezbedan token. Dozvole se proveravaju na nivou šeme, pa ponovo u toku rada. Token samo za čitanje izlaže isključivo alate za listanje i čitanje. Token vezan za jedan tip sadržaja ne može da dira ostale. Preporuka: namenski uzak token po svakom slučaju upotrebe, bez dozvole za objavljivanje, i čovek koji odobrava svaki draft.

Da li su Vam potrebni Claude Skills da biste koristili MCP server?

Ne. MCP radi i sam i napraviće sadržaj iz obične instrukcije. Skill je bitan zbog doslednosti: ista struktura, isti glas, ista SEO polja popunjena na isti način svaki put. Bez tog sloja dobijate brz sadržaj, a ne dobar.

Kako MCP server stoji sa slikama i višejezičnim sadržajem?

Višejezični sadržaj radi. Alati primaju locale parametar kada je i18n uključen, pa jedan dokument nosi više jezičkih verzija. Sa slikama je samo delimično: media polja referenciraju asset koji je već u biblioteci, a MCP server ne može da otpremi novi fajl, tako da pravljenje slike ostaje ručni korak.

Može li Conimex IT ovo da napravi za nas?

Da, i frontend je obično veća polovina posla. Radimo blog i sadržajne frontendove na Strapiju u Reactu i Next.js-u: Blocks renderer, višejezično rutiranje, strukturirani podaci, SEO polja. Možemo da povežemo i MCP i agentski proces objavljivanja iza toga, da urednici prestanu da kopiraju i lepe. Pišite na [email protected].

Imate projekat na umu?

Hajde da popričamo kako Conimex IT može da vam pomogne da osmislite, izgradite i objavite svoj sledeći proizvod.

Kontaktirajte nas