---
title: "Add WebMCP to a form | Agent Ready Checklist"
description: "How to add WebMCP to a form. Expose one real form action as a WebMCP tool, declaratively or with registerTool, behind feature detection."
canonical: https://agentreadychecklist.com/guides/add-webmcp-to-a-form
site: "Agent Ready Checklist"
last_updated: 2026-11-05
date: 2026-11-04
section: "Guides"
---

# Add WebMCP to a form | Agent Ready Checklist

> How to add WebMCP to a form. Expose one real form action as a WebMCP tool, declaratively or with registerTool, behind feature detection.

Source: https://agentreadychecklist.com/guides/add-webmcp-to-a-form
Site: Agent Ready Checklist
Last reviewed: 2026-11-05
Agent endpoints: https://agentreadychecklist.com/llms.txt (index), https://agentreadychecklist.com/openapi.json (API), https://agentreadychecklist.com/mcp (MCP server), https://agentreadychecklist.com/ask (search)
Access: https://agentreadychecklist.com/auth.md (no key). Pricing: https://agentreadychecklist.com/pricing.md (free).

# How to add WebMCP to a form

Expose one real form action as a WebMCP tool, declaratively or with registerTool, behind feature detection. It covers 1 requirement: AR-ACT-07. Cloudflare documents the declarative form: add toolname and tooldescription to the <form> and toolparamdescription to inputs. AgentReady v2.0 raised WebMCP (AR-ACT-07) from MAY to SHOULD for products with a web UI an agent should operate.

## Before you start

You need one form on your site that maps to a real action, such as a search, a quote request or a booking.

## Steps

1.  **[AR-ACT-07: WebMCP tools.](https://agentreadychecklist.com/checklist/ar-act-07/)** A product with a web UI an agent should operate registers WebMCP tools on document.modelContext; feature-detect and only ship tools that map to real actions.
    
    ```bash
    curl -fsSL https://agentreadychecklist.com/kit/verify.sh | bash -s -- https://example.com --only=webmcp
    ```
    
     Watch for: Registering tools before feature detection, throwing in browsers without the API.
2.  **Register with feature detection.** Check for the API before you call it, and register one tool per real action. Give each tool a name, a description, an input schema and an execute function.
    
    ```javascript
    const mc = document.modelContext ?? navigator.modelContext;
    if (mc?.registerTool) {
      mc.registerTool({
        name: "search_docs",
        description: "Search the documentation.",
        inputSchema: { type: "object", properties: { q: { type: "string" } }, required: ["q"] },
        execute: async ({ q }) => ({ content: [{ type: "text", text: await runSearch(q) }] }),
      });
    }
    ```
    

## How you know it is done

You are done when the page registers the tool only where the browser supports it, the tool maps to the form, and the kit webmcp check finds the registration in the initial HTML or a same-origin script.

## The facts behind it

-   AgentReady v2.0 raised WebMCP (AR-ACT-07) from MAY to SHOULD for products with a web UI an agent should operate.primary source, 2026-10-20: [github.com/agentready-org/standard/blob/main/CHANGELOG.md](https://github.com/agentready-org/standard/blob/main/CHANGELOG.md), read 2026-11-04
-   Cloudflare documents the declarative form: add toolname and tooldescription to the <form> and toolparamdescription to inputs.primary source: [isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md](https://isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md), read 2026-11-04
-   document.modelContext.registerTool() returns a Promise and each tool needs name, description, inputSchema and an execute callback.primary source: [isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md](https://isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md), read 2026-11-04
-   Chrome made WebMCP available for prototyping to early preview program participants on 2026-02-10.primary source, 2026-02-10: [developer.chrome.com/blog/webmcp-epp](https://developer.chrome.com/blog/webmcp-epp), read 2026-11-04
-   The spec says WebMCP tools run in the live page with the signed-in session and complement a server MCP.primary source: [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md), read 2026-11-04

## Sources

-   [github.com/agentready-org/standard/blob/main/CHANGELOG.md](https://github.com/agentready-org/standard/blob/main/CHANGELOG.md)read 2026-11-04
-   [isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md](https://isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md)read 2026-11-04
-   [developer.chrome.com/blog/webmcp-epp](https://developer.chrome.com/blog/webmcp-epp)read 2026-11-04
-   [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)read 2026-11-04

Edition

Data

2026-11-04

Reviewed

2026-11-05

Spec

AgentReady v2.0, 273d2d7

Crawl

13,071 rows, 2026-11-04

Ora

132 checks, contract 1.38.0, 2026-11-05

Verify with Ora

The scanner this site recommends for the whole checklist. 132 checks, a score out of 100, no account.

`npx ax@0.10 audit <url> --min-score <n>`

[Why Ora, and its limits](https://agentreadychecklist.com/verify-with-ora/)

Method

-   [How rows, commands and rates are made](https://agentreadychecklist.com/method/)
-   [How an Ora check is matched to a row](https://agentreadychecklist.com/checklist/ora-checks/)
-   [Pass rates by rank band](https://agentreadychecklist.com/data/by-rank/)

Sources and read dates sit at the foot of the page.

Last reviewed 2026-11-05. AgentReady v2.0, read 2026-11-04.
