{"serverId":"mcp-registry/io.github.retampweb/pa1m-reddit","tools":[{"name":"get_comments_by_id","fixed":{"name":"get_comments_by_id","description":"Post Comments by Post ID — $0.01\n\nFetch the full comment tree for a Reddit post using its short alphanumeric post ID. Same response as the permalink endpoint — use this when you have the ID, not the full URL. Post IDs can be extracted from Reddit URLs: reddit.com/r/x/comments/{post_id}/... Example: GET /comments/1abc123\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"get_comments_by_idArguments","required":["post_id"],"properties":{"post_id":{"type":"string","title":"post_id","description":"Reddit post ID like 1sgjld3"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":186,"tokensAfter":186},{"name":"get_comments_by_permalink","fixed":{"name":"get_comments_by_permalink","description":"Post Comments by Permalink — $0.01\n\nFetch the full comment tree for a Reddit post using its permalink URL. Returns top-level comments with nested replies, upvote counts, and author metadata. Use this when you have the full Reddit URL. Permalink format: /r/{subreddit}/comments/{post_id}/{title}/ Example: GET /comments?permalink=/r/python/comments/1abc123/my_post_title/\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"get_comments_by_permalinkArguments","required":["permalink"],"properties":{"permalink":{"type":"string","title":"permalink","description":"Reddit post permalink, e.g. /r/python/comments/abc/title/"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"get_posts","fixed":{"name":"get_posts","description":"Subreddit Posts — $0.01\n\nFetch posts from any subreddit with sorting and pagination. No Reddit account needed. Sorting options: hot (trending now), new (most recent), top (most upvoted), rising (gaining momentum), controversial (most debated), best (Reddit's personalized ranking). Use t= parameter (hour/day/week/month/year/all) with sort=top or sort=controversial. Paginate by passing the 'after' cursor from the previous response. Up to 100 posts per call. Example: GET /posts?subreddit=MachineLea","inputSchema":{"type":"object","title":"get_postsArguments","required":["subreddit"],"properties":{"t":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"t","description":"Time window for top/controversial: hour | day | week | month | year | all"},"sort":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"sort","default":"hot","description":"hot | new | top | rising | controversial | best"},"after":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"after","description":"Pagination cursor (t3_xxx)"},"limit":{"type":"integer","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"limit","default":25},"subreddit":{"type":"string","title":"subreddit","description":"Subreddit name without r/ prefix"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":369,"tokensAfter":369},{"name":"get_user","fixed":{"name":"get_user","description":"User Profile — $0.01\n\nFetch a Reddit user's public profile. Returns link karma, comment karma, account age, gold/mod/employee status flags, verified email flag, icon URL, and profile description. Example: GET /user/spez\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"get_userArguments","required":["username"],"properties":{"username":{"type":"string","title":"username","description":"Reddit username without u/ prefix"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"get_user_comments","fixed":{"name":"get_user_comments","description":"User Comment History — $0.01\n\nFetch a Reddit user's recent comments. Each item includes subreddit, upvote score, parent post title, comment body, and creation timestamp. Sort by new (default), top, or controversial. Paginate with the 'after' cursor. Example: GET /user/spez/comments?sort=top&limit=10\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"get_user_commentsArguments","required":["username"],"properties":{"sort":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"sort","default":"new","description":"new | top | controversial"},"after":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"after","description":"Pagination cursor"},"limit":{"type":"integer","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"limit","default":25},"username":{"type":"string","title":"username","description":"Reddit username without u/ prefix"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":290,"tokensAfter":290},{"name":"post_comment","fixed":{"name":"post_comment","description":"Post Comment — $0.05\n\nSubmit a top-level comment on a Reddit post. Requires session cookies from POST /login (reddit_session + loid fields). Body: {\"post_url\": \"https://reddit.com/r/...\", \"text\": \"...\", \"reddit_session\": \"...\", \"loid\": \"...\"}\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"post_commentArguments","required":["post_url","text","reddit_session","loid"],"properties":{"loid":{"type":"string","title":"loid"},"text":{"type":"string","title":"text"},"post_url":{"type":"string","title":"post_url"},"token_v2":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"token_v2"},"csrf_token":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"csrf_token"},"reddit_session":{"type":"string","title":"reddit_session"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":254,"tokensAfter":254},{"name":"search_posts","fixed":{"name":"search_posts","description":"Search Reddit Posts — $0.01\n\nSearch Reddit posts globally or restrict to a specific subreddit. Mirrors the Posts tab on reddit.com/search. Sorting: relevance (default — highest upvoted may outrank closest match on broad queries), new (strict chronological), hot, top, comments. Tip: use sort=new with t=week for recent topical results; sort=relevance for best match. Set nsfw=true to include adult content. Paginate with 'after' cursor. Example: GET /search?q=Claude+API&sort=new&t=month&limit=25\n\n##","inputSchema":{"type":"object","title":"search_postsArguments","required":["q"],"properties":{"q":{"type":"string","title":"q","description":"Search query"},"t":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"t","description":"hour | day | week | month | year | all"},"nsfw":{"type":"boolean","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"nsfw","default":false,"description":"Include NSFW content"},"sort":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"sort","default":"relevance","description":"relevance | new | hot | top | comments"},"after":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"after","description":"Pagination cursor"},"limit":{"type":"integer","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"limit","default":25},"subreddit":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"subreddit","description":"Restrict to a subreddit (without r/ prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":427,"tokensAfter":427},{"name":"send_dm","fixed":{"name":"send_dm","description":"Send Direct Message — $0.10\n\nSend a private message to a Reddit user. Pass to_username (e.g. 'spez') or to_user_t2 (Reddit internal ID like t2_xxx). Requires session cookies from POST /login. Body: {\"to_username\": \"spez\", \"message\": \"Hello!\", \"reddit_session\": \"...\", \"loid\": \"...\"}\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json","inputSchema":{"type":"object","title":"send_dmArguments","required":["message","reddit_session","loid"],"properties":{"loid":{"type":"string","title":"loid"},"message":{"type":"string","title":"message"},"csrf_token":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"csrf_token"},"to_user_t2":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"to_user_t2"},"to_username":{"type":"string","anyOf":[{"type":"string"},{"type":"null"}],"title":"to_username"},"reddit_session":{"type":"string","title":"reddit_session"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":276,"tokensAfter":276}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"get_posts","params":["limit"]},{"tool":"get_user_comments","params":["limit"]},{"tool":"login","params":["password","username","totp_secret"]},{"tool":"post_comment","params":["loid","text","post_url","token_v2","csrf_token","reddit_session"]},{"tool":"search_posts","params":["limit"]},{"tool":"send_dm","params":["loid","message","csrf_token","to_user_t2","to_username","reddit_session"]},{"tool":"vote","params":["loid","thing_id","direction","csrf_token","reddit_session"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}