Reddit Q&A to Notion MCP Server
Server has 4 tools with complete input schemas and descriptions, but quality is inconsistent. Tool naming follows verb_noun convention (get_, search_, save_). Descriptions are present but generic, most lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'Subreddit name(s)' without format guidance). Output schemas are inferred from Pydantic models but not explicitly documented in tool definitions. Error handling returns structured error objects but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. The save_reddit_qa_to_notion tool has a vague description ('Save a Q&A session') and underdocumented array parameter (reddit_sources items are 'object' with no field spec).
Get top posts from specified subreddits. Args: subreddits (str): Subreddit name(s) separated by '+' (e.g., "redditdev+learnpython") limit (int): Number of posts to retrieve (default: 10) comment_limit (int): Number of comments to retrieve for each post (default: 5) time_filter (str): One of: "all", "day", "hour", "month", "week", "year" (default: "week") Returns: List[Dict[str, Any]]: List of dictionaries containing post information
Save a Q&A session with Reddit sources to Notion
Search for posts in specified subreddits. Args: subreddits (str): Subreddit name(s) separated by '+' (e.g., "redditdev+learnpython") query (str): Search query limit (int): Number of posts to retrieve (default: 5) comment_limit (int): Number of comments to retrieve for each post (default: 5) sort (str): One of: "relevance", "hot", "top", "new", "comments" (default: "relevance") Returns: List[Dict[str, Any]]: List of dictionaries containing post information
Search for posts across all subreddits (site-wide search). Args: query (str): Search query limit (int): Number of posts to retrieve (default: 5) comment_limit (int): Number of comments to retrieve for each post (default: 5) sort (str): One of: "relevance", "hot", "top", "new", "comments" (default: "relevance") Returns: List[Dict[str, Any]]: List of dictionaries containing post information
save_reddit_qa_to_notion has vague description ('Save a Q&A session') and underdocumented reddit_sources parameter (items are 'object' with no field schema). LLM cannot infer what fields to include in each source object.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear semantic distinction: 3 read-only tools vs 1 write tool. Agents cannot infer safety/retry semantics without explicit hints.
Parameter descriptions lack format/constraint guidance. E.g., 'Subreddit name(s) separated by +' is stated but not enforced; 'time_filter' lists valid values in description instead of enum constraint. LLMs may hallucinate invalid values.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Output schema not explicitly documented in tool definitions. RedditPost Pydantic model is defined but tool docstrings do not state return field names/types. LLM must infer structure from code.
Error handling returns structured error objects but lacks recovery guidance. E.g., 'Reddit Top Posts Error: ...' does not suggest next steps (retry, check credentials, try different subreddit). Agents cannot self-correct.