[FEATURE] WebMCP tool discovery in Claude in Chrome — revisiting #30645 with production implementation data
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
#30645 requested WebMCP discovery/invocation for Claude in Chrome. It was auto-closed as stale in April and locked, so per the stale-bot's instruction I'm filing fresh and referencing it here.
The gap is unchanged — reproduced this week against my own production site: the extension surfaces nothing from navigator.modelContext. The tools are reachable only if the model is explicitly instructed to evaluate the API via page scripting. Invocation works; discovery doesn't exist. The extension falls back to screenshot/DOM interaction even when the page publishes a structured tool surface.
What changed since March: navigator.modelContext is no longer a Canary flag — it's in a public origin trial in Chrome 149 (through 156, ending Nov 2026). The original thread's "production rollout timeline is unclear" objection is resolving, and production sites exist now: I maintain one (tradesite.dev, registered in the origin trial) with an anonymous discovery surface live today — no login needed to test discovery. See Additional Context.
Proposed Solution
Same shape as #30645: discovery (query navigator.modelContext on connect, expose registered tools as first-class MCP tools) and invocation (structured calls, structured JSON responses). Four findings from running a production WebMCP surface that bear on the design:
- Dynamic tool lists are the norm, not an edge case. My workspace gateway registers/unregisters tools as the user moves between pages of an SPA — no navigation event fires. "Re-scan on navigation" is necessary but not sufficient; honor tools-changed callbacks rather than snapshotting at page load.
- Expect gateway-multiplexed tools. Real sites converge on a few action-multiplexed tools with built-in
help/list_actions(mine: 43 global + 40 workspace actions across two gateways) rather than dozens of micro-tools. Discovery UX shouldn't assume one-tool-per-capability.
- Passive context tools are load-bearing. Cheap read-only tools (
app_context,current_state) exist specifically as orientation/precondition reads before mutating calls. Surfacing tools without distinguishing read-only from mutating loses this pattern — worth honoring in the permission UI.
- Don't use a11y-tree side channels for discovery. An earlier iteration of my site exposed an
sr-onlytool catalog for tree-walking agents; it leaked to screen readers and was pulled after an audit. Native discovery makes such hacks unnecessary — which is the point of this request.
Alternative Solutions
What I ship today because discovery is missing: a fallback bridge behind ?expose-agent=1 — a window global plus an inert JSON catalog in a <script type="application/json"> tag — solely so non-WebMCP agents can be pointed at the tools when instructed.
Site-side polyfills/SDKs (suggested repeatedly in the old thread) cannot close this gap on their own: they register tools, but the extension still doesn't discover them. Native discovery support would let sites delete these bridges entirely.
Priority
Medium - Would be very helpful
Feature Category
MCP server integration
Use Case Example
- User opens tradesite.dev (logged in) with Claude in Chrome and asks: "Build a 3-bar momentum strategy and backtest it over the last 30 days."
- Today: screenshot → find element → click → type loops over a node-graph strategy editor. Slow, fragile, token-expensive.
- With discovery: Claude reads
tradesite_current_state(read-only precondition), then calls gateway actions to compose the blocks and run the backtest — a handful of structured calls with verifiable JSON at each step.
The live surface: 5 tools + 1 registered prompt via @mcp-b/global 1.6.4, loaded on idle so agent tooling never affects first paint.
Additional Context
- Predecessor: #30645 (auto-closed stale, locked) — this issue supersedes it with production implementation data, per the stale-bot's instruction.
- WebMCP W3C spec: https://github.com/webmachinelearning/webmcp
- Chrome origin trial: WebMCP, Chrome 149–156 (ends Nov 16, 2026). tradesite.dev is registered and serving a token.
- Test access, live now: a clean anonymous profile hitting https://tradesite.dev gets a working discovery surface —
tradesite_app_context(returns signed-out context) and thetradesite_appgateway (help/list_actionsfully functional; account-gated actions return a structuredaccount_requiredrefusal with zero data, schema validation first).?expose-agent=1additionally enables the non-WebMCP fallback bridge described under Alternatives.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗