Demo 1 records a real WebMCP session with its errors intact. This page is a technical, click-by-click procedure for checking whether a ChainGraph page has registered its deterministic compliance tool with the browser agent surface, running the human-facing calculation, and verifying deterministic results. Part A is one-time browser setup; Part B is the reproducible test procedure.
Three steps, needed once per computer. Allow ten minutes the first time.
chrome://flags/#web-mcpPaste the address into Chrome's address bar and press Enter. If the page reports "not found", open chrome://flags and enter WebMCP in the search box at the top.
On that row, change the dropdown from Default to Enabled. A Relaunch button appears at the bottom right; click it and Chrome restarts on its own.
https://ainumbers.co/chaingraph/art-129-webbotauth-signature-verifier.htmlOpen the page, press F12 to open DevTools, select the Console tab, and click once inside the console area.
On a first-ever paste, Chrome blocks the console with a security warning. Type the two words allow pasting and press Enter; this is required once per machine. Then paste and run:
typeof document.modelContext'object'. Setup is complete and does not need repeating on this computer."C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-features=WebMCP to start Chrome with the feature enabled directly. Demo 1, step 3, records this failure and its diagnosis in full.As a final confirmation, list the tools the page has registered:
await (document.modelContext ?? navigator.modelContext).getTools()verify_webbotauth_signature.Run these steps in order. They explain what the page exposes, how to exercise the human interface, and how to check the browser's agent-facing tool registry. The page and the browser must both satisfy the expected results before an agent can invoke the tool.
On the art-129 page, press Ctrl+U to open its source in a new tab. Press Ctrl+F, search for verify_webbotauth_signature, and press Enter.
verify_webbotauth_signature and lists its input fields: covered components, signature parameters, a base64 signature, a public-key JWK, algorithm, expected tag, and timestamps.The definition is the contract an agent needs before making a call. It describes the required data and prevents the agent from inventing field names or guessing how a signature should be represented.
Close the source tab and return to the page. In the input area, select the accept sample or example. The sample fills the form with a non-production Ed25519 signature, covered components, signature parameters, a public key, and fixed timestamps.
Click Verify or Run on the page. The browser reconstructs the RFC 9421 signature base, verifies the Ed25519 signature with the supplied public key, checks the declared algorithm and tag, and evaluates freshness from the provided timestamps.
ACCEPT verdict, named passing checks, compliance flags, and an execution_hash.Click run again without changing anything.
Next, change one character in the signature field, then run the calculation again.
REFUSE, the cryptographic-signature check fails, and the execution hash changes because the input and output are now different.Open DevTools with F12, select Console, and paste the following check. This does not invoke the tool. It only asks the browser which tools the current page has registered for WebMCP.
(async () => {
const mc = document.modelContext ?? navigator.modelContext;
if (!mc) throw new Error("WebMCP is unavailable; complete Part A and reload the page.");
const tools = await mc.getTools();
const tool = tools.find(t => t.name === "verify_webbotauth_signature");
if (!tool) throw new Error("The page has not registered verify_webbotauth_signature.");
console.log({ name: tool.name, description: tool.description, inputSchema: tool.inputSchema });
})();If a prerequisite fails: use Demo 1 for a complete browser-level diagnostic of WebMCP availability, registration, invocation, and receipt verification. Do not treat a missing registered tool as a successful agent integration.