WebMCP at the edge: a Cloudflare Worker that equips any website with WebMCP from a single TOML config.
cf-webmcp defines 5 tools with complete JSON schemas and reasonable descriptions. All tools are READ_ONLY and follow a consistent pattern (URL template + optional parameters). Naming is clear and verb-based (sitemap_filter, rss_feed, dom_extract, http_json, http_get). However, descriptions are brief (40-80 chars), lacking context on WHEN to use each tool or dependencies between them. Parameter descriptions exist but are minimal. No output schemas are documented. Error handling guidance is absent. Tool composition is weak, no clear guidance on which tool to chain after another.
Extracts content from a webpage using CSS selectors and DOM parsing
Fetches raw content from an HTTP endpoint with content-type filtering
Fetches JSON from an HTTP endpoint and optionally projects the response
Fetches and parses RSS/Atom feeds from a website
Filters and extracts URLs from a website sitemap
Tool descriptions lack context on WHEN to use each tool and dependencies. E.g., 'Filters and extracts URLs from a website sitemap' does not explain when to call sitemap_filter vs dom_extract vs http_get, or what the agent should do with the results.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields without knowing the response structure. E.g., does sitemap_filter return {urls: [string]} or {items: [{url, priority}]}?
Parameter descriptions are minimal and lack format/constraint guidance. E.g., 'URL template with optional {{param}} placeholders' does not explain valid placeholder syntax, escaping rules, or what happens if a placeholder is missing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
No error handling guidance. Tools that fetch external URLs can fail (404, timeout, invalid content-type). Descriptions do not explain what errors are possible, whether they are retryable, or what the agent should do next.
Tool composition is unclear. No guidance on which tools to chain. E.g., should an agent call sitemap_filter first, then dom_extract on each URL? Or call http_get directly? Descriptions do not hint at multi-step workflows.