redditapis-mcp 0.1.3 → 0.1.5
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 +21 -0
- package/package.json +1 -1
- package/src/tools.js +19 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.5
|
|
4
|
+
- Description honesty pass, three tool descriptions promised fields the live
|
|
5
|
+
response does not return. All found by the new V-DESC gate
|
|
6
|
+
(reconcile-description-shape.mjs), which probes EVERY tool against the live API
|
|
7
|
+
and asserts no description claims a field the response lacks:
|
|
8
|
+
- `reddit_search_media` claimed a `permalink`; the response carries `url`. Corrected.
|
|
9
|
+
- `reddit_subreddit_posts` claimed `flair` and `media`; neither is in the
|
|
10
|
+
`/posts` response (fields are title, author, upvotes, comments, permalink, url,
|
|
11
|
+
text). Removed.
|
|
12
|
+
- `reddit_post` claimed `body/selftext` and `media`; `/post/{id}` returns `text`
|
|
13
|
+
(no `body`, no `selftext`, no `media`). Corrected to `text`.
|
|
14
|
+
|
|
15
|
+
## 0.1.4
|
|
16
|
+
- New tool `reddit_deep_comment_search`. Where `reddit_search_comments` returns
|
|
17
|
+
the parent posts (Reddit's comment search never hands back the comment), this
|
|
18
|
+
returns the ACTUAL matching comments with body, score, author, a comment-deep
|
|
19
|
+
permalink, and the parent post. It fetches each matching post's comment tree
|
|
20
|
+
and filters the bodies. Premium call (`limit` = parent posts to expand, 1-10).
|
|
21
|
+
Best-effort: a deleted or deeply-nested comment may be missed. Also cross-links
|
|
22
|
+
the two tools in their descriptions.
|
|
23
|
+
|
|
3
24
|
## 0.1.3
|
|
4
25
|
- `reddit_search_comments` description no longer overpromises. It previously
|
|
5
26
|
claimed to "Return matching comments with author, body, score" and to find
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "redditapis-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
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
|
@@ -69,7 +69,7 @@ export const TOOLS = [
|
|
|
69
69
|
name: "reddit_subreddit_posts",
|
|
70
70
|
path: "/api/reddit/posts",
|
|
71
71
|
description:
|
|
72
|
-
"List posts from a subreddit by sort order. Use this to read a community's feed: newest, hot/trending, top-of-week, rising, etc. Returns post title, author, score, comment count,
|
|
72
|
+
"List posts from a subreddit by sort order. Use this to read a community's feed: newest, hot/trending, top-of-week, rising, etc. Returns post title, author, score, comment count, and permalink, plus an `after` cursor for paging. Example: subreddit='programming' sort='top' t='week'.",
|
|
73
73
|
shape: {
|
|
74
74
|
subreddit: z.string().min(1).describe(
|
|
75
75
|
"Subreddit name WITHOUT the r/ prefix (e.g. 'programming', 'AskReddit'). Required.",
|
|
@@ -119,14 +119,29 @@ export const TOOLS = [
|
|
|
119
119
|
name: "reddit_search_comments",
|
|
120
120
|
path: "/api/reddit/search/comments",
|
|
121
121
|
description:
|
|
122
|
-
"Search Reddit by COMMENT text. Reddit's comment search matches your keyword against comment bodies but returns the PARENT POSTS, not the individual comments, so each result is a post whose discussion mentions your query, carrying that post's title, selftext, score, and comment count. Use it to surface threads where a topic comes up in the replies that plain post-title search would miss. Reddit does not expose which specific comment matched or its text, so this returns posts, not comment bodies. Example: q='best mechanical keyboard' sort='top'.",
|
|
122
|
+
"Search Reddit by COMMENT text. Reddit's comment search matches your keyword against comment bodies but returns the PARENT POSTS, not the individual comments, so each result is a post whose discussion mentions your query, carrying that post's title, selftext, score, and comment count. Use it to surface threads where a topic comes up in the replies that plain post-title search would miss. Reddit does not expose which specific comment matched or its text, so this returns posts, not comment bodies. For the actual comment bodies, use reddit_deep_comment_search. Example: q='best mechanical keyboard' sort='top'.",
|
|
123
123
|
shape: { ...QUERY, ...SORT_SEARCH, ...TIME_SEARCH, ...AFTER, ...NSFW, ...LIMIT },
|
|
124
124
|
},
|
|
125
|
+
{
|
|
126
|
+
name: "reddit_deep_comment_search",
|
|
127
|
+
path: "/api/reddit/search/comments/deep",
|
|
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-10 (default 5), not how many comments come back. Best-effort: a deleted or deeply-nested comment may be missed (a truncated flag says when a tree was too deep). Example: q='best mechanical keyboard' sort='top'.",
|
|
130
|
+
shape: {
|
|
131
|
+
...QUERY,
|
|
132
|
+
...SORT_SEARCH,
|
|
133
|
+
...TIME_SEARCH,
|
|
134
|
+
...NSFW,
|
|
135
|
+
limit: z.number().int().min(1).max(10).optional().describe(
|
|
136
|
+
"Number of parent POSTS to expand into their comment trees (1-10, default 5). Each is one upstream read, so higher = deeper coverage but slower and more expensive.",
|
|
137
|
+
),
|
|
138
|
+
},
|
|
139
|
+
},
|
|
125
140
|
{
|
|
126
141
|
name: "reddit_search_media",
|
|
127
142
|
path: "/api/reddit/search/media",
|
|
128
143
|
description:
|
|
129
|
-
"Search Reddit posts filtered to media (images, video, gifs). Returns media posts with the media URL/type, author, score, and
|
|
144
|
+
"Search Reddit posts filtered to media (images, video, gifs). Returns media posts with the media URL/type, author, score, and the post url. Use `kind` to narrow to a media type. Example: q='aurora borealis' kind='image'.",
|
|
130
145
|
shape: {
|
|
131
146
|
...QUERY,
|
|
132
147
|
kind: z.enum(["image", "video", "gif", "all"]).optional().describe(
|
|
@@ -164,7 +179,7 @@ export const TOOLS = [
|
|
|
164
179
|
name: "reddit_post",
|
|
165
180
|
path: "/api/reddit/post/{id}",
|
|
166
181
|
description:
|
|
167
|
-
"Fetch a single Reddit post by its id. Returns the full post object (title, author, score,
|
|
182
|
+
"Fetch a single Reddit post by its id. Returns the full post object (title, author, score, text, permalink, subreddit, url). Use when you already have a post id and want its details. Example: id='abc123' (the base-36 id, no t3_ prefix).",
|
|
168
183
|
shape: {
|
|
169
184
|
id: z.string().min(1).describe(
|
|
170
185
|
"The post's base-36 id (e.g. 'abc123'), without the 't3_' fullname prefix. Required (path parameter).",
|