mcp-rss has clear, action-verb naming (fetch_, search_, get_, list_, add_, remove_) and all 6 tools have descriptions. Input schemas are present with type definitions. However, parameter descriptions are minimal (most under 50 chars), output schemas are not documented, and error handling lacks recovery guidance. The server follows basic tool structure but misses LLM-optimization patterns for descriptions and lacks composition guidance (e.g., which tool to call first, how results chain). No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Save an RSS/Atom feed URL as a named subscription for easy reference.
Fetch and parse an RSS or Atom feed. Returns the feed metadata and all entries.
Get a single feed entry by its ID or URL. Use the id field returned by fetch_feed.
List all saved feed subscriptions.
Remove a saved feed subscription by its URL.
Search entries in an RSS/Atom feed by keyword. Matches against title, summary, content, and author.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream planning. fetch_feed returns JSON with title/description/entries, but this is not declared in tool metadata.
Parameter descriptions are too brief (10-30 chars). 'The RSS or Atom feed URL' for 'url' lacks format guidance (must be valid URL, http/https only?). 'Search keyword(s)' for query lacks length/format constraints. LLMs need explicit bounds.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). remove_subscription is destructive and add_subscription is write-only, but this is not signaled in the tool definition. Agents cannot reason about side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Error handling returns plain text with isError flag but no recovery guidance. 'Entry not found: {id}' tells the LLM nothing about what to do next (retry? call search_entries? check the feed URL?).
No pagination support. fetch_feed returns all entries without limit or offset. Large feeds (1000+ entries) will blow context windows. No mention of result limits in descriptions.