A tiny, dependency-free MCP server that reads Reddit via its still-open RSS feeds. No API key, no OAuth, works when Reddit blocks anonymous JSON access. Search, browse subreddits, and read comments.
Three tools with complete input schemas and clear descriptions. Naming follows verb_noun pattern (search_reddit, browse_subreddit, get_post_comments). Descriptions are 150-250 chars, within baseline range (p10=34, p90=392). All parameters have type definitions and descriptions. However, output schemas are not formally documented, only inferred from code comments. Error handling is basic (throws Error objects without recovery guidance). No tool annotations (readOnlyHint, etc.). Parameter descriptions lack format constraints (e.g., 'limit: 1-25' stated in description but not as JSON Schema min/max). No pagination support despite RSS feed limitations (~25 results max).
Fetch posts from a subreddit via RSS (no API key). Returns title, author, link, date, excerpt. ~25 results max. No scores or comment trees (RSS limitation). Use "all" or "popular" for cross-Reddit feeds.
Read the user comments on a Reddit post via RSS (no API key). Pass the post URL/permalink. Returns the post plus a FLAT list of comments (author + text). Limitations: not threaded (no parent/child nesting), no upvote scores, ~25 comments max. For full nested trees + scores, use OAuth.
Search Reddit posts via RSS (no API key). Optionally restrict to one subreddit. Returns title, author, link, subreddit, date, and a text excerpt. ~25 results max. No comment trees or scores (RSS limitation).
Output schemas not formally documented. Code comments describe return structure (source, count, posts/comments) but no JSON Schema definition provided. LLMs cannot reliably parse or chain results without explicit output type definitions.
Parameter constraints not expressed in JSON Schema. Descriptions state 'limit (1-25, default 25)' and 'enum values' but JSON Schema lacks minimum/maximum for numeric params and does not enforce constraints at parse time. Validation happens only in function body.
Error handling provides no recovery guidance. Functions throw generic Error('...') with no categorization (retryable vs fatal) or actionable next steps. E.g., 'subreddit is required' does not guide the LLM to call search_reddit or list available subreddits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
No tool annotations. Tools are read-only (RSS feeds, no mutations) but lack readOnlyHint annotation. This prevents clients from optimizing caching, retry logic, or safety checks based on tool semantics.
No pagination support despite RSS hard limit (~25 results). Tools accept 'limit' param but do not return next_cursor, total_count, or offset for multi-page result sets. Large result sets cannot be paginated.