Chrome kiest eerst voor JavaScript: de formuliervariant van WebMCP is voorlopig uit de specificatie
Op 8 oktober 2026 is de formuliervariant van WebMCP, met toolname op een formulier, voorlopig uit de specificatie gehaald. Chrome brengt eerst de JavaScript-API uit, en de proef in Chrome is verlengd tot en met versie 162. Bouw je belangrijkste actie daarom met registerTool().
Heb je een formulier met een paar attributen tot WebMCP-tool gemaakt? Dan is dit voor jou. Op 8 oktober 2026 is die formuliervariant voorlopig uit de WebMCP-specificatie gehaald, en vijf dagen later schreef het Chrome-team dat het eerst de JavaScript-API uitbrengt. Ook loopt de proef in Chrome langer door dan gepland. Wat er veranderde, en wat je nu met je formulieren doet.
Wat er in drie weken veranderde
| Datum | Wat er gebeurde | Wat het voor je site betekent |
|---|---|---|
| 28 september 2026 | Chrome verlengt de origin trial van versie 156 tot en met versie 162 | Je kunt langer testen met echte bezoekers |
| 8 oktober 2026 | De formuliervariant, de declaratieve API, gaat voorlopig uit de specificatie | Alleen registerTool() is nog beschreven |
| 13 oktober 2026 | Chrome wil eerst de JavaScript-API uitbrengen, de formuliervariant volgt later | Een JavaScript-tool is de veiligste keuze |
Wat de formuliervariant was
Bij de declaratieve API zet je attributen op een formulier dat al werkt: toolname en tooldescription op het formulier, en toolparamdescription op de velden. De browser maakt daar zelf een tool van, met een invoerschema op basis van de velden. Je hoeft er geen JavaScript voor te schrijven. Een voorbeeld staat op onze WebMCP-pagina, en Chrome beschrijft de variant op een eigen pagina.
Wat er precies uit de specificatie ging
Op 8 oktober werd pull request #338 samengevoegd. François Beaufort, die ook de Chrome-documentatie over de declaratieve API schreef, haalde daarmee het hoofdstuk over formulieren uit de specificatie, inclusief de regels die van een formulier een invoerschema maken. Volgens zijn toelichting richt de specificatie zich nu op registerTool(), en wordt de formuliervariant verder uitgewerkt in een apart voorstel. De conceptversie van 15 oktober bevat de formuliervariant niet meer.
Het woord voorlopig is belangrijk. Op 13 oktober schreef Beaufort bij dezelfde wijziging dat het Chrome-team eerst de JavaScript-API wil uitbrengen, met de formuliervariant 'shortly after', kort daarna. Een datum of versie noemde hij niet. De toelichting bij WebMCP zegt verder dat een formuliervariant, als die terugkomt, de JavaScript-API aanvult en niet vervangt: niet alles op een website is een formulier.
Of Chrome geannoteerde formulieren in de huidige proef blijft herkennen, staat niet in de wijziging. De Chrome-documentatie beschrijft ze nog. De ChatGPT-desktopapp ondersteunt ze nu al niet: die werkt alleen met JavaScript-tools op de hoofdpagina.
De proef in Chrome loopt langer
Op 28 september vroeg Chrome op de mailinglijst blink-dev om de origin trial te verlengen van versie 156 tot en met versie 162. De reden: feedback uit de proef heeft verbeteringen aan de API opgeleverd, en Chrome wil meten hoe die werken. Alex Russell, een van de API-eigenaren van Blink, de engine onder Chrome en Edge, gaf dezelfde dag akkoord. Zijn voorwaarde: een samenvatting van wat ontwikkelaars in de eerste proefperiode meldden. Hij vroeg ook waarom WebMCP nog niet de stap naar een stabiele release zet.
Volgens de releaseplanning van Chromium komt Chrome 162 op 2 februari 2027 uit. Edge heeft een eigen proef, die volgens Microsofts trialpagina tot 30 maart 2027 loopt. Op onze browserpagina stond voor Edge 17 november 2026; dat hebben we aangepast. Heb je al een token, kijk dan in de origin-trialconsole tot wanneer het geldig is en vernieuw het als dat nodig is.
Wat dit betekent voor je formulieren
| Jouw situatie | Wat je nu doet |
|---|---|
| Je hebt nog geen WebMCP-tools | Begin met één JavaScript-tool voor je belangrijkste actie, en controleer eerst of de browser WebMCP kent |
Je hebt alleen formulieren met toolname | Bied de belangrijkste actie ook aan met registerTool() en haal bij dat formulier het toolname-attribuut weg, zodat er één tool voor die actie is |
Je meet SubmitEvent.agentInvoked | Dat signaal hoort bij de formuliervariant. Tel aanroepen ook in de JavaScript-tool zelf, want daar weet je zeker dat een agent hem gebruikte |
| Je formulier gaat na verzenden naar een bevestigingspagina | Verstuur in de tool met fetch, zodat de pagina niet wisselt en de agent het resultaat krijgt |
Moet een actie echt over meerdere pagina's lopen? Daarvoor ligt een apart voorstel klaar, met eenmalige tokens die een tool op de volgende pagina laten verdergaan. Onze scan geeft vanaf nu een aandachtspunt als een site alleen formulieren met toolname heeft. De score verandert daardoor niet.
Voorbeeld: het offerteformulier als JavaScript-tool
Dit is hetzelfde offerteformulier als in het voorbeeld op /webmcp, nu als JavaScript-tool. Zonder WebMCP gebeurt er niets en werkt het formulier gewoon.
// Het offerteformulier van /webmcp, nu als JavaScript-tool. Het formulier
// blijft voor bezoekers precies zo werken. De tool stuurt dezelfde velden naar
// hetzelfde adres, maar met fetch: de pagina wisselt niet, dus de agent krijgt
// het resultaat terug. Je server antwoordt met JSON en een referentie.
async function registerQuoteTool() {
const context = document.modelContext;
const form = document.getElementById("offerte");
if (typeof context?.registerTool !== "function" || !form) {
return () => {};
}
const controller = new AbortController();
await context.registerTool({
name: "vraag_offerte_aan",
description: "Vraag een vrijblijvende offerte aan. Plaatst geen opdracht.",
inputSchema: {
type: "object",
properties: {
dienst: { type: "string", description: "De gewenste dienst, bijvoorbeeld onderhoud" },
email: { type: "string", format: "email", description: "Het e-mailadres voor de offerte" },
},
required: ["dienst", "email"],
},
execute: async ({ dienst, email }) => {
const body = new FormData();
body.set("dienst", dienst);
body.set("email", email);
const response = await fetch(form.action, {
method: "POST",
body,
headers: { "X-Aanroep": "webmcp" },
}).catch(() => null);
if (response?.status === 422) {
return JSON.stringify({
status: "invalid_input",
reason: "Controleer de dienst en het e-mailadres.",
});
}
if (!response?.ok) {
return JSON.stringify({
status: "unavailable",
reason: "De aanvraag is niet verstuurd. Het formulier op deze pagina werkt nog wel.",
});
}
const { referentie } = await response.json();
return JSON.stringify({ status: "received", reference: referentie });
},
}, { signal: controller.signal });
return () => controller.abort();
}
try {
// Roep stopQuoteTool() aan als de pagina deze actie niet meer aanbiedt.
const stopQuoteTool = await registerQuoteTool();
} catch (error) {
console.error("Registratie van de offertetool mislukt", error);
}registerTool() geeft in de huidige specificatie een promise terug. Daarom staat er await voor: een mislukte registratie, bijvoorbeeld omdat er al een tool met die naam is, komt dan in de catch terecht. De header X-Aanroep regelt geen rechten. Die is er alleen om aanroepen via de tool apart te tellen in je serverlogs.
Wat je nu doet
Kijk eerst of je site formulieren met toolname heeft. Bouw voor de belangrijkste daarvan een JavaScript-tool zoals hierboven, en test die in Chrome en in de ChatGPT-desktopapp. De andere geannoteerde formulieren mogen blijven staan: ze doen geen kwaad. Controleer de vervaldatum van je origin-trialtoken. En houd onze browserpagina in de gaten: die werken we bij zodra Chrome een datum noemt.
Bronnen
- WebMCP PR #338: declaratieve API voorlopig uit de specificatie, 8 oktober 2026, met de reactie van 13 oktober
- WebMCP: voorstel voor de declaratieve API
- WebMCP README: Future Exploration: Declarative API
- WebMCP-conceptspecificatie, 15 oktober 2026
- blink-dev: Intent to Extend Experiment: WebMCP, 28 september 2026
- blink-dev: akkoord van Alex Russell, 28 september 2026
- Chrome Platform Status: WebMCP
- Chromium-releaseplanning
- Microsoft Edge Origin Trials: WebMCP
- Chrome for Developers: declaratieve API
- OpenAI: Site tools, WebMCP in de ingebouwde browser van ChatGPT
Lees ook
Meer context bij dit onderwerp: Wat is WebMCP? De complete uitleg. Benieuwd hoe jouw site ervoor staat? Doe de gratis AI-Ready Websitescan.