What the WebMCP API Changes Mean for Early Adopters
4 min
What the WebMCP API Changes Mean for Early Adopters
Correction, Oct 11 2026: This post, written in April, said the WebMCP specification shipped a breaking change on March 27, 2026 that renamed
provideContext()toregisterTool(). The public commit history does not show that.provideContext()andclearContext()were removed from the draft on March 5, 2026, and the code samples in the original were not taken from the spec. This version describes only what the draft spec and its commit history show.
WebMCP is a draft from the W3C Web Machine Learning Community Group. It is not a W3C Standard. It is a proposal for letting a web page expose tools that an AI agent in the browser can call.
If you wrote WebMCP code early, the draft has changed under you more than once. That is expected for a draft.
What the draft says today
According to the current draft, a page registers a tool in JavaScript with document.modelContext.registerTool(). The tool is a dictionary with a required name, a required description, an optional inputSchema (a JSON Schema), and a required execute callback that returns a Promise. The API is available only in secure contexts.
await document.modelContext.registerTool({
name: "request_quote",
description: "Request a project quote",
inputSchema: {
type: "object",
properties: {
project: { type: "string" }
}
},
execute: async (input) => {
/* your code here */
}
});
This sample follows the field names and the document.modelContext.registerTool() call shown in the draft. The draft’s own registerTool() example is a security illustration, so treat this as a sketch of the shape, not a copy of spec text.
What the commit history shows
The draft’s commit history shows several API changes in 2026:
- March 5:
provideContext()andclearContext()were removed. - March 26:
registerTool()gained an optionalAbortSignal. - March 27:
unregisterTool()was removed from the explainer. - May 27: the
modelContextgetter moved toDocument, which is why the spec now usesdocument.modelContextand notnavigator.modelContext.
If your code calls provideContext() or navigator.modelContext, it no longer matches the draft.
Chrome support
Chrome support is an origin trial, per the Chrome developer blog. An origin trial is a testing phase, not a shipping commitment.
What the spec does not define
The draft defines no manifest file and no /.well-known/webmcp path, so do not count on a file like that to get your site discovered.
What to do now
- If you built against
provideContext()ornavigator.modelContext, check your code against the current draft. - Track the spec draft and the Chrome origin trial.
- Treat WebMCP as an experiment: the spec is a draft and Chrome support is an origin trial.
Andrew Adamson is the founder of Bodyne, a B2B growth consultancy specializing in SEO, AEO, and Agent Readiness for growing businesses.