Read-only Reddit MCP server for Claude Code and other MCP clients
Reddit MCP server has well-structured tool definitions with complete schemas and descriptions. All 5 tools follow verb_noun naming (search_reddit, get_subreddit_posts, get_post_comments, get_user_profile, get_trending). Schemas use Zod with proper type constraints (enums, min/max bounds). Descriptions are present and actionable (avg ~120 chars). However, output schemas are not formally documented, responses are formatted as text blobs rather than structured objects. Error handling is minimal (no recovery guidance). No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions are adequate but lack dependency hints (e.g., 'post_id accepts t3_abc123 or abc123 format'). Missing: pagination guidance, per-item error reporting for batch operations.
Get a post's details and its top-level comments. Accepts a post ID like 't3_abc123' or just 'abc123'.
Get posts from a subreddit sorted by hot, new, top, or rising.
Get trending/popular posts from across Reddit (r/popular).
Get a Reddit user's profile info and recent activity (posts, comments, or both).
Search Reddit for posts matching a query. Optionally limit to a specific subreddit.
Output schemas not formally documented. Tools return formatted text blobs (via formatPostList, formatCommentList, etc.) rather than structured JSON objects. LLMs cannot reliably extract fields for downstream tool chaining.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only but this is not declared in the tool definition. Agents cannot infer safety properties without explicit annotations.
Error handling lacks recovery guidance. No try-catch blocks visible in tool implementations. If Reddit API fails (rate limit, 404, auth error), response is unstructured. LLM receives no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
get_trending has empty input schema (no parameters). Description is minimal (11 words). Does not explain what 'trending' means (r/popular? r/all? time window?). Violates 20-char minimum for descriptions.
Pagination not implemented. Tools cap results at 25 (search, subreddit) or 50 (comments) but do not return total_count, next_cursor, or offset. Large result sets cannot be paginated; LLM cannot discover all matching posts.