T-Markus-Liang/dsh-webmcp

Lets a DSH agent discover and invoke the site tools a website exposes through the W3C WebMCP protocol, using a built-in headless Chromium: webmcp_discover returns the normalized tool list and webmcp_invoke runs the site's own declared tool function in-page. It also ships a stdio/HTTP MCP gateway that bridges a site's WebMCP tools to any MCP client.

dsh-webmcp lets a DeepSeek Harness agent discover and invoke the site tools a website exposes through the W3C WebMCP protocol (part of the Web Agents Community Group standardization work), using a built-in headless Chromium instead of hard-coded selectors. webmcp_discover returns the normalized tool list from the page's protocol-declared surfaces (navigator.modelContext, window.webmcp, form[data-webmcp-tool]) and webmcp_invoke runs the site's own declared tool function in-page, so calls follow the site's declared contract rather than reverse-engineered markup. The plugin also ships bin/dsh-webmcp-serve.mjs, a stdio MCP gateway that bridges a site's WebMCP tools to any MCP client (Claude Code/Desktop, Codex, …), plus an optional HTTP transport (POST /mcp for request/response, GET /sse for server→client notifications), and a zero-dependency embeddable snippet (sitekit/webmcp-register.js) so a site author can declare a tool on the page with one <script src> include via WebMCP.register(...).

Tools & Capabilities ★ 1 updated 2026-10-09
View on GitHub ↗

Install

dsh plugin --profile web add github:T-Markus-Liang/dsh-webmcp

Copied verbatim from the README's Install block. The README also documents a shipped stdio MCP gateway (bin/dsh-webmcp-serve.mjs) that bridges a site's WebMCP tools to any MCP client, and an HTTP (Streamable-HTTP style) transport.

Compatibility

Bundles a headless Chromium so no external browser is needed. The gateway refuses private-network targets by default (--allow-private-hosts overrides) and caches manifests on disk under ~/.dsh-webmcp/manifests/ (default TTL 300s, --no-cache disables). The HTTP transport supports bearer auth (Authorization: Bearer <secret>, missing/wrong → 401) and broadcasts tools/list_changed to every live SSE subscriber.

Details

Alternatives

1624318455/dsh-plugin-tavily · 6Mikao9/dsh-wsl-workspace · 863683348/dsh-plugin-academic-writing

More plugins in Tools & Capabilities

Browse more in Tools & Capabilities

Guides for Tools & Capabilities plugins