Status
Optional schema, title, annotations, structured result
bearly.webmcp.statusBearly developer tools
Discover tools, call them, cancel them, watch them change, and exercise the declarative form draft. Nothing here touches an account or sends data to a server.
Imperative API
Each tool isolates one part of the draft so a client can tell what worked instead of treating WebMCP as one opaque capability.
Optional schema, title, annotations, structured result
bearly.webmcp.statusNested objects, enums, arrays, constraints, defaults
bearly.webmcp.echoVisible state mutation with bounded integer input
bearly.webmcp.counter_incrementAsync execution and invocation AbortSignal handling
bearly.webmcp.delayreadOnlyHint and untrustedContentHint annotations
bearly.webmcp.untrusted_feedRejected execution and client error reporting
bearly.webmcp.always_failsMutable page state
0
Ask an agent to call counter_increment, or reset it here.
Runtime lifecycle
bearly.webmcp.dynamic_timeRegistration receives an AbortSignal. Aborting it removes the tool and should emit toolchange.
Declarative API
These cover synthesized schemas, parameter descriptions, agent-aware submission, autosubmit, and the user-review path. The declarative section of the standard is still being specified.
Read the declarative explainerFrame boundaries
Both frames are same-origin. One delegates tools; the other returns Permissions-Policy: tools=() and should reject registration.
Agent activity
Waiting for document.modelContext…
Self-check report
The in-page agent path uses the standard’s own getTools() and executeTool(). It also records when an experimental Chromium build needs compatibility handling.
Run the self-check to exercise discovery and invocation.
Portable fixture
The page UI is React, but every WebMCP registration and compatibility path lives in one dependency-free script. Copy it into another project or load the hosted version while prototyping.
<script src="./webmcp-test-kit.js"></script>
<script>
(async () => {
await WebMcpTestKit.install({ mode: "main" });
// Optional in-page verification:
const results = await WebMcpTestKit.runSelfTest();
console.table(results);
})().catch(console.error);
</script>01 · Secure context
Use HTTPS or localhost. The draft exposes document.modelContext only in secure contexts.
02 · Experimental browser
During Chromium’s trial, use an enrolled origin or enable WebMCP for testing at chrome://flags/#enable-webmcp-testing, then restart.
03 · Inspect both sides
Compare this event stream with your client’s tool inventory, invocation results, cancellation, and permission prompts.
Pinned to WebMCP revision 41d12f0 from August 26, 2026.
Last live-tested with Chrome 152.0.7977.64. Cross-origin exposure still needs a second enrolled secure origin and is not simulated here.