MCP server for fetching and analyzing e-commerce product pages with HTML summarization, price tracking, and visual presentation generation
Three tools with basic descriptions and partial schemas. fetch_product_page and extract_product_info have clear, actionable descriptions (120-150 chars) and simple input schemas with type and description for each parameter. generate_presentation_slide has a more complex schema with object-type parameters that lack internal field documentation. No output schemas documented for any tool. Error handling is present in code (handle_fetch_errors decorator) but not surfaced in tool definitions. Parameter descriptions are adequate but lack constraints (enums, ranges, format specs). No tool annotations (readOnlyHint, idempotentHint). Naming is verb-noun compliant but generic ('fetch', 'extract', 'generate').
Parses HTML content to extract structured product information including name, price, rating, availability, and description
Fetches the HTML content of an e-commerce product page using HTTP requests with Chrome TLS fingerprint impersonation or Playwright browser automation as fallback
Generates SVG presentation slides with theme-aware styling for e-commerce data visualization (cover, journey map, donut chart, comparison, etc.)
generate_presentation_slide has object-type parameters ('data', 'theme') with no internal field documentation. LLMs cannot infer what fields these objects require or accept.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data without knowing response shape.
Parameter descriptions lack format constraints. 'url' parameter has no format spec (http/https validation is in code, not schema). 'slide_type' has no enum constraint despite code accepting only 7 specific values.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All three tools are read-only but this is not declared in schema, forcing LLMs to infer safety from descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Error handling logic exists in code (handle_fetch_errors decorator, SSRF checks, soft-block detection) but is not surfaced in tool descriptions. LLMs cannot anticipate failure modes or recovery steps.