redditapis-mcp 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+ - **`reddit_deep_comment_search`** gains a research mode: pass `group_by="author"`
5
+ to get the distinct PEOPLE who mentioned your query (ranked by matching-comment
6
+ count, then total score) instead of a flat comment list. Each author carries
7
+ `comment_count`, `total_score`, the `subreddits` they matched in, and their
8
+ `top_comment`. `max_authors` caps the people returned; `meta.authors_capped`
9
+ flags a trim. `[deleted]` accounts are dropped. No price change (still $0.02).
10
+
3
11
  ## 0.1.7
4
12
  - Three new read tools (all $0.002, one upstream read each):
5
13
  - **`reddit_user_submitted`** (`GET /api/reddit/user/{name}/submitted`) — a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redditapis-mcp",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Official MCP server for redditapis.com, the Reddit API (subreddit listings, post + comment + community + user + media search, comment trees, top posts, user profiles) as native tools for Claude, Cursor, and any MCP client.",
5
5
  "repository": {
6
6
  "type": "git",
package/src/tools.js CHANGED
@@ -126,7 +126,7 @@ export const TOOLS = [
126
126
  name: "reddit_deep_comment_search",
127
127
  path: "/api/reddit/search/comments/deep",
128
128
  description:
129
- "Genuine comment search: returns the ACTUAL comments whose body matches your keyword, sorted by score (highest first), with body, score, author, a comment-deep permalink, and the parent post. Unlike reddit_search_comments (which returns the parent posts, a Reddit limitation), this fetches each matching post's comment tree and filters the comment bodies for you, so you get first-hand opinions and answers directly. Premium call (it fans out into several reads): `limit` sets how many parent POSTS to expand, 1-25 (default 5), not how many comments come back. To go deeper than one call, paginate: pass the response's `after` cursor back as `after` to expand the NEXT batch of parent posts. `max_comments` optionally caps how many comments come back (the top-scored are kept). Matching is on the visible comment text at word boundaries (link URLs are ignored), so a result always mentions your query where a reader can see it. Best-effort: a deleted or deeply-nested comment may be missed (meta.truncated flags when a tree was too deep). Example: q='best mechanical keyboard' sort='top'.",
129
+ "Genuine comment search: returns the ACTUAL comments whose body matches your keyword, sorted by score (highest first), with body, score, author, a comment-deep permalink, and the parent post. Unlike reddit_search_comments (which returns the parent posts, a Reddit limitation), this fetches each matching post's comment tree and filters the comment bodies for you, so you get first-hand opinions and answers directly. Premium call (it fans out into several reads): `limit` sets how many parent POSTS to expand, 1-25 (default 5), not how many comments come back. To go deeper than one call, paginate: pass the response's `after` cursor back as `after` to expand the NEXT batch of parent posts. `max_comments` optionally caps how many comments come back (the top-scored are kept). Matching is on the visible comment text at word boundaries (link URLs are ignored), so a result always mentions your query where a reader can see it. Best-effort: a deleted or deeply-nested comment may be missed (meta.truncated flags when a tree was too deep). Set group_by='author' for the research mode that returns WHO is talking about your query (distinct people ranked by matching-comment count) instead of a flat comment list, capped by max_authors. Example: q='best mechanical keyboard' sort='top'.",
130
130
  shape: {
131
131
  ...QUERY,
132
132
  ...SORT_SEARCH,
@@ -139,6 +139,12 @@ export const TOOLS = [
139
139
  max_comments: z.number().int().min(1).optional().describe(
140
140
  "Optional cap on how many comments are returned; the highest-scored are kept. Omit to return every match. meta.capped is true when this trimmed the result.",
141
141
  ),
142
+ group_by: z.enum(["author"]).optional().describe(
143
+ "Set to 'author' for the RESEARCH mode: instead of a flat comment list, return the distinct PEOPLE who mentioned your query, ranked by how many of their comments matched (then total score). Each author has comment_count, total_score, the subreddits they matched in, and their top comment. Omit for the normal comment list.",
144
+ ),
145
+ max_authors: z.number().int().min(1).optional().describe(
146
+ "Only with group_by='author'. Optional cap on how many people are returned (the most prolific first). Omit to return everyone. meta.authors_capped is true when this trimmed the list.",
147
+ ),
142
148
  },
143
149
  },
144
150
  {