Skip to content

Releases

v1.5.0 — site-side authoring kit

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 28 Aug 01:25

What's new

  • sitekit/webmcp-register.js: zero-dependency snippet so ANY site author can expose actions to agents — WebMCP.register({ name, description, inputSchema, annotations, execute }). Dual-mount detection, MCP worst-case annotation defaults, silent no-op, window.webmcp fallback.
  • dsh-webmcp-serve --check <url>: agent-readiness audit (score/schema/annotation coverage; exit 0/1/2).
  • Official demo on GitHub Pages: https://t-markus-liang.github.io/dsh-webmcp/demo/ — a discoverable, annotated, agent-ready page.

This fills the ecosystem's biggest gap: everyone builds the agent side; now publishing the "make your site agent-ready" kit is one script include.

67 tests all green.

v1.4.0 — gateway remote

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 28 Aug 01:16

What's new

  • HTTP/SSE transport for the MCP gateway: POST /mcp (request/response) + GET /sse for server→client notifications — one gateway now serves many MCP clients over LAN/tailscale
  • Bearer-token auth via --token (missing/wrong → 401)
  • Multi-client concurrency + tools/list_changed broadcast to all live SSE subscribers
  • Transport-agnostic createCore shared by stdio and HTTP
dsh-webmcp-serve <url> --http --host 0.0.0.0 --port 9000 --token <secret>

62 tests all green (incl. new HTTP transport tests).

v1.3.0 — types contract

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 28 Aug 00:38

What's new

  • dsh-webmcp-types: fully typed bridge contract via types/index.d.ts (no build step) — import type { DiscoverResult, InvokeResult, BridgeConfig, BridgeErrorCode } from 'dsh-webmcp/types'
  • Runtime/type consistency audit (dedicated review): readiness() now returns full DiscoveredTool[] (fixed dashboard showing 0 schema completeness); invoke failures carry url; gateway maps outputSchema; readiness helpers re-exported from the package entry; error shapes corrected
  • Elicitation (input_required) evaluated and deferred — no proven client yet; argsWarning + confirm-required cover the loop

58 tests all green (incl. new contract-render guards). npm publish still pending registry auth.

v1.2.0 — push & readiness

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 28 Aug 00:24

What's new

  • list_changed push: gateway advertises tools.listChanged:true; subscribing clients get notifications/tools/list_changed on manifest drift
  • outputSchema passthrough + structured-preserving truncation (trim human-text fields, keep structured data intact)
  • Agent-readiness: per-origin score/schema-completeness/annotation-coverage/read-only/destructive via lib/readiness.mjs — the free/open answer to $49/mo readiness scanners
  • Interactive Tool tester on the dashboard (POST /webmcp/tester)

54 tests all green (incl. new list_changed push + readiness + dashboard-render blocks).

v1.1.0 — agent-interface alignment

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 28 Aug 00:11

What's new

  • Tool annotations passthrough (readOnlyHint / destructiveHint / idempotentHint / openWorldHint) across discover + gateway tools/list — verified live on a real WebMCP site
  • Host-side destructive guard: destructiveHint:true tools require confirm:true (confirm-required otherwise); enforced host-side so page JS cannot bypass
  • Well-known probing: /.well-known/webmcp + /.well-known/mcp.json as a fifth discovery surface
  • Error taxonomy gains confirm-required

46 tests all green incl. guard roundtrip through the MCP gateway (_meta.confirm).

v1.0.0 — stable

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 27 Aug 23:35

v1.0.0 — stabilization

Capability surface frozen since v0.5.x; this release hardens the project around it.

  • Security self-review (docs/security-review.md): threat model, controls matrix with verbatim test-evidence citations, honest residual risks
  • Real-site probing dataset (docs/real-sites.md): five sites probed with our own pipeline; three coexisting exposure models documented
  • Observability: JSONL trace + live /webmcp/dashboard + manifest-drift detection
  • stdio MCP gateway: any MCP client consumes site tools
  • Per-origin session pool: concurrency + LRU + idle reclamation
  • 46 tests all green (incl. real-browser e2e)

Install: dsh plugin --profile web add github:T-Markus-Liang/dsh-webmcp
npm publish pending registry auth.

v0.3.0 — stdio MCP gateway

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 27 Aug 21:33

The step-change release

Any MCP client (Claude Code/Desktop, Codex, …) can now consume a website's WebMCP tools as a local MCP server:

dsh-webmcp-serve <url> [--allow-private-hosts] [--no-cache]

Claude Desktop config:

{ "mcpServers": { "my-site": { "command": "node", "args": ["/path/to/dsh-webmcp/bin/dsh-webmcp-serve.mjs", "https://example.com/app"] } } }
  • Newline-delimited JSON-RPC 2.0: initialize / ping / tools/list / tools/call
  • Reuses the full BrowserSession pipeline (dual-mount, Map/Promise stores, executeToolByName, argsWarning, result budget)
  • Manifest cache ~/.dsh-webmcp/manifests/ (TTL 300s)
  • 25/25 tests incl. spawned-gateway e2e with 35 assertion checks

v0.2.0 — intranet shield + session reuse

Choose a tag to compare

@T-Markus-Liang T-Markus-Liang released this 27 Aug 13:56

Highlights

  • Private-network shield: loopback/private/link-local/unique-local targets are default-denied — an agent following a prompt-injected instruction can no longer be turned into an intranet scanner. allowPrivateHosts: true re-enables for local fixtures.
  • Same-URL session reuse: repeated calls against the same page inside sessionTtlMs skip re-navigation; per-call refresh: true forces it. _meta.{reused,navigations} surfaced on results.
  • Dual-mount probing hardened in v0.1.1 (navigator.modelContext + document.modelContext) carried forward.

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