Artificial intelligence — research labs, industry news and expert newsletters. CF-robust RSS / Atom / RDF reader over a curated, edge-verified registry; on a Cloudflare egress block it falls back to the rss2json proxy.
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools have action verbs (list_, read_, fetch_) and descriptions (194-250 chars, within baseline). However, parameter descriptions are minimal or missing context. No output schemas documented. Error handling present but not recovery-focused. Naming is clear and follows verb_noun convention.
Fetch and normalize any RSS / Atom / RDF feed by URL. CF-robust: fetches directly and falls back to a proxy if the source blocks the gateway. Use list_feeds first for curated sources.
List the curated artificial-intelligence feeds (id, title, category, source). Optionally filter by category (ai) or keyword. Pass an id to read_feed.
Read a curated artificial-intelligence feed by its id (from list_feeds). Returns normalized items (title, link, published, summary). Optionally filter items by keyword.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing what list_feeds, read_feed, and fetch_feed return. Baseline: 100% of A+ tools document return types.
Parameter 'limit' lacks constraints. Description says '1-50, default 20' but no min/max in schema. LLMs may pass invalid values. Baseline: numeric params should have explicit min/max.
Parameter descriptions are terse (10-30 chars). 'Keyword to match in feed title/source/description' is clear, but 'Curated feed id (from list_feeds)' assumes LLM knows what a 'curated feed id' is. Baseline: avg param annotation 72 chars; A+ tools explain format and constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Error handling present but not recovery-focused. Code throws 'Unknown feed' and 'Invalid URL' errors, but does not guide LLM on next steps (e.g., 'Try list_feeds to see valid ids'). Baseline: errors must tell agent what to do next.
No pagination or result-limiting guidance in output. fetch_feed and read_feed accept 'limit' but no documentation of what happens if results exceed limit, or how to paginate. Baseline: tools returning lists should document pagination.