WebMCP is how a web page declares the things an agent can do on it, so the agent invokes them instead of guessing. It is the page-level companion to an Agent Card: the card says who you are and what your service offers, WebMCP says what a given page can do right now. Chrome scores it in its Agentic Browsing checks, so it has moved from idea to something engines look for.
The declarative form
The simplest WebMCP is two attributes on a form. A toolname gives the action a short machine name, and a tooldescription says what it does and when to use it. On each input, a toolparamdescription says what value the agent should send. That is enough for an agent to fill and submit the form on a person's behalf.
For example, a newsletter form becomes a tool called newsletter_signup, described as subscribing the user to the weekly newsletter, with the email input described as the user's email address. An agent reads that and knows exactly how to use it.
What makes it valid
A tool needs both halves. A toolname with no description, or a description with no name, cannot be registered, so declare both or neither. Every input the tool uses needs a name attribute, because the name is how the value is passed. And every input should carry a toolparamdescription, or an agent is guessing what to put there. Those three rules, both halves present, a name on every input, a description on every input, are the whole of a valid declaration.
Declarative and imperative
The form attributes are the declarative API, and they are static, so a crawler and an audit can read them without running the page. There is also an imperative API, where JavaScript registers a tool at runtime with a name, a description, an input schema and a function to run. That one only exists once the page has executed, so a static read cannot see it. Use the declarative form wherever a form already does the job, and the imperative API for actions that are not a form.
The point of either is the same. The clearer you make what a page can do, the more reliably an agent can do it. That is the Invoke pillar of ARMX, and it is the part of the agentic web almost no site has marked up yet.