Tekst: Kristijan Sekereš
Kako možemo da pomognemo: Razvoj AI agenata i MCP integracijaPogledajte usluguWebMCP u oktobru 2026: kako da veb-sajt postane upotrebljiv za AI agente i šta origin trial zaista znači

WebMCP omogućava veb-stranici da AI agentu preda kratku listu stvari koje on može da uradi, svaku sa imenom, opisom i šemom ulaza, umesto da agent stranicu odgonetava iz snimaka ekrana i DOM-a. Agent koji pronađe alat check_order_status može da ga pozove sa brojem porudžbine. Bez njega agent mora sam da pronađe pravo polje i da klikne na pravo dugme.
To je obećanje. Stanje na dan 22. oktobra 2026. uže je nego što većina tekstova sugeriše. WebMCP je predlog jedne W3C Community Group, a ne standard. Chrome ga vodi kao origin trial, bez odluke da ga isporuči. Alate poziva jedan potrošački agent (pregledač ugrađen u desktop aplikaciju ChatGPT-a), a taj agent ignoriše deklarativnu verziju sa formularima, koja je 8. oktobra izbačena iz specifikacije. Tim koji razvija Safarijev pregledački mehanizam protivi se predlogu; Mozilla je neutralna.
Ovaj članak je za programere i vlasnike proizvoda koji odlučuju da li sada da dodaju WebMCP. Objašnjava šta je taj API, ko ga poziva, kako da ga uključite za prave posetioce, kako da pišete alate koji agentu ne stavljaju u ruke napunjen pištolj i šta prvo da popravite ako želite da agenti uopšte koriste vaš sajt.
Šta je WebMCP
Specifikacija definiše JavaScript API na document.modelContext preko kojeg stranica registruje alate: „WebMCP API omogućava veb-aplikacijama da AI agentima pružaju alate zasnovane na JavaScriptu.“ Alat ima name, description i povratni poziv execute, a opciono i title, inputSchema (JSON Schema) i annotations. Kada agent pozove alat, izvršava se kod same stranice, u korisnikovoj sesiji.
Tri stvari o njemu lako je pogrešno razumeti:
- Nije standard. Dokument je Draft Community Group Report grupe Web Machine Learning Community Group i to sam kaže: „Nije W3C standard niti je na W3C putu ka standardu.“ Chromeova sopstvena dokumentacija ga naziva „predloženim veb standardom“. Datum izveštaja menja se na svakih nekoliko dana u oktobru; njegovi urednici su iz Microsofta i Googlea.
- U njemu nema MCP-a. Specifikacija kaže da se stranice koje ga koriste „mogu posmatrati kao Model Context Protocol serveri koji implementiraju alate u skriptu na strani klijenta“, a zatim da „ne propisuje format u kojem se alati izlažu pregledačkom agentu“. Mozilin pregled to je rekao otvoreno: „Ime je pogrešno ... Ovde nema MCP-a.“ WebMCP alat se ne povezuje sa vašim backend MCP serverom i ne zamenjuje ga.
- Ne čini vas pronalazljivim. Chromeova dokumentacija sama navodi to ograničenje: „Klijenti i pregledači moraju direktno da posete sajt da bi znali da li ima alate koji mogu da se pozovu.“ WebMCP pomaže agentu koji je već na vašoj stranici. Ništa ne radi za to da vas neko pronađe.
API je ograničen na bezbedne kontekste (secure contexts) i zaštićen politikom Permissions Policy tools, čija je podrazumevana lista dozvoljenih 'self', pa iframe sa drugog origina ne može da registruje alate osim ako to ne dozvoli stranica koja ga ugrađuje.
Gde stvari stoje 22. oktobra 2026
| Ko | Status | Izvor |
|---|---|---|
| Chrome | Origin trial od Chromea 149 do 156; produženje do 162 zatraženo je 29. septembra 2026, uz jedno uslovno odobrenje; status funkcije „Proposed“, bez Intent to Ship | chromestatus, blink-dev |
| Microsoft Edge | Sopstveni origin trial od Edgea 150, ističe 30. marta 2027; „Ova funkcija možda nikada neće biti uključena izvan ovog triala“ | Edge origin trials |
| Desktop aplikacija ChatGPT-a | Poziva alate kao „site tools“ (alati sajta), samo imperativni API, samo stranica najvišeg nivoa | OpenAI |
| Gemini in Chrome | „uskoro će podržati WebMCP API-je“ (19. maja 2026); od tada bez najave | Chrome at I/O 2026 |
| Shopify | Alati su aktivni na svakoj prodavnici zasnovanoj na Liquidu i u Hydrogen developer previewu od 5. avgusta; checkout alati od 28. septembra | Shopify changelog |
| Safari (WebKit) | „position: oppose“ | WebKit standards positions |
| Firefox (Mozilla) | „position: neutral“ | Mozilla standards positions |
Chrome 156, poslednje izdanje iz prvobitnog roka triala, stigao je na stabilni kanal 20. oktobra 2026. Chrome 162, kraj zatraženog produženja, planiran je za stabilni kanal 2. februara 2027. Da li je produženje aktivno nije moglo da se potvrdi iz konzole triala, pa planirajte kao da je verovatno, ali ne i sigurno.
Zahtev za produženje objašnjava zašto Chrome traži još vremena: „Povratne informacije iz origin triala ukazale su na poboljšanja API-ja, koja implementiramo.“ U istoj niti Googleov Dominic Farolino napisao je da se tim „nada da će preći na I2S u okviru perioda produženja“, to jest da će zatražiti isporuku, i da je „imperativni API mnogo popularniji od deklarativnog, pa više ulažemo u njega kao odgovor na potrebe korisnika.“ Pomenuo je i da se prototipuju continuation API, API za stabilnost alata i ograničenja veličine alata. API za koji danas pišete kod promeniće se.
Ko zaista poziva alate
Za registrovanje alata ne treba ništa. Za njihovo korišćenje potreban je agent, a lista agenata je kratka.
Chromeova sopstvena test proširenja. Chromeova dokumentacija nudi dva proširenja, među njima Model Context Tool Inspector, za isprobavanje alata u demo primerima i na vašim stranicama. Traže vaš sopstveni API ključ modela, a Chrome napominje: „Ova proširenja su odvojena od Gemini in Chrome.“ To su alati za programere, a ne kupci.
Ugrađeni pregledač ChatGPT-a. Objava OpenAI-jevog zaposlenog na forumu za programere 25. avgusta 2026. kaže: „Site tools su ChatGPT-ova implementacija predloženog standarda WebMCP.“ Njegova dokumentacija postavlja uslove: određeni modeli, najnovija desktop aplikacija, administrator koji to dozvoljava u Enterprise radnim prostorima, nikakvi Edu radni prostori i „Dostupnost zavisi i od postepenog uvođenja“. Navodi i šta ne podržava: „Deklarativni API: alati definisani HTML atributima formulara nisu dostupni kao site tools“, kao i alate registrovane unutar iframe-ova, čak i onih sa istog origina. OpenAI-jevo uputstvo je jasno: „Koristite JavaScript da registrujete alate na stranici najvišeg nivoa“. Dokumentacija ne kaže da li je stranici potreban Chromeov origin trial token da bi ChatGPT video njene alate.
Gemini in Chrome. Google je u maju rekao da će „uskoro podržati WebMCP API-je“. Nismo našli nijedan primarni izvor posle toga koji kaže da je to učinjeno. Ne gradite plan na tome još.
Svi ostali idu rezervnim putem. Svaki agent u svakom pregledaču i dalje čita stranice na stari način. Chrome to kaže u sopstvenoj proceni rizika: „Pregledački agenti u Chromeu i dalje mogu da upravljaju sajtovima kao i ranije, simuliranjem ponašanja korisnika.“ OpenAI: „Ako nema odgovarajućeg alata, agent i dalje može da koristi svoje uobičajene mogućnosti pregledača.“ Sajt bez WebMCP-a nije nevidljiv agentima. Sajt sa pokvarenim dugmadima i neoznačenim poljima težak je svima njima.
Imperativni API
Ovo je verzija koju definiše specifikacija, koju podržava ChatGPT i koju, prema Chromeu, programeri više vole. Alat obavija logiku koju stranica već ima. Evo pretrage samo za čitanje za prijavljenog kupca, po uzoru na Chromeovu dokumentaciju i OpenAI-jev način provere podrške (feature detection):
if (typeof document.modelContext?.registerTool === 'function') {
const tools = new AbortController();
await document.modelContext.registerTool({
name: 'check_order_status',
description: 'Look up the status and tracking link of one of the signed-in customer\'s orders by its order number.',
inputSchema: {
type: 'object',
properties: {
orderNumber: { type: 'string', description: 'Order number as printed in the confirmation email' },
},
required: ['orderNumber'],
},
annotations: { readOnlyHint: true },
execute: async ({ orderNumber }, { signal }) => {
const res = await fetch(`/api/orders/${encodeURIComponent(orderNumber)}`, { signal });
if (!res.ok) return `No order ${orderNumber} was found on this account.`;
const order = await res.json();
return `Order ${orderNumber}: ${order.status}. Tracking: ${order.trackingUrl ?? 'not available yet'}.`;
},
}, { signal: tools.signal });
// When the page state no longer fits the tool:
// tools.abort();
}
Šta je u njemu važno:
- Ime, opis i šema su ono što model čita. Chrome preporučuje najviše 500 znakova po opisu alata, 150 po opisu parametra, 30 po imenu alata i parametra i 1,5K znakova po izlazu alata, i napominje da „ove preporuke podležu promenama“. Objašnjenje uz specifikaciju (explainer) upozorava da „izlaganje previše alata (npr. desetina ili stotina) može ozbiljno da pogorša performanse agenta“: registrujte ono što je potrebno trenutnom stanju stranice, a ostalo uklonite signalom iz
AbortController. - Drugi argument funkcije
executenosiAbortSignal, pa otkazan poziv može da zaustavi zahtev koji je u toku. - Anotacije su nagoveštaji.
readOnlyHintoznačava pretragu.consequentialHintoznačava sve što rezerviše, kupuje, šalje, briše ili prenosi, a Chromeova dokumentacija kaže da „omogućava agentima i pregledačima da nametnu obavezne zahteve za potvrdu korisnika“.untrustedContentHintoznačava izlaz koji nosi recenzije, sadržaj korisnika ili podatke trećih strana. Anotacijadebuggingpostoji od Chromea 156. - I kod stranice može da navodi i pokreće alate, preko
document.modelContext.getTools()iexecuteTool(), a događajtoolchangeaktivira se kada se lista promeni. Argumenti prosleđeni kao JSON string funkcijiexecuteTool()zastareli su od Chromea 155.
React, Angular i Vue imaju po jedan eksperimentalni pomoćni paket, a npm paket webmcp-types daje TypeScript tipove. Stariji tutorijali koji pozivaju navigator.modelContext zastareli su: specifikacija je API prebacila na document 27. maja 2026.
Deklarativni API: u Chromeovom trialu, izvan specifikacije
Deklarativna verzija pretvara postojeći HTML formular u alat pomoću dva atributa. Privlačna je za stare sajtove pune formulara, jer ništa drugo ne mora da se menja:
<form toolname="request_quote"
tooldescription="Send a request for a quote. The user reviews the form and submits it."
action="/quote" method="post">
<label for="email">Work email</label>
<input id="email" name="email" type="email" required>
<label for="details">What you need</label>
<textarea id="details" name="details" required></textarea>
<button type="submit">Send</button>
</form>
<script>
document.querySelector('form[toolname]').addEventListener('submit', (e) => {
e.preventDefault();
const sent = sendQuoteRequest(new FormData(e.target)); // your existing submit, returning a promise
if (e.agentInvoked) e.respondWith(sent.then(() => 'Quote request sent.'));
});
</script>
U Chromeovom trialu, „Kada agent pozove toolname, pregledač stavlja formular u fokus i popunjava njegovo polje. Formular ostaje vidljiv korisniku.“ Pregledač gradi parametre iz kontrola: njihovih imena, elemenata <label>, atributa required i opcija elementa <select>. Ako formular ne nosi toolautosubmit, „Korisnik mora ručno da klikne na Submit da bi završio zadatak“, što je upravo ono što želite za sve što zadaje porudžbinu ili šalje upit. SubmitEvent.agentInvoked javlja vašem handleru da je agent popunio formular, a respondWith(), posle preventDefault(), vraća ishod agentu. Slušajte događaje toolactivated i toolcancel na document.modelContext pomoću addEventListener: window.ontoolactivated i window.ontoolcancel nisu podržani od Chromea 156.
Caka je u statusu. Najnovija izmena u explaineru, od 8. oktobra 2026, nosi naslov „Remove declarative API from the spec for now“, a sada piše da se deklarativni pandan „istražuje zasebno ... ali trenutno nije deo specifikacije.“ ChatGPT ga ne podržava. Chrome ga i dalje dokumentuje u trialu, a Googleov Farolino je u Mozilinoj niti tvrdio da „vidimo vrednost u deklarativnom predlogu jednostavno zbog zastarelih sajtova, posebno onih zasnovanih na formularima“. Tretirajte ga kao Chromeov eksperiment unutar eksperimenta: u redu je isprobati ga, ali nije pametno da bude vaš jedini put.
Uključivanje za prave posetioce
Zastavica (chrome://flags/#enable-webmcp-testing) uključuje WebMCP u vašem pregledaču radi testiranja. Posetiocima ne znači ništa. Za njih stranici treba origin trial token.
- Registrujte origin na Chromeovoj stranici WebMCP triala. Origin trialovi su „javni i otvoreni za sve programere“, a token „uključuje funkciju za sve korisnike na vašem originu“.
- Šaljite token na svakoj stranici koja treba da izlaže alate, kao
<meta http-equiv="origin-trial" content="...">u elementu<head>ili kao response headerOrigin-Trial:. Token može i da se ubaci iz skripte. Jedan token pokriva jedan origin; stranica može da nosi više njih. - Obnovite ga. Kada se trial produži, Chrome traži od registrovanih da „obezbede novi token za svaki origin upisan u trial“, a „Chrome ignoriše nevažeće ili istekle tokene“. Istekao token otkazuje tiho: alati jednostavno prestaju da se pojavljuju.
- Za Edge se registrujte zasebno, na Edgeovoj stranici triala. Njegovi uslovi traže da „gde je moguće, pristanete da primenite feature detection / graceful degradation“.
Lighthouseove WebMCP provere takođe traže registraciju u trialu, pa će sajt koji ih testira bez tokena videti da padaju.
Pisanje alata koje je bezbedno pozivati
Bezbednosni odeljak specifikacije nije normativan i otvoreno kaže na kome je teret: sprečavanje manipulisanja agentom „prvenstveno je odgovornost bezbednosnog modela samog agenta, a ne nešto što ova specifikacija može normativno da nametne.“ Vaši alati ipak odlučuju koliko štete može da napravi manipulisan agent.
- Nagoveštaji mogu da lažu, pa im agenti neće verovati. Specifikacija: „zlonameran sajt može da izostavi ili lažno predstavi te nagoveštaje.“ OpenAI: „Ime alata ili tvrdnja da on samo čita podatke nije dokaz onoga što on radi“, a svaki poziv u njegovom pregledaču prolazi bezbednosnu proveru, uz potvrdu koja je i dalje obavezna za kupovine i slične radnje. Svejedno anotirajte iskreno. To je ono što pažljiv agent koristi da odluči kada da pita korisnika.
- Tačno opišite efekte. Loš primer iz same specifikacije je alat opisan kao „Finalizuje trenutnu korpu“ koji „zapravo pokreće kupovinu. Korisnik nije nameravao ništa da kupi.“ Ako alat naplaćuje karticu, opis to kaže, a
consequentialHintjetrue. - Autorizujte na serveru, svaki put. Alat radi u korisnikovoj sesiji: specifikacija beleži da „agenti mogu da naslede identitet korisnika i kontekst autentifikacije iz pregledača.“ Poziv alata je zahtev tog korisnika i podleže istim proverama. Savet iz explainera i dalje važi: „Validirajte strogo u kodu, labavo u šemi“, jer stroge greške šeme mogu da zaglave agente.
- Računajte na prompt injection. Specifikacija ga navodi na prvom mestu, u tri oblika: uputstva skrivena u metapodacima alata, u izlazu alata i napadi koji koriste alate kao mete. Izlaz koji nosi tekst koji su napisali drugi (recenzije, poruke, pitanja o proizvodu) pripada pod
untrustedContentHinti treba da se vrati kao podaci, a ne kao proza koju bi agent mogao da shvati kao uputstva. - Namerno isključite stranice. Header
Permissions-Policy: tools=()čini API nedostupnim dokumentu i svemu što on ugrađuje. Kandidati su podešavanja naloga, stranice za plaćanje i administratorski ekrani.
Jedna napomena o Chromeovoj dokumentaciji: njena stranica o bezbednosti kaže da nacrt uključuje metodu requestUserInteraction() kojom se korisnik pita usred rada alata. Nacrt specifikacije od 20. oktobra 2026. nema takvu metodu, a explainer i dalje navodi potvrdu korisnika kao otvoreno pitanje. Ne projektujte rešenje oko nje.
Čemu se protive inženjeri Safarija i Firefoxa
Primedbe vredi pročitati i ako gradite samo za Chrome, jer opisuju kako WebMCP u praksi može da pođe naopako.
Stav WebKita, objavljen 3. juna 2026, tvrdi da stranice koje je teško koristiti treba popraviti u HTML-u i ARIA-i, „gde korist imaju korisnik, pomoćna tehnologija i agenti“, i da se uz alate „krhkost samo seli iz DOM-a u opise alata.“ Agenta posmatra kao pomoćnu tehnologiju koju ne treba izdvajati: „WebMCP radi suprotno, pretvarajući ‚agent upravlja‘ u vidljivu činjenicu.“ I napominje da predlog „nema model pristanka ni reverzibilnosti za posledične radnje“.
Mozilla je u avgustu zauzela neutralan stav: WebMCP „uvodi potencijalno vrednu apstrakciju“, ali „otvara površinu čija stvarna dinamika ostavlja previše otvorenih pitanja da bi se bezrezervno podržala“. Upozorava da sajtovi mogu „da pružaju alate koji ne odgovaraju iskustvu korisnika na stranici“, na primer da „unesu prompt injection koji je nevidljiv tipičnim korisnicima“. Pojedini Mozilini inženjeri pokazali su interesovanje za imperativni primitiv za pozivanje funkcija; to nije podrška Mozille.
Sam Chrome ocenjuje da je rizik da drugi pregledački mehanizmi ne usvoje WebMCP nizak za korisnike. Druga strana toga je da sajt danas ne dobija ništa u Safariju ili Firefoxu dodavanjem alata.
Šta danas radi za svakog agenta
Svaki pregledački agent čita snimke ekrana, HTML i stablo pristupačnosti. Googleovo web.dev uputstvo o sajtovima prilagođenim agentima kaže da agenti „koriste DOM i stablo pristupačnosti da dobiju čistu, strukturiranu listu interaktivnih elemenata, a zatim je ukrštaju sa vizuelnim prikazom“. Njegova praktična lista je kratka:
- Koristite prave elemente
<button>i<a>, a ne<div>i<span>na koje se klikće. - Povežite svaki
<label>sa njegovim poljem pomoćufor. - Bez providnih slojeva preko interaktivnih elemenata i bez ičeg interaktivnog manjeg od 8 kvadratnih piksela.
- Stabilan raspored koji se ne pomera baš kada agent treba da klikne.
Njegov zaključak: „Sve što predlažemo da bi sajt bio ‚spreman za agente‘ čini sajtove boljim i za ljude.“ To je i, skoro doslovno, ono što WebKit traži umesto WebMCP-a. Ako vaš checkout ne prolazi proveru pristupačnosti, to popravite pre nego što napišete i jedan alat.
Lighthouse ima kategoriju Agentic Browsing od verzije 13.2.0 (1. maja 2026), dostupnu u Chromeu od verzije 150, a za PageSpeed Insights API uključenu u Lighthouseu 13.4.1 (20. jula 2026). Proverava podskup provera pristupačnosti koje su važne za mašine, stabilnost rasporeda, registrovane WebMCP alate i formulare bez njih, ispravnost šeme i prisustvo datoteke llms.txt. Chrome je naziva „informativnom i bez referentnih vrednosti“: nema ocene od 0 do 100. Što se tiče llms.txt, Googleovo uputstvo za pretragu kaže da takve datoteke ignoriše: dodavanje jedne „neće ni naškoditi ni pomoći vidljivosti ili rangiranju vašeg sajta u Google pretrazi“. To što Lighthouse proverava datoteku ništa ne menja.
Da li sada treba dodati WebMCP?
Na Shopifyju sa Liquid temom: nema posla. Shopifyjevi alati za prodavnicu, korpu i checkout već su aktivni, „Ništa ne treba instalirati ni podešavati“, uz Shopifyjevu sopstvenu napomenu da je „podrška za agente trenutno ograničena na pregledače zasnovane na Chromiumu preko origin triala“. Headless prodavnice pokrivene su samo u Hydrogen developer previewu. Nismo našli nijednu drugu platformu za e-trgovinu, pružaoca usluga plaćanja ili CDN koji uključuje WebMCP svojim korisnicima.
Na prilagođenom, headless ili zastarelom sajtu: zavisi od toga ko su vaši korisnici.
- Ako vaši kupci ili osoblje koriste pregledač iz desktop aplikacije ChatGPT-a, imperativni alati na stranici najvišeg nivoa jedini su koji do njih stižu. Počnite sa dva ili tri alata samo za čitanje oko vašeg najčešćeg zadatka (status porudžbine, dostupnost, ponuda), uz feature detection i origin trial token, i izmerite da li ih iko poziva.
- Ako želite jeftino da eksperimentišete u Chromeu, deklarativni atributi na postojećim formularima su posao od nekoliko sati. Nemojte da stanete na tome: ChatGPT ih neće videti, a specifikacija ih više ne sadrži.
- Ako nemate dokaza da agenti posećuju vaš sajt, najpre popravite semantiku, oznake i raspored. Taj posao pomaže svakom agentu i svakoj osobi koja koristi pomoćnu tehnologiju, a ništa od njega neće propasti kada se API promeni.
U svakom slučaju, običan interfejs ostavite potpunim. OpenAI-jev savet: „Sačuvajte uobičajeni interfejs za ljude i pregledače koji ne podržavaju WebMCP.“
Šta bi moglo da se promeni
- Intent to Ship. Chromeov tim se nada da će ga zatražiti u okviru perioda produženja, koji se završava Chromeom 162 (2. februara 2027) ako produženje važi. Isporuka bi uklonila potrebu za tokenima u Chromeu.
- Oblik API-ja. Prototipuju se continuation API (rezultati koji stižu na sledeću stranicu posle navigacije), API za stabilnost alata i ograničenja veličine. Nedavna izdanja već su uklonila
window.ontoolactivatedi argumente prosleđene kao string. - Sudbina deklarativnog API-ja. Izvan specifikacije „za sada“, i dalje u Chromeovom trialu.
- Pozivaoci. Podrška za Gemini in Chrome je najavljena, ali nije isporučena. Stranica sa statusom implementacije u specifikaciji navodi WebMCP za veb-aplikacije na Metinim naočarima Ray-Ban Display kao „uskoro dostupan“, kao i eksperimentalnu podršku u Braveovom asistentu Leo.
Ako sada dodajete alate, držite ih u jednom modulu, uz feature detection, da sledeća promena bude jedna izmena.
Gde potražiti pomoć
Gradimo delove veb-sajta i njegovog backenda koje agenti dotiču: alate koji obavijaju postojeću logiku porudžbina, rezervacija i naloga, autorizaciju koja poziv agenta tretira kao svaki drugi zahtev tog korisnika, kao i popravke semantike i pristupačnosti zbog kojih je sajt upotrebljiv pre nego što postoji ijedan alat. Naša usluga razvoja AI agenata i MCP integracije pokriva WebMCP alate, kao i backend MCP servere, koji su nešto drugo uprkos imenu.
Ako želite da znate šta agent danas vidi na vašem sajtu i da li bi alati nešto promenili za vaše kupce, pišite na office@c9group.dev.
AI i softver
Novi vodiči i izmene propisa, mejlom
Kada se propis promeni, rok pomeri ili objavimo novi vodič, šaljemo vam ga mejlom.