WebMCP lets you expose structured tools to AI agents via navigator.modelContext.registerTool(). You define a name, description, and inputSchema — and agents use these to select and invoke your tools.
But here's what the spec doesn't tell you:
Each model interprets your definitions differently.
The description that makes Gemini select your tool 94% of the time might only work 78% on Claude. The inputSchema that GPT handles perfectly — resolving “next Saturday” to “2026-02-14” — might cause Claude to pass the raw string instead.
This isn't a bug. It's the reality of multi-model AI. And it matters because your users won't all use the same agent.