A tool for fetching content from e-commerce websites using Playwright
This server has 3 tools with basic definitions but significant gaps in schema completeness, parameter descriptions, and error handling guidance. All tools follow a simple verb_object naming pattern (fetch_*), which is appropriate. However, parameter descriptions lack specificity about formats, constraints, and expected behavior. The 'headers' parameter across all tools has a vague description ('Optional request headers') that does not explain what headers are valid, expected, or their impact. Output schemas are not documented anywhere in the code. Error handling is minimal, there is no guidance to the LLM about recovery steps or error classification. The schema definitions present are basic JSON Schema but lack important details like minLength, maxLength, pattern, or format constraints on the URL parameter. The server performs DNList validation (allowlisting e-commerce sites) but this behavior is not documented in any tool description, forcing the LLM to discover it only through failure. Overall, the definitions are functional for basic use but would not meet production standards for an LLM-facing tool suite.
Fetch and return JSON content from a URL
Fetch content from a website and convert it to Markdown format
Fetch and return plain text content from a website (HTML tags removed)
Parameter 'headers' lacks actionable description. All three tools accept an 'headers' object parameter described only as 'Optional request headers', with no guidance on valid header names, format, or use cases. LLMs cannot determine which headers are safe to pass or when they are needed.
No output schema documentation. The code does not define or document what each tool returns (structure, fields, types). Callers must infer output format empirically, and LLMs cannot plan downstream operations confidently.
No error recovery guidance. When a fetch fails (timeout, permission denied, invalid URL, DNList rejection), the tool throws a bare error with no guidance to the LLM about what to do next. Error messages do not distinguish retryable vs. fatal failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 13 | - | v1 |
DNList allowlisting behavior undocumented. The server silently rejects URLs not in an allowlist (when DNListCheck env var is set), but tool descriptions do not mention this constraint. An LLM invoking fetch_markdown on a non-e-commerce domain will get 'Not an EC site' error without prior warning.
URL parameter lacks format and validation constraints. The 'url' parameter accepts a bare 'string' with no format, pattern, or validation hint. No guidance that it must be an absolute HTTP/HTTPS URL, or what happens if a malformed URL is passed.
Tool descriptions too generic. Description for fetch_markdown is 'Fetch content from a website and convert it to Markdown format' (67 chars), does not explain when to prefer it over fetch_txt, what types of content it handles well, or whether it preserves images/links. Similar issues in fetch_txt and fetch_json.