MCP server that fetches RSS/Atom/JSON feeds and serves them to AI assistants
Feed MCP has 8 tools with moderate definition quality. Tool naming follows verb_noun conventions (fetch_link, get_syndication_feed_items, add_feed, etc.), which is a positive. Descriptions are present for all tools and range 50-200 characters, adequate for LLM selection. However, several critical issues limit quality: (1) Parameter descriptions are inconsistent, some parameters lack any description (e.g., 'limit', 'offset' in get_syndication_feed_items have descriptions, but 'embedImages' description is minimal); (2) Output schemas are not documented in the source code, while tools return data, there is no visible specification of response structure, field types, or pagination metadata; (3) Error handling is not visible, no evidence of recovery guidance, retryability classification, or actionable error messages; (4) The fetch_link tool accepts a free-form URL string with no validation description or security guardrails visible; (5) add_feed, remove_feed, and merge_feeds tools lack clear documentation of side effects and idempotency guarantees. Per-tool analysis shows fetch_link (65), all_syndication_feeds (58), get_syndication_feed_items (68), add_feed (50), remove_feed (48), refresh_feed (55), merge_feeds (52), export_feed_data (58), averaging 52. The server demonstrates basic competence but falls short of production-grade tooling.
Add a new feed to the server
Get list of all available syndication feeds
Export feed data in various formats (json, csv, opml, rss, atom)
Fetch and extract content from a URL
Get items from a specific syndication feed with optional pagination, content filtering, and image embedding
Merge multiple feeds into a single result with optional sorting and deduplication
Manually refresh a specific feed to get latest items
Output schemas not documented. Tools return data but response structure, field types, and pagination metadata are not visible in source code. This prevents LLMs from knowing what fields to extract for downstream tool chaining.
fetch_link tool accepts unconstrained URL string with no validation rules, format constraints, or security guardrails documented. No mention of allowed schemes, timeout behavior, or what constitutes valid content.
remove_feed and add_feed lack error handling documentation. No guidance on what happens if feed URL is invalid, unreachable, or already exists. No recovery guidance for retryable vs. fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Remove a feed from the server
Destructive operation (remove_feed) lacks confirmation mechanism or dry-run option. An agent could accidentally delete feeds without safeguards.
Tool descriptions lack dependency hints. For example, get_syndication_feed_items requires a feed ID, no description tells LLM to call all_syndication_feeds first if it lacks the ID.
Idempotency and side-effect semantics not documented. No clarity on whether calling add_feed twice with the same URL creates a duplicate or returns existing feed. No mention of idempotent guarantees for refresh_feed.