A serverless infrastructure tool that turns any website URL into structured JSON data for AI agents
Single tool 'extract' has a clear verb-noun name and reasonable description (68 chars). Input schema is well-defined with Zod validation (url required, schema/waitFor/extractionType optional). However, output schema is not documented, the response structure is inferred from code but not formally declared in tool metadata. Parameter descriptions are present but minimal (10-30 chars each). Error handling is implemented server-side but not surfaced in tool documentation. No tool annotations (readOnlyHint, idempotentHint) despite READ_ONLY risk classification. Lacks guidance on when to use extractionType enum values or how to structure custom schemas.
Extract structured data from a URL
Output schema not documented. Response structure (success, data, metadata fields) is inferred from code but not formally declared in tool definition. LLMs cannot plan downstream operations without knowing what fields to expect.
Parameter descriptions are too brief (10-30 chars). 'URL to scrape (required)' lacks guidance on supported protocols, size limits, or timeout behavior. 'JSON schema for extraction (optional)' does not explain format or how it constrains output.
No tool annotations despite READ_ONLY risk classification. Tool should declare readOnlyHint=true to signal to LLMs that it is safe to call without side effects. Idempotency is not declared.
extractionType enum values lack descriptions. LLMs cannot infer when to use 'article' vs 'auto' or what 'contact' extraction returns. Enum descriptions should explain each type's use case and expected output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Error handling is implemented server-side but not documented in tool definition. LLMs do not know which errors are retryable (TIMEOUT_ERROR, NETWORK_ERROR) vs fatal (CONFIGURATION_ERROR). Recovery guidance is missing.