Scoring was not performed
Output schemas not documented. All three tools return Markdown strings, but LLMs need structured field definitions to plan downstream calls. web_search returns {total, page, last_page, hits[], ...} but this is unparseable from the response format.
Error handling is generic. All three tools catch Exception and return an error string. No distinction between retryable (timeout) vs user-fixable (invalid query) vs fatal errors. LLMs receive no guidance on what to try next.
Parameter constraints not enforced in descriptions. web_search limit is '1-50' but the description just says '1-50, default 10' without explaining what happens if you pass 51 or 0. The code clamps silently (max(1, min(limit, 50))), this behavior should be advertised.
fetch_content requires a URL 'in the index' but provides no discovery mechanism. If a user has a URL not in the index, there's no guidance on how to resolve it. The error message is just 'Content fetch failed: {e}' with no helpful alternatives.
web_search pagination example missing. The tool supports page numbers but doesn't document how to determine if more results exist. Returning last_page helps, but the description doesn't mention pagination or when to call the tool again.
No distinction between what mode='bm25' means or what other modes might be available. The description says 'bm25' but doesn't explain if this is the only option or if others exist. An enum constraint would clarify.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 14 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |