redditapis-mcp 0.1.5 → 0.1.7
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 +30 -0
- package/package.json +1 -1
- package/src/tools.js +46 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.7
|
|
4
|
+
- Three new read tools (all $0.002, one upstream read each):
|
|
5
|
+
- **`reddit_user_submitted`** (`GET /api/reddit/user/{name}/submitted`) — a
|
|
6
|
+
user's submitted POSTS, the sibling of `reddit_user_comments`. Same post
|
|
7
|
+
shape as the subreddit listings.
|
|
8
|
+
- **`reddit_subreddit_comments`** (`GET /api/reddit/sub/{name}/comments`) — the
|
|
9
|
+
subreddit NEW-COMMENT stream (every new comment across a community, not one
|
|
10
|
+
post's thread). Same comment shape as `reddit_user_comments`.
|
|
11
|
+
- **`reddit_subreddit_about`** (`GET /api/reddit/sub/{name}/about`) — a
|
|
12
|
+
subreddit's public metadata (title, public description, subscriber count,
|
|
13
|
+
active-user count, creation date, type, NSFW flag). Returns a single object.
|
|
14
|
+
- Brings the published read-only tool count to 15.
|
|
15
|
+
|
|
16
|
+
## 0.1.6
|
|
17
|
+
- `reddit_deep_comment_search` v1.1, driven by a customer report that there was
|
|
18
|
+
no reliable way to expand a search past the first few posts:
|
|
19
|
+
- **Pagination.** The response `after` cursor is now honoured on input — pass it
|
|
20
|
+
back as `after` to expand the next batch of parent posts. Each call stays
|
|
21
|
+
bounded, so a caller can page as deep as they want. (The cursor was previously
|
|
22
|
+
returned but ignored.)
|
|
23
|
+
- **`limit` cap raised 10 -> 25** parent posts per call.
|
|
24
|
+
- **`max_comments`** optional cap on how many comments are returned; the
|
|
25
|
+
highest-scored are kept.
|
|
26
|
+
- Comments now come back **sorted by score** (highest first).
|
|
27
|
+
- Honest completeness meta: `comments_matched` (found) vs `comments_returned`
|
|
28
|
+
(after cap) vs `capped`, alongside `truncated`.
|
|
29
|
+
- Matching now runs on the **visible comment text at word boundaries** (link
|
|
30
|
+
URLs stripped), so a result always mentions the query where a reader can see
|
|
31
|
+
it — fixes the false positives from matching inside link URLs / as substrings.
|
|
32
|
+
|
|
3
33
|
## 0.1.5
|
|
4
34
|
- Description honesty pass, three tool descriptions promised fields the live
|
|
5
35
|
response does not return. All found by the new V-DESC gate
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "redditapis-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
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,14 +126,18 @@ 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, 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-
|
|
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'.",
|
|
130
130
|
shape: {
|
|
131
131
|
...QUERY,
|
|
132
132
|
...SORT_SEARCH,
|
|
133
133
|
...TIME_SEARCH,
|
|
134
134
|
...NSFW,
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
...AFTER,
|
|
136
|
+
limit: z.number().int().min(1).max(25).optional().describe(
|
|
137
|
+
"Number of parent POSTS to expand into their comment trees (1-25, default 5). Each is one upstream read, so higher = deeper coverage but slower and more expensive. To go past 25, paginate with `after`.",
|
|
138
|
+
),
|
|
139
|
+
max_comments: z.number().int().min(1).optional().describe(
|
|
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.",
|
|
137
141
|
),
|
|
138
142
|
},
|
|
139
143
|
},
|
|
@@ -211,6 +215,45 @@ export const TOOLS = [
|
|
|
211
215
|
...LIMIT,
|
|
212
216
|
},
|
|
213
217
|
},
|
|
218
|
+
{
|
|
219
|
+
name: "reddit_user_submitted",
|
|
220
|
+
path: "/api/reddit/user/{name}/submitted",
|
|
221
|
+
description:
|
|
222
|
+
"List a Reddit user's submitted POSTS (their post history, the sibling of reddit_user_comments). Returns posts with title, author, score, comment count, and permalink, plus an `after` cursor. Use to see what a redditor posts, not just what they comment on. Example: name='spez' sort='top'.",
|
|
223
|
+
shape: {
|
|
224
|
+
name: z.string().min(1).describe(
|
|
225
|
+
"Reddit username WITHOUT the u/ prefix (e.g. 'spez'). Required (path parameter).",
|
|
226
|
+
),
|
|
227
|
+
...SORT_USER,
|
|
228
|
+
...TIME,
|
|
229
|
+
...AFTER,
|
|
230
|
+
...LIMIT,
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: "reddit_subreddit_comments",
|
|
235
|
+
path: "/api/reddit/sub/{name}/comments",
|
|
236
|
+
description:
|
|
237
|
+
"Stream the NEWEST comments across an entire subreddit (Reddit's /r/<name>/comments feed), not one post's thread. Returns comments with body, author, score, subreddit, the parent post link, and timestamp, plus an `after` cursor. Poll it to catch new comments in a community as they are posted. Example: name='python'.",
|
|
238
|
+
shape: {
|
|
239
|
+
name: z.string().min(1).describe(
|
|
240
|
+
"Subreddit name WITHOUT the r/ prefix (e.g. 'python'). Required (path parameter).",
|
|
241
|
+
),
|
|
242
|
+
...AFTER,
|
|
243
|
+
...LIMIT,
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
name: "reddit_subreddit_about",
|
|
248
|
+
path: "/api/reddit/sub/{name}/about",
|
|
249
|
+
description:
|
|
250
|
+
"Fetch a subreddit's public metadata by name (Reddit's /r/<name>/about data). Returns the subreddit's title, public description, subscriber count, active-user count, creation timestamp, type, and NSFW flag. Use it to size or vet a community before listing or searching its posts. Example: name='python'.",
|
|
251
|
+
shape: {
|
|
252
|
+
name: z.string().min(1).describe(
|
|
253
|
+
"Subreddit name WITHOUT the r/ prefix (e.g. 'python'). Required (path parameter).",
|
|
254
|
+
),
|
|
255
|
+
},
|
|
256
|
+
},
|
|
214
257
|
];
|
|
215
258
|
|
|
216
259
|
// Turn tool args into a URL query string. Skips undefined/null/empty values.
|