Web fetch API that bypasses Cloudflare/WAF and returns clean content. Serves both REST API and MCP tool interface using Playwright for browser automation.
Single tool 'fetch_page' has a clear, action-verb name and reasonable description (127 chars, within 10-1024 range). Input schema is present with two parameters (url, timeout) both typed and described. However, output schema is completely undocumented, the tool returns a string but LLMs cannot predict the format (markdown with title + content, or error message). No error handling guidance; exceptions return raw error strings. Parameter descriptions lack format constraints (e.g., timeout range, URL validation rules). No pagination, no structured output, no recovery hints. Follows basic naming convention but lacks production-grade polish in schema documentation and error messaging.
Fetch a web page and return its clean text content. Bypasses Cloudflare, WAF, and JS-rendered pages. Use this when you need to read content from websites that block plain HTTP requests.
Output schema completely undocumented. Tool returns string (markdown or error), but LLMs cannot predict format, structure, or error cases. Violates pattern:tool requirement for documented return types.
Error handling returns raw exception strings (e.g., 'Error fetching {url}: {e}') with no recovery guidance. LLMs cannot determine if error is retryable, user-fixable, or fatal. Violates pattern:recovery-guide.
Parameter 'timeout' lacks constraints. Description says 'in seconds' but no min/max bounds specified. LLMs could pass 0, negative, or absurdly large values. Violates pattern:constrained-input.
Parameter 'url' has no format validation hint. Description lacks guidance on supported protocols, URL length limits, or invalid patterns. LLMs may pass malformed URLs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No pagination or result limiting documented. Tool fetches entire page content as single string. For large pages, response could exhaust context window. Violates pattern:paginated-result and mxe:enforce-result-limits.