Google właśnie dodało do Lighthouse nową kategorię — „Agentic Browsing". Ocenia ona nie jak szybka jest Twoja strona, ale jak dobrze radzi sobie z nią agent AI. W centrum tej zmiany jest standard W3C o nazwie WebMCP. Wdrożyłem go na czujowski.pl — i opisuję jak to zrobiłem krok po kroku.
Czym jest agentic browsing i dlaczego to zmienia zasady gry
Przez ostatnie dwie dekady strony internetowe projektowaliśmy pod ludzi. Później — pod boty indeksujące (SEO). Teraz nadchodzi trzecia era: projektowanie pod agentów AI, którzy nie tylko czytają Twoją stronę, ale na niej działają.
Agent AI to program który działa autonomicznie: może kliknąć przycisk, wypełnić formularz, zebrać dane o usługach, zapisać spotkanie. Dotychczas robił to metodą brute-force — parsował HTML, szukał elementów, strzelał w CSS selektory. Był kruchy i nieprzewidywalny.
WebMCP zmienia to fundamentalnie. Zamiast zgadywać co jest na stronie, agent może zapytać wprost: „jakie narzędzia tu masz?" — i otrzymać ustrukturyzowaną odpowiedź. Tak jak API, tyle że wbudowane w przeglądarkę.
get_services, dostać JSON z listą usług i cenami, a następnie wywołać book_consultation i podać klientowi gotowy link do rezerwacji — bez jednego kliknięcia przez człowieka.
Czym różni się WebMCP od llms.txt?
Mam już na czujowski.pl pliki llms.txt i llms-full.txt — które opisują stronę dla botów AI zbierających dane do modeli językowych. Ale to jest statyczna dokumentacja — jak wizytówka: „oto czym jesteśmy, oto nasze usługi".
WebMCP to aktywny interfejs. Różnica jest jak między broszurą a recepcjonistką, która odpowiada na pytania w czasie rzeczywistym.
| Cecha | llms.txt | WebMCP |
|---|---|---|
| Typ | Plik statyczny | Aktywny interfejs JS |
| Cel | Opisać stronę dla AI | Udostępnić akcje dla agentów |
| Filtrowanie | Brak | Agent może filtrować po kategorii |
| Wynik | Tekst / markdown | Ustrukturyzowany JSON |
| Ryzyko | Minimalne | Minimalne (tylko odczyt na stronie statycznej) |
Optymalna strona powinna mieć oba — llms.txt dla botów indeksujących, WebMCP dla agentów działających.
Jak działa WebMCP technicznie
Standard W3C definiuje jeden kluczowy obiekt w przeglądarce: document.modelContext. Jeśli istnieje — przeglądarka (lub agent) wspiera WebMCP. Jeśli nie — nic się nie dzieje, strona działa normalnie.
Na tym obiekcie wywołujesz registerTool() z trzema elementami:
- name — unikalny identyfikator narzędzia (np.
get_services) - description — opis w języku naturalnym — to jest najważniejsze, bo agent decyduje czy wywołać narzędzie na jego podstawie
- inputSchema — JSON Schema opisujący parametry (opcjonalne)
- execute() — funkcja która zwraca dane w formacie MCP
Minimalne, działające narzędzie wygląda tak:
// Zabezpieczenie — kod nie uruchomi się w zwykłej przeglądarce if (!('modelContext' in document)) return; document.modelContext.registerTool({ name: 'get_contact', description: 'Zwraca dane kontaktowe firmy: e-mail, telefon i link do rezerwacji.', inputSchema: { type: 'object', properties: {} }, async execute() { return { content: [{ type: 'text', text: JSON.stringify({ email: 'kontakt@czujowski.pl', phone: '+48 452 422 086', booking: 'https://cal.com/przemyslaw-czujowski-sasnsv/30min' }, null, 2) }] }; } });
Co wdrożyłem na czujowski.pl — 5 narzędzi
Zarejestrowałem pięć narzędzi które pokrywają wszystko czego agent AI może potrzebować odwiedzając stronę konsultanta:
| Narzędzie | Co zwraca | Parametry |
|---|---|---|
get_services |
Lista usług z cenami, opisami i URL-ami | Opcjonalnie: kategoria (web, seo, ai, ads…) |
get_contact |
E-mail, telefon, NIP, link Cal.com | Brak |
get_articles |
Lista artykułów z datami i tagami tematycznymi | Opcjonalnie: słowo kluczowe (SEO, AI, WordPress…) |
book_consultation |
Link do rezerwacji + opis procesu | Brak |
get_about |
Profil: doświadczenie, certyfikaty, specjalizacje | Brak |
Dlaczego akurat te pięć? Bo to typowe pytania które zadaje agent pomagający użytkownikowi wybrać usługodawcę: „co oferuje?", „ile kosztuje?", „jak się skontaktować?", „co piszą na blogu?", „kim jest?". Zamiast parsować HTML — dostaje gotowy JSON w milisekundy.
Kluczowy detal — opisy narzędzi
Najważniejszy element każdego narzędzia to pole description. Agent AI decyduje które narzędzia wywołać wyłącznie na podstawie ich opisów — bez czytania kodu. Słabe opisy = narzędzia których nikt nie użyje.
Dobry opis: „Zwraca listę usług oferowanych przez Przemysława Czujowskiego — konsultanta IT i marketingu z Wrocławia. Zawiera nazwy, opisy, ceny orientacyjne i URL-e stron usługowych. Opcjonalnie filtruje po kategorii: web, seo, ai, ecommerce, ads, medical."
Dobry opis odpowiada na pytania: kto to oferuje? co dokładnie jest w odpowiedzi? kiedy warto wywołać to narzędzie?
Jak to sprawdzić — Lighthouse Agentic Browsing
Google dodało nową kategorię do Lighthouse dostępną w Chrome Canary. Ocenia ona:
- Registered WebMCP Tools — czy strona rejestruje narzędzia przez
document.modelContext - WebMCP Schema Validity — czy JSON Schema narzędzi jest poprawny
- llms.txt — czy plik istnieje i jest dostępny pod
/llms.txt - Accessibility for Agents — czy DOM ma sensowne nazwy (aria-label, alt, semantyczny HTML)
- Layout Stability (CLS) — czy strona nie „skacze" gdy agent próbuje coś kliknąć
Wynik nie jest skalą 0–100 jak tradycyjny Lighthouse — to lista zdał/nie zdał dla każdego audytu. Cel to mieć wszystko zielone.
Dlaczego warto być pionierem — argument SEO
Pamiętasz kiedy pojawiło się GEO (Generative Engine Optimization)? Pierwsze strony które wdrożyły llms.txt, schema FAQPage i pisały w formacie cytowanym przez AI — dziś mają wyraźną przewagę widoczności w ChatGPT, Perplexity i Gemini.
WebMCP jest teraz w tym samym punkcie co GEO 12 miesięcy temu. Standard jest eksperymentalny — ale Chrome, Apple i Mozilla aktywnie pracują nad implementacją. Kiedy trafi do stable release, strony które mają już zarejestrowane narzędzia będą natychmiast gotowe.
Kto dziś ma llms.txt — jutro będzie cytowany przez AI. Kto dziś ma WebMCP — pojutrze będzie wywoływany przez agentów AI. Reszta będzie parsowana jak zwykły HTML.
Na czujowski.pl spełniam wszystkie cztery kryteria Lighthouse Agentic Browsing:
- ✓ WebMCP — 5 narzędzi zarejestrowanych w
script.js - ✓ llms.txt — dostępny pod
/llms.txti/llms-full.txt - ✓ Dostępność DOM — semantyczny HTML, aria-hidden na dekoracyjnych SVG, alt na obrazach
- ✓ Stabilność layoutu — statyczny HTML, CLS bliskie zera
Jak wdrożyć WebMCP na własnej stronie — krok po kroku
-
Określ jakie narzędzia mają sens dla Twojej strony. Sklep:
search_products,get_product,get_shipping_info. Gabinet lekarski:get_specializations,get_schedule,book_appointment. Konsultant:get_services,get_contact,book_consultation. - Napisz opisy w języku naturalnym — tak jakbyś tłumaczył nowe narzędzie asystentowi który nigdy nie widział Twojej strony. Im dokładniejszy opis, tym trafniej agent zdecyduje kiedy wywołać narzędzie.
-
Zaimplementuj narzędzia w JavaScript — wewnątrz bloku
if (!('modelContext' in document)) returnktóry chroni przed błędami w zwykłych przeglądarkach. - Sprawdź poprawność JSON Schema — parametry narzędzi muszą być opisane zgodnie ze specyfikacją JSON Schema Draft 7. Validator online: jsonschema.dev.
-
Przetestuj w Chrome Canary — włącz flagę
chrome://flags/#enable-web-mcpi uruchom Lighthouse z kategorią „Agentic Browsing".
allow="tools" do kontroli dostępu.
Co jeszcze Lighthouse sprawdza — accessibility for agents
Poza WebMCP, Lighthouse Agentic Browsing sprawdza czy agent może w ogóle zorientować się co jest na stronie. To te same zasady co w WCAG — ale z perspektywy maszyny, nie człowieka niedowidzącego.
Konkretne wymagania:
- Przyciski muszą mieć czytelne etykiety —
<button>Wyślij wiadomość</button>OK,<button><svg/></button>bezaria-label— nie OK - Obrazy muszą mieć alt — dekoracyjne:
alt="", znaczące:alt="opis treści" - Formularze muszą mieć label —
<label for="email">Adres e-mail</label> - Ikony SVG — dekoracyjne:
aria-hidden="true", informacyjne:role="img" aria-label="..."
Na czujowski.pl wszystkie SVG ikony w nawigacji i treści mają aria-hidden="true". Formularze mają widoczne etykiety lub placeholder z aria-label. To jednocześnie dobre praktyki dostępności dla ludzi — i dobra podstawa dla agentów.
WebMCP jest dziś tam gdzie Schema.org było w 2012 roku — eksperymentalny, ale kierunek jest jasny. Strony które wdrożą go teraz, gdy jeszcze mało kto o nim słyszał, będą miały naturalną przewagę gdy standard trafi do produkcji. Jeśli chcesz wdrożyć WebMCP lub pełny audyt GEO na swojej stronie — napisz do mnie.