Текст: Kristijan Sekereš
Како можеме да помогнеме: AI агенти и MCP интеграцијаПогледнете ја услугатаWebMCP во октомври 2026: како веб-сајтот да стане употреблив за AI-агенти и што навистина значи origin trial

WebMCP му овозможува на веб-страницата да му предаде на AI-агентот краток список на работи што може да ги направи, секоја со име, опис и шема на влезот, наместо агентот сам да ја дешифрира страницата од слики на екранот и од DOM. Агент што ќе најде алатка check_order_status може да ја повика со број на нарачка. Без неа, агентот мора да го најде вистинското поле и да го кликне вистинското копче.
Тоа е ветувањето. Состојбата на 22 октомври 2026 година е потесна отколку што сугерираат повеќето написи. WebMCP е предлог на W3C Community Group, а не стандард. Chrome го води како origin trial, без донесена одлука да го пушти во стабилните верзии. Алатките ги повикува еден потрошувачки агент (прелистувачот вграден во десктоп апликацијата ChatGPT), а тој агент ја игнорира декларативната верзија со формулари, која беше отстранета од спецификацијата на 8 октомври. Тимот за прелистувачкиот engine на Safari е против предлогот; Mozilla е неутрална.
Статијата е за програмери и сопственици на производи што одлучуваат дали сега да додадат WebMCP. Опфаќа што е API-то, кој го повикува, како да се вклучи за вистински посетители, како да се напишат алатки што не му даваат на агентот наполнет пиштол и што да се поправи прво ако сакате агентите воопшто да го користат вашиот сајт.
Што е WebMCP
Спецификацијата дефинира JavaScript API на document.modelContext, преку кое страницата регистрира алатки: „WebMCP API им овозможува на веб-апликациите да им нудат на AI-агентите алатки засновани на JavaScript.“ Алатката има name, description и повратна функција execute, а по избор и title, inputSchema (JSON Schema) и annotations. Кога агентот ќе ја повика алатката, се извршува кодот на самата страница, со сесијата на корисникот.
Три работи во врска со него лесно се погрешно сфаќаат:
- Не е стандард. Документот е Draft Community Group Report на Web Machine Learning Community Group и тоа го вели сам: „Не е W3C стандард и не е на W3C Standards Track.“ Документацијата на Chrome го нарекува „предложен веб-стандард“. Датумот на извештајот во октомври се менува на секои неколку дена; неговите уредници се од Microsoft и Google.
- Во него нема MCP. Спецификацијата вели дека страниците што го користат „можат да се сфатат како Model Context Protocol сервери што ги имплементираат алатките во скрипта од страната на клиентот“, а потоа дека „не го пропишува форматот во кој алатките му се изложуваат на агентот на прелистувачот“. Прегледот на Mozilla беше директен: „Името е погрешно ... Овде нема MCP.“ Една WebMCP алатка не се поврзува со вашиот MCP сервер на backend и не го заменува.
- Не ве прави откриени. Документацијата на Chrome сама го наведува ограничувањето: „Клиентите и прелистувачите мора директно да го посетат сајтот за да знаат дали има алатки што можат да се повикаат.“ WebMCP му помага на агент што веќе е на вашата страница. За тоа да бидете пронајдени не прави ништо.
API-то е ограничено на безбедни контексти (secure contexts) и е заштитено со Permissions Policy tools, чија стандардна листа на дозволени е 'self', па iframe од друг origin не може да регистрира алатки освен ако страницата што го вградува не го дозволи тоа.
Состојбата на 22 октомври 2026 година
| Кој | Статус | Извор |
|---|---|---|
| Chrome | Origin trial од Chrome 149 до 156; продолжување до 162 побарано на 29 септември 2026, со едно условно одобрение; статус на функцијата „Proposed“, без Intent to Ship | chromestatus, blink-dev |
| Microsoft Edge | Сопствен origin trial од Edge 150, истекува на 30 март 2027; „Оваа функција можеби никогаш нема да се овозможи надвор од овој trial“ | Edge origin trials |
| Десктоп апликацијата ChatGPT | Ги повикува алатките како „site tools“, само императивен API, само страница од највисоко ниво | OpenAI |
| Gemini in Chrome | „наскоро ќе ги поддржува интерфејсите WebMCP API“ (19 мај 2026); оттогаш нема соопштение | Chrome at I/O 2026 |
| Shopify | Алатките се во живо на секоја продавница изградена на Liquid и во developer preview на Hydrogen од 5 август; алатките за наплата од 28 септември | Shopify changelog |
| Safari (WebKit) | „position: oppose“ | WebKit standards positions |
| Firefox (Mozilla) | „position: neutral“ | Mozilla standards positions |
Chrome 156, последната верзија од првобитниот период на origin trial, стигна на стабилниот канал на 20 октомври 2026 година. Chrome 162, крајот на побараното продолжување, е предвиден за стабилниот канал на 2 февруари 2027 година. Дали продолжувањето е активно не можеше да се потврди од конзолата на origin trial, па сметајте дека е веројатно, но не и сигурно.
Барањето за продолжување објаснува зошто Chrome сака повеќе време: „Повратните информации од OT укажуваат на подобрувања на API-то, кои ги имплементираме.“ Во истата дискусија, Dominic Farolino од Google напиша дека тимот „се надева дека ќе премине на I2S во рамките на периодот на продолжувањето“, односно дека ќе побара да ја пушти функцијата во стабилните верзии, и дека „Императивниот API е многу попопуларен од декларативниот, па повеќе вложуваме во него како одговор на потребите на корисниците.“ Спомена и continuation API, API за стабилност на алатките и ограничувања на големината на алатките што се прототипираат. API-то според кое пишувате денес ќе се промени.
Кој навистина ги повикува алатките
Регистрирањето алатки не бара ништо. За користењето треба агент, а списокот на агенти е краток.
Тест-екстензиите на самиот Chrome. Документацијата на Chrome нуди две екстензии, меѓу нив и Model Context Tool Inspector, за да се пробаат алатките во демонстрации и на вашите страници. Им треба сопствен API-клуч за модел, а Chrome забележува: „Овие екстензии се одделни од Gemini in Chrome.“ Тоа се алатки за програмери, а не купувачи.
Вградениот прелистувач на ChatGPT. Објава на вработен во OpenAI на неговиот форум за програмери рече на 25 август 2026 година: „Site tools е имплементацијата на ChatGPT на предложениот стандард WebMCP.“ Неговата документација поставува услови: одредени модели, најновата десктоп апликација, администратор што го дозволува тоа во работните простори Enterprise, не и работни простори Edu, а „Достапноста зависи и од постепеното воведување“. Наведува и што не поддржува: „Декларативен API: алатките дефинирани преку атрибути на HTML-формулар не се достапни како site tools“, како и алатки регистрирани во iframe-ови, вклучително и оние од истиот origin. Упатството на OpenAI е јасно: „Користете JavaScript за да ги регистрирате алатките на страницата од највисоко ниво“. Документацијата не вели дали на страницата ѝ треба токен за Chrome origin trial за ChatGPT да ги види нејзините алатки.
Gemini in Chrome. Google во мај рече дека „наскоро ќе ги поддржува интерфејсите WebMCP API“. Од тогаш не најдовме примарен извор што вели дека го прави тоа. Не градете план врз тоа засега.
Сите останати се враќаат на старото. Секој агент во секој прелистувач сè уште ги чита страниците на стариот начин. Chrome го вели тоа во својата оценка на ризикот: „Агентите во прелистувачот Chrome можат и понатаму да управуваат со сајтовите како досега, симулирајќи го однесувањето на корисниците.“ OpenAI: „Ако нема соодветна алатка, агентот можеби сепак ќе може да ги користи своите вообичаени можности за прелистување.“ Сајт без WebMCP не е невидлив за агентите. Сајт со расипани копчиња и полиња без ознаки е тежок за сите нив.
Императивниот API
Ова е верзијата што ја дефинира спецификацијата, онаа што ја поддржува ChatGPT и онаа што, според Chrome, ја претпочитаат програмерите. Алатката обвиткува логика што страницата веќе ја има. Еве пребарување само за читање за најавен клиент, по обликот од документацијата на Chrome и feature detection (проверка дали прелистувачот ја поддржува функцијата) на OpenAI:
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();
}
Што е важно во него:
- Името, описот и шемата се она што го чита моделот. Chrome препорачува најмногу 500 знаци за опис на алатка, 150 за опис на параметар, 30 за име на алатка и параметар и 1,5 илјади знаци за излез од алатка, и забележува дека „Овие препораки може да се променат“. Објаснувањето (explainer) на спецификацијата предупредува дека „Изложувањето премногу алатки (на пр. десетици или стотици) може сериозно да ја намали работата на агентот“: регистрирајте го она што го бара тековната состојба на страницата, а остатокот отстранете го со сигналот на
AbortController. - Вториот аргумент на
executeносиAbortSignal, па откажаното повикување може да запре барање што е во тек. - Анотациите се hint-ови.
readOnlyHintобележува пребарување.consequentialHintобележува сè што резервира, купува, испраќа, брише или пренесува, а документацијата на Chrome вели дека „им овозможува на агентите и прелистувачите да наметнат задолжителни прозорци за потврда од корисникот“.untrustedContentHintобележува излез што содржи оценки, содржина од корисници или податоци од трети лица. Анотацијаdebuggingпостои од Chrome 156. - Кодот на страницата може и да ги наведува и извршува алатките, со
document.modelContext.getTools()иexecuteTool(), а настанотtoolchangeсе активира кога списокот се менува. Аргументите наexecuteTool()во облик на JSON-стринг се застарени од Chrome 155.
React, Angular и Vue имаат по една експериментална помошна библиотека, а npm пакетот webmcp-types дава типови за TypeScript. Постарите упатства што повикуваат navigator.modelContext се застарени: спецификацијата го премести API-то на document на 27 мај 2026 година.
Декларативниот API: во пробата на Chrome, надвор од спецификацијата
Декларативната верзија претвора постоечки HTML-формулар во алатка со два атрибута. Привлечна е за стари сајтови со многу формулари, бидејќи ништо друго не мора да се менува:
<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>
Во пробата на Chrome, „Кога агентот ќе го повика toolname, прелистувачот го фокусира формуларот и го пополнува неговото поле. Формуларот останува видлив за корисникот.“ Прелистувачот ги гради параметрите од контролите: нивните имиња, нивните <label>, required и опциите на <select>. Освен ако формуларот нема toolautosubmit, „Корисникот мора рачно да кликне на Submit за да ја заврши задачата“, а тоа е токму она што го сакате кај сè што прима нарачка или испраќа лид. SubmitEvent.agentInvoked му кажува на вашиот handler дека формуларот го пополнил агент, а respondWith(), по preventDefault(), му го враќа исходот на агентот. Слушајте ги настаните toolactivated и toolcancel на document.modelContext со addEventListener: window.ontoolactivated и window.ontoolcancel не се поддржани од Chrome 156.
Проблемот е нејзиниот статус. Најновата промена во објаснувањето, од 8 октомври 2026 година, е насловена „Засега да се отстрани декларативниот API од спецификацијата“, а сега стои дека декларативниот пандан „се истражува одделно ... но во моментов не е дел од спецификацијата.“ ChatGPT не го поддржува. Chrome сè уште го документира во пробата, а Farolino од Google во дискусијата на Mozilla тврдеше дека „гледаме вредност во декларативниот предлог едноставно за наследни веб-сајтови, особено оние засновани на формулари“. Сметајте го за експеримент на Chrome во рамките на експеримент: добро е да се проба, но неразумно е да биде единствениот ваш пат.
Вклучување за вистински посетители
Флагот (chrome://flags/#enable-webmcp-testing) го вклучува WebMCP во вашиот прелистувач за тестирање. За посетителите не прави ништо. За нив, на страницата ѝ треба токен за origin trial.
- Регистрирајте го origin на страницата на Chrome за WebMCP trial. Origin trials „се јавни и отворени за сите програмери“, а токенот „овозможува функција за сите корисници на вашиот origin“.
- Сервирајте го токенот на секоја страница што треба да изложува алатки, како
<meta http-equiv="origin-trial" content="...">во<head>или како response headerOrigin-Trial:. Токенот може да се вметне и од скрипта. Еден токен покрива еден origin; страницата може да носи повеќе. - Обновувајте го. Кога trial се продолжува, Chrome ги бара регистрираните да „обезбедат нов токен за секој origin запишан во trial-от“, а „Chrome ги игнорира неважечките или истечените токени“. Истечен токен откажува тивко: алатките едноставно престануваат да се појавуваат.
- За Edge, регистрирајте се одделно на страницата на Edge за trial. Нејзините услови бараат: „Каде што е можно, се согласувате да примените feature detection / graceful degradation“.
Ревизиите на Lighthouse за WebMCP исто така бараат регистрација во trial, па сајт што ги тестира без токен ќе види дека откажуваат.
Пишување алатки што е безбедно да се повикуваат
Безбедносниот дел од спецификацијата е ненормативен и искрено вели каде лежи товарот: спречувањето агентот да биде манипулиран „е првенствено одговорност на сопствениот безбедносен модел на агентот, а не нешто што оваа спецификација може нормативно да го наметне.“ Вашите алатки сепак одредуваат колку штета може да направи манипулиран агент.
- Hint-овите можат да лажат, па агентите нема да им веруваат. Спецификацијата: „злонамерен сајт може да ги испушти или да ги прикаже погрешно тие hint-ови.“ OpenAI: „Името на алатката или тврдењето дека само чита податоци не е доказ за тоа што таа навистина прави“, и секое повикување во неговиот прелистувач минува низ безбедносна проверка, а за купувања и слични дејства сè уште се бара потврда. Сепак анотирајте чесно. Тоа е она што внимателниот агент го користи за да одлучи кога да го праша корисникот.
- Опишете ги ефектите точно. Лошиот пример на самата спецификација е алатка опишана како „Ја финализира тековната кошничка“ што „всушност иницира купување. Корисникот не имал намера да купи ништо.“ Ако алатка наплатува картичка, описот го вели тоа, а
consequentialHintеtrue. - Авторизирајте на серверот, секој пат. Алатката работи со сесијата на корисникот: спецификацијата забележува дека „Агентите можат да го наследат идентитетот на корисникот и контекстот на автентикација од прелистувачот.“ Повикувањето на алатка е барање од тој корисник и ги добива истите проверки. Советот од објаснувањето важи: „Валидирајте строго во кодот, слободно во шемата“, бидејќи строгите грешки во шемата можат да ги блокираат агентите.
- Сметајте на prompt injection. Спецификацијата го наведува прво, во три облици: упатства скриени во метаподатоците на алатката, во излезот на алатката и напади што ги користат алатките како цел. Излезот што носи текст напишан од други луѓе (оценки, пораки, прашања за производи) спаѓа под
untrustedContentHintи треба да се враќа како податоци, а не како проза што агентот може да ја сфати како упатства. - Исклучувајте страници намерно. Header
Permissions-Policy: tools=()го прави API-то недостапно за документот и за сè што тој вгнездува. Поставките на сметката, страниците за плаќање и администраторските екрани се кандидати.
Една забелешка за документацијата на Chrome: нејзината страница за безбедност вели дека нацртот содржи метод requestUserInteraction() за да се праша корисникот во текот на алатката. Нацртот на спецификацијата од 20 октомври 2026 година нема таков метод, а објаснувањето сè уште ја наведува потврдата од корисникот како отворено прашање. Не градете врз тоа.
Против што се инженерите на Safari и Firefox
Приговорите вредат да се прочитаат дури и ако градите само за Chrome, бидејќи опишуваат како WebMCP може да тргне наопаку во пракса.
Позицијата на WebKit, објавена на 3 јуни 2026 година, тврди дека страниците што тешко се користат треба да се поправаат во HTML и ARIA, „каде што корисникот, асистивната технологија и агентите сите имаат корист“, и дека со алатките „кршливоста само се префрла од DOM во описите на алатките.“ Агентот го третира како асистивна технологија што не треба да се издвојува: „WebMCP го прави спротивното, претворајќи го ‚агентот управува‘ во забележлив факт.“ И забележува дека предлогот „нема модел на согласност ни на можност за враќање за дејства со последици“.
Mozilla се определи за неутрална позиција во август: WebMCP „воведува потенцијално вредна апстракција“, но „отвора површина чија динамика во пракса остава премногу отворени прашања за да се поддржи без резерва“. Предупредува дека сајтовите би можеле да „обезбедат алатки што не одговараат на искуството на корисникот на страницата“, на пример да „обезбедат prompt injection што е невидлив за типичните корисници“. Поединечни инженери на Mozilla покажаа интерес за императивен примитив за повикување функции; тоа не е поддршка од Mozilla.
Самиот Chrome го оценува ризикот другите engine-и да не го усвојат WebMCP како низок за корисниците. Другата страна на тоа е дека сајтот денес не добива ништо во Safari или Firefox со додавање алатки.
Што работи за секој агент денес
Секој агент во прелистувач чита слики на екранот, HTML и дрво на пристапност (accessibility tree). Упатството на web.dev на Google за сајтови пријателски кон агентите вели дека агентите „го користат DOM и дрвото на пристапност за да добијат чист, структуриран список на интерактивни елементи, а потоа го вкрстуваат со визуелниот приказ“. Неговиот практичен список е краток:
- Користете вистински елементи
<button>и<a>, а не<div>и<span>на кои може да се кликне. - Поврзете го секој
<label>со неговото поле прекуfor. - Без проѕирни слоеви над интерактивните елементи и ништо интерактивно помало од 8 квадратни пиксели.
- Стабилен распоред што не се поместува додека агентот се подготвува да кликне.
Неговиот заклучок: „Сè што предлагаме за сајтот да биде ‚подготвен за агенти‘ го прави сајтот подобар и за луѓето.“ Тоа е, речиси збор по збор, и она што WebKit го бара наместо WebMCP. Ако вашата наплата падне на ревизија за пристапност, поправете го тоа пред да напишете и една алатка.
Lighthouse има категорија Agentic Browsing од верзијата 13.2.0 (1 мај 2026), достапна во Chrome од верзијата 150, а за PageSpeed Insights API е овозможена во Lighthouse 13.4.1 (20 јули 2026). Проверува подмножество ревизии за пристапност што се важни за машини, стабилност на распоредот, регистрирани WebMCP алатки и формулари без нив, валидност на шемата и присуство на датотека llms.txt. Chrome ја нарекува „информативна и без мерила за споредба“: нема оценка од 0 до 100. За llms.txt упатството на самото Google Search е дека ги игнорира таквите датотеки: нејзиното додавање „нема ниту да му наштети ниту да му помогне на видливоста или рангирањето на вашиот сајт во Google Search“. Тоа што Lighthouse ја проверува датотеката не го менува тоа.
Дали да додадете WebMCP сега?
На Shopify со Liquid тема: нема работа. Алатките на Shopify за продавницата, кошничката и наплатата веќе се во живо, „Нема што да се инсталира или конфигурира“, со сопствената резерва на Shopify дека „поддршката за агенти во моментов е ограничена на прелистувачи засновани на Chromium преку origin trial“. Headless-продавниците се покриени само во developer preview на Hydrogen. Не најдовме друга платформа за е-трговија, давател на плаќања или CDN што го вклучува WebMCP за своите клиенти.
На сопствен, headless или наследен сајт: зависи од тоа кои се вашите корисници.
- Ако вашите клиенти или вработени го користат прелистувачот на десктоп апликацијата ChatGPT, императивните алатки на страницата од највисоко ниво се единствениот вид што стигнува до нив. Почнете со две или три алатки само за читање околу вашата најчеста задача (статус на нарачка, достапност, понуда), зад feature detection, со токен за origin trial, и измерете дали некој ги повикува.
- Ако сакате евтино да експериментирате во Chrome, декларативните атрибути на постоечки формулари се неколку часа работа. Не запирајте таму: ChatGPT нема да ги види, а спецификацијата повеќе не ги содржи.
- Ако немате доказ дека агентите ве посетуваат, прво поправете ја семантиката, ознаките и распоредот. Таа работа им помага на сите агенти и на сите што користат асистивна технологија, и ништо од неа нема да се фрли кога API-то ќе се промени.
Во секој случај, оставете го нормалниот интерфејс комплетен. Советот на OpenAI: „Зачувајте го нормалниот интерфејс за луѓето и прелистувачите што не го поддржуваат WebMCP.“
Што би можело да се промени
- Intent to Ship. Тимот на Chrome се надева дека ќе поднесе барање во рамките на периодот на продолжувањето, кој завршува со Chrome 162 (2 февруари 2027) ако продолжувањето важи. Пуштањето во стабилните верзии би ја отстранило потребата од токени во Chrome.
- Обликот на API-то. Се прототипираат continuation API (резултати што пристигнуваат на следната страница по навигација), API за стабилност на алатките и ограничувања на големината. Неодамнешните верзии веќе ги отстранија
window.ontoolactivatedи аргументите во облик на стринг. - Судбината на декларативниот API. Надвор од спецификацијата „засега“, сè уште во пробата на Chrome.
- Повикувачите. Поддршката на Gemini in Chrome е најавена, но не е пуштена. Страницата за статус на имплементацијата на спецификацијата ја наведува поддршката на WebMCP за веб-апликации на очилата Ray-Ban Display на Meta како „наскоро достапна“, и експериментална поддршка во асистентот Leo на Brave.
Ако сега додавате алатки, чувајте ги во еден модул, зад feature detection, за следната промена да биде една измена.
Каде да побарате помош
Ги градиме деловите од веб-сајтот и од неговиот backend со кои агентите доаѓаат во допир: алатки што обвиткуваат постоечка логика за нарачки, резервации и сметки, авторизација што го третира повикот на агентот како секое друго барање од тој корисник, и поправките на семантиката и пристапноста што го прават сајтот употреблив пред да постои која било алатка. Нашата услуга за развој на AI-агенти и интеграција со MCP опфаќа WebMCP алатки, како и MCP сервери на backend, што се различна работа и покрај името.
Ако сакате да знаете што агентот гледа на вашиот сајт денес и дали алатките би значеле нешто за вашите клиенти, пишете ни на office@c9group.dev.
AI и софтвер
Нови водичи и измени на прописите по е-пошта
Кога ќе се смени пропис, ќе се помести рок или ќе објавиме нов водич, ви го испраќаме по е-пошта.