Skip to main content
WebMCP on Your Website: Current API and Practical Checks
Back to Blog
AI Connectors February 27, 2026 Updated: September 30, 2026 12 min readby Matthias Meyer

WebMCP on Your Website: Current API and Practical Checks

Test a website with WebMCP: distinguish document.modelContext, a read-only search, the declarative form proposal and A2A. With code and integration limits.

On this page▾

A website becomes easier for AI agents to operate when its functions have clear inputs and results. WebMCP proposes exposing those functions as tools directly in the browser. This may help with property searches, availability checks or forms.

As of September 30, 2026: WebMCP is a W3C Community Group draft, not a W3C Standard. Browser implementation and support by the actual agent are separate questions. Installing Chrome does not by itself make every website callable by every assistant.

Separate MCP, A2A and WebMCP#

InterfacePurposeWhere it lives
MCPProvide tools, data and prompts to an assistantA server reachable by the client, local or remote
A2AExchange tasks and messages between agentsThe interface of an executable agent
WebMCPExpose functions of an open website as toolsThe browser document
Custom agents.jsonDescribe your HTTP interfacesA public manifest, if you provide one

An agents.json is not part of the MCP protocol. An A2A Agent Card describes an agent and its skills; the file alone cannot make a booking. There is no general guarantee that ChatGPT or Claude automatically check every website for an agents.json.

A tool using the current WebMCP draft#

The current entry point is document.modelContext. Older navigator.modelContext examples belong to an earlier draft. Here is a read-only property search:

if (document.modelContext) {
  await document.modelContext.registerTool({
    name: "search_properties",
    description: "Search property listings by location and maximum price",
    inputSchema: {
      type: "object",
      properties: {
        location: { type: "string" },
        maxPrice: { type: "number", minimum: 0 }
      },
      required: ["location"]
    },
    annotations: { readOnlyHint: true },
    execute: async ({ location, maxPrice }, { signal }) => {
      const query = new URLSearchParams({ location });
      if (maxPrice !== undefined) query.set("maxPrice", String(maxPrice));
      const response = await fetch(`/api/listings?${query}`, { signal });
      if (!response.ok) throw new Error("Property search failed");
      return response.json();
    }
  });
}

This example follows the current draft. It needs a compatible browser and an /api/listings route you implement. The execute callback receives inputs and a cancellation signal. readOnlyHint describes the intended effect; the application must still enforce permissions and validate inputs. An annotation does not prevent harmful actions.

Describe forms declaratively#

The official declarative explainer describes attributes such as toolname and tooldescription, rather than data-mcp-tool:

<form action="/search" method="get"
      toolname="search_properties"
      tooldescription="Search property listings by location">
  <input name="location" required />
  <button type="submit">Search</button>
</form>

This is a draft pattern. Algorithms in the declarative part of the specification remain unfinished. Check actual browser support and keep the normal form usable. A paid booking or contact request should have an explicit confirmation step; avoid automatic submission that creates an unchecked commitment.

What to build first#

Start with a read-only function you already need. Describe parameters precisely, limit result counts and test failures. Add actions that change data afterward. Authentication, permissions, abuse prevention and privacy belong in the actual workflow.

Publish an Agent Card only if an A2A agent implements its advertised skills. Version 1.0 puts the address, binding and protocol version in supportedInterfaces. A public manifest does not automatically require open CORS: CORS applies to browser requests, not to ordinary server-side agent requests.

What this does not establish#

Integration guarantees neither preferential AI citations nor better Google rankings or more customers. A custom “AI-Ready” assessment should state which properties it checks and its limits. There is no universal WebMCP score of 110 points or required number of tools.

A trial is useful when it simplifies a specific workflow and a compatible agent is available. See our web design and AI solutions offerings.

Sources: WebMCP specification, Chrome early preview, A2A 1.0.

Matthias Meyer

Matthias Meyer

Founder & AI Director

Founder & AI Director at StudioMeyer. Has been building websites and AI systems for 10+ years. Living on Mallorca since 2011, running an AI and web design studio there: web design, AI connectors, AI systems and custom-trained models, plus three self-serve MCP servers.

Update history

  • Updated the WebMCP website guide with the current API, correct form proposal and verifiable integration steps.
WebMCPAI-Readyagents.jsonW3Cchrome-146agent-discoveryA2A
WebMCP + agent protocols

Three more posts from the same topic cluster that show how the picture fits together:

Cluster overview: WebMCP: The Emerging Web Protocol for AI Agents