Skip to content

v0.1.0 — Initial Release

Choose a tag to compare

@enihcam enihcam released this 06 Jul 01:53
· 13 commits to main since this 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_navigate with tabId) – parallel page contexts
  • Declarative WebMCP API (webmcp_invoke_tool with 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_changed sent 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

Links