Web components and polyfill for the WebMCP (Web Machine Learning Context Protocol) API, enabling agents to discover and invoke tools registered on web pages
This is a browser-based WebComponent library, not an MCP server. It provides 6 tools for managing tool registries and analytics within a web context, but lacks fundamental MCP server characteristics. Tools have minimal descriptions (many under 20 chars), no visible input schemas in the source, and no error handling guidance. The 'callTool' tool explicitly states 'Never rejects,' violating error classification patterns. No tool descriptions explain when to use them or what they return. Schemas are declared in TypeScript types but not visible in the actual tool registration code provided.
Non-standard: invokes a registered tool. Never rejects.
Replaces the entire toolset. Validates before mutating.
Pushes one entry to window.dataLayer in a GTM-friendly flat shape.
Adds one tool, leaving the rest of the registry intact.
Re-invokes a captured call, optionally with edited params.
Removes one tool by name; returns whether it was present.
No input schemas visible in source code. Tool definitions reference schema objects but actual JSON Schema definitions are not provided in the code sample. Cannot verify parameter types, constraints, or required fields.
Descriptions are too short and lack actionable context. 'Non-standard: invokes a registered tool. Never rejects.' (callTool) is 54 chars but provides no guidance on when to use it, what it returns, or error handling. Most descriptions under 100 chars.
callTool explicitly states 'Never rejects,' violating error classification and recovery patterns. Agents need to know which errors are retryable and what to do on failure. A tool that never rejects provides no error guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 23 | 2026-07-28+ | v2 |
No output schemas documented. Tool descriptions do not explain what fields are returned or what structure the agent should expect. This forces LLMs to guess at response structure.
Not an MCP server. This is a browser WebComponent library for managing tool registries in-browser. It does not implement the MCP protocol, has no transport layer, and cannot be used as a remote MCP server.