Protocol for AI-compatible web pages. Now with browser-native tool registration via WebMCP integration. Static portability meets runtime execution.
v1.3.0 introduces the Agentic Compliance Tier — an optional layer that transforms HC pages from documents AI reads into tools AI calls. This is achieved through a new hc-tools block and a lightweight WebMCP bridge script that registers tools with the browser's navigator.modelContext API.
Every v1.2.2 page is automatically v1.3.0 protocol-compliant. The agentic layer is purely additive.
An HC v1.3.0 page consists of up to five blocks within a single HTML file:
hc-tools Block NEWThe hc-tools block is a JSON structure that defines tools the page exposes. It follows the same JSON Schema conventions as MCP tool definitions, ensuring compatibility across the entire MCP ecosystem.
| Field | Required | Description |
|---|---|---|
| name | ✅ | Unique tool identifier. Use snake_case with domain prefix. |
| description | ✅ | Clear description for AI understanding. Use "Agentic SEO" — clear verbs, specific outcomes. |
| inputSchema | ✅ | JSON Schema draft-07 defining parameters. |
| annotations | Recommended | Hints for AI: idempotentHint, destructiveHint, readOnlyHint. |
| domBinding | Optional | CSS selector + trigger event for declarative form-to-tool mapping. |
| requiresConfirmation | Optional | Boolean. If true, runner MUST get user confirmation before executing. |
The bridge script reads the hc-tools block and registers each tool with the browser's navigator.modelContext API. This is the RNA transcription — converting static definitions into executable browser tools.
The same HC page serves three distinct consumer types without modification:
| Consumer | Reads | Execution | Auth |
|---|---|---|---|
| LLM Direct (URL paste) | hc-metadata + hc-instructions + hc-human-docs | Bootstrap reasoning context | None needed |
| HC Runner (CLI/extension) | All blocks including hc-tools schemas | Structured tool catalog + execution | Runner-managed |
| Browser Agent (WebMCP) | hc-tools → bridge → navigator.modelContext | Direct tool calls, no DOM scraping | Inherits browser session |
For pages with existing HTML forms, the domBinding field in hc-tools maps form submissions directly to tool invocations. The bridge script can also detect annotated forms:
data-hc-param-description attributes serve dual purpose: they help AI agents understand parameter semantics, and they improve the page's discoverability for agentic search systems. Write descriptions like meta-descriptions — clear verbs, specific outcomes, expected formats.
All v1.2.2 security rules carry forward. The agentic layer adds:
| Rule | Enforcement |
|---|---|
| Tool execute() MUST NOT access cross-origin resources | Bridge script + browser CORS |
| Destructive tools MUST require user confirmation | annotations.destructiveHint + HITL |
| Tool registrations scoped to page lifecycle | beforeunload cleanup |
| Input validation before execution | JSON Schema validation in bridge |
| No credential leakage in tool responses | Content block sanitization |
When requiresConfirmation: true or annotations.destructiveHint: true, the runner/browser MUST pause execution and present the pending action to the user before proceeding. This aligns with the W3C WebMCP proposal's yield-to-user mechanism.
| Step | Action | Breaking? |
|---|---|---|
| hc_version | Change "1.2.2" → "1.3.0" in hc-metadata | No |
| hc-tools | Add new script block with tool definitions | No (new block) |
| bridge.js | Add module script for WebMCP registration | No (new script) |
| agentic_capable | Add to execution config in hc-metadata | No (new field) |
| compliance_levels | Add "agentic": "optional" to metadata | No (new field) |
For pages targeting the Agentic tier (Tier 3), validate against these 8 items:
hc-tools block present with type="application/json" and id="hc-tools"snake_case with a domain prefix (e.g., myapp_action)inputSchema follows JSON Schema draft-07 with type and propertiesannotations.destructiveHint = truenavigator.modelContext before registrationbeforeunload cleanupexecute() returns MCP-compatible content blocks: { content: [{ type, text }] }For development validation, connect Claude Code to the chrome-devtools-mcp server. This enables a closed-loop workflow:
1. Edit hc-tools definitions in your HTML file.
2. Bridge script auto-registers tools on page load.
3. Claude Code discovers tools via list_webmcp_tools.
4. Claude Code invokes tools via call_webmcp_tool.
5. Validate responses against HC compliance.
6. Iterate until all tools pass validation.
| Resource | URL |
|---|---|
| HC v1.3.0 Spec (this page) | https://hc-standard.org/spec/v1.3.0/ |
| HC v1.2.2 Spec (previous) | https://hc-standard.org/spec/v1.2.2/ |
| WebMCP W3C Explainer | https://github.com/webmachinelearning/webmcp |
| MCP-B Polyfill | https://www.npmjs.com/package/@mcp-b/global |
| Chrome DevTools MCP | https://github.com/WebMCP-org/chrome-devtools-quickstart |
| HC GitHub | https://github.com/hc-standard/hc-standard |