v0.1.0 — Initial Release
What is this?
Single-file ESM MCP server that bridges MCP clients (OpenCode, Claude Code) to Chromium's WebMCP API. Connects via Puppeteer + CDP, discovers tools registered via document.modelContext on the page, and exposes them as MCP tools.
Features
- 5 bridge-native tools:
webmcp_navigate,webmcp_status,webmcp_evaluate,webmcp_invoke_tool,webmcp_register_test_tools - Page-discovered WebMCP tools served alongside bridge tools
- Multi-tab support (
webmcp_navigatewith tabId) – parallel page contexts - Declarative WebMCP API (
webmcp_invoke_toolwith declarative schema) – discover and invoke tools by specification - Tool annotations (deprecation, experimental, requirePage) surfaced in tools/list_changed
- Monkey-patch: works around Chrome 150+
invokeTool()returning{} - Auto-recovery: detached-frame errors re-create the page automatically
notifications/tools/list_changedsent on navigation and tool registration changes
Test Suite
36 pure-function tests covering config loading, CLI parsing, history tracking, tab ID generation, and BRIDGE_TOOLS validation — zero Chrome required.
node test/unit.mjs
Requirements
- Node 18+
- Chrome/Chromium 150+ with
--enable-features=WebMCPTesting,DevToolsWebMCPSupport