This STDIO-only server defines 2 tools with basic schemas and descriptions. Both tools have descriptions meeting the 10-1024 character baseline (capture_webpage_design: 115 chars, extract_tailwind_classes: 134 chars). Input schemas are present and typed (url/selector strings for tool 1; html/styles strings for tool 2). However, there are significant gaps: (1) Parameter descriptions lack detail about format, constraints, or validation rules, e.g., selector description does not explain CSS selector syntax or edge cases; (2) No output schemas are documented, LLMs cannot predict what capture_webpage_design or extract_tailwind_classes will return, forcing them to guess at downstream field names; (3) No error handling guidance is present, if a URL is malformed or puppeteer fails, the server provides no recovery path; (4) Tool names lack clarity, capture_webpage_design could be interpreted as capturing the visual design, the code, or both; (5) No mention of dependencies between tools or when one should be preferred over the other; (6) The actual implementation code is truncated (index.ts cuts off mid-function), so full output schema verification is impossible. The naming follows verb_noun convention (capture_*, extract_*), which is good. Descriptions are present and non-trivial, placing this above the bottom tier but well below production quality.
Captures the design and styles from a webpage by taking a screenshot and extracting CSS information
Extracts and analyzes Tailwind CSS classes from HTML and CSS content, mapping CSS properties to Tailwind equivalents
No output schemas documented. LLMs cannot infer what fields capture_webpage_design returns (e.g., screenshot URL? Raw CSS text? Parsed selectors?). This forces guessing and risks context loss between tool calls.
Parameter descriptions lack actionable constraints. 'Optional CSS selector to target a specific element on the page' does not explain valid selector syntax, what happens if selector matches nothing, or examples of valid selectors. LLMs cannot validate inputs.
No error handling or recovery guidance. Code shows puppeteer.launch() and page.goto() which can fail (network timeouts, invalid URLs, CORS issues), but no documentation of what errors are possible or how the agent should respond. Agent cannot distinguish retryable failures from user-fixable ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 16 | - | v1 |
Tool names lack specificity. 'capture_webpage_design' is ambiguous, does it return a screenshot image, HTML, CSS rules, or all three? 'extract_tailwind_classes' similarly unclear: does it extract existing classes from HTML, suggest Tailwind equivalents for inline styles, or both? Names should disambiguate based on output type.
No composition guidance or tool chaining documentation. Both tools accept similar inputs (HTML/CSS content), but it is unclear whether capture_webpage_design output feeds into extract_tailwind_classes, or if they are used independently. Missing dependency hints prevent correct multi-step planning.
Parameter 'url' in capture_webpage_design has no format constraint documented. LLMs may pass invalid URLs (missing scheme, typos, localhost without context). Description should specify: valid schemes (http/https), length limits, and what happens for malformed URLs.