reddit-mcp-server 1.0.3 → 1.0.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/.claude/settings.local.json +10 -1
- package/LICENSE +2 -2
- package/ROADMAP.md +77 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +1680 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1689 -0
- package/eslint.config.js +2 -0
- package/package.json +10 -7
- package/src/bin.ts +3 -3
- package/src/client/__tests__/reddit-client.test.ts +478 -0
- package/src/client/reddit-client.ts +359 -61
- package/src/index.ts +196 -13
- package/src/tools/__tests__/comment-tools.test.ts +119 -0
- package/src/tools/__tests__/search-tools.test.ts +100 -0
- package/src/tools/__tests__/user-tools.test.ts +258 -0
- package/src/tools/comment-tools.ts +61 -0
- package/src/tools/index.ts +2 -0
- package/src/tools/post-tools.ts +4 -4
- package/src/tools/search-tools.ts +67 -0
- package/src/tools/subreddit-tools.ts +2 -2
- package/src/tools/user-tools.ts +100 -1
- package/src/types.ts +2 -0
- package/src/utils/formatters.ts +17 -0
- package/vitest.config.ts +20 -0
|
@@ -16,7 +16,16 @@
|
|
|
16
16
|
"Bash(npx tsup:*)",
|
|
17
17
|
"Bash(find:*)",
|
|
18
18
|
"Bash(rg:*)",
|
|
19
|
-
"Bash(grep:*)"
|
|
19
|
+
"Bash(grep:*)",
|
|
20
|
+
"Bash(npm ls:*)",
|
|
21
|
+
"Bash(git checkout:*)",
|
|
22
|
+
"Bash(pnpm install:*)",
|
|
23
|
+
"Bash(pnpm test:*)",
|
|
24
|
+
"Bash(cp:*)",
|
|
25
|
+
"Bash(mv:*)",
|
|
26
|
+
"Bash(pnpm remove:*)",
|
|
27
|
+
"Bash(npx tsc:*)",
|
|
28
|
+
"Bash(touch:*)"
|
|
20
29
|
],
|
|
21
30
|
"deny": []
|
|
22
31
|
}
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2025
|
|
3
|
+
Copyright (c) 2025 Jordan Burke
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/ROADMAP.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Reddit MCP Server Roadmap
|
|
2
|
+
|
|
3
|
+
## Implemented Features ✅
|
|
4
|
+
- Get subreddit info
|
|
5
|
+
- Get top posts from subreddits
|
|
6
|
+
- Get specific post details
|
|
7
|
+
- Get trending subreddits
|
|
8
|
+
- Get user information
|
|
9
|
+
- Create posts (text/link)
|
|
10
|
+
- Reply to posts
|
|
11
|
+
|
|
12
|
+
## High Priority Features 🔴
|
|
13
|
+
|
|
14
|
+
### 1. Search Functionality
|
|
15
|
+
- **Endpoint**: `/search` and `/r/{subreddit}/search`
|
|
16
|
+
- **Tool Name**: `search_reddit`
|
|
17
|
+
- **Parameters**: query, subreddit (optional), sort, time_filter, limit
|
|
18
|
+
- **Use Case**: Finding specific content, research, monitoring topics
|
|
19
|
+
|
|
20
|
+
### 2. Get Post Comments
|
|
21
|
+
- **Endpoint**: `/r/{subreddit}/comments/{article}`
|
|
22
|
+
- **Tool Name**: `get_post_comments`
|
|
23
|
+
- **Parameters**: post_id, subreddit, sort, limit
|
|
24
|
+
- **Use Case**: Reading full discussions, analyzing conversations
|
|
25
|
+
|
|
26
|
+
### 3. User Activity
|
|
27
|
+
- **Endpoints**: `/user/{username}/submitted`, `/user/{username}/comments`
|
|
28
|
+
- **Tool Names**: `get_user_posts`, `get_user_comments`
|
|
29
|
+
- **Parameters**: username, sort, time_filter, limit
|
|
30
|
+
- **Use Case**: User research, activity analysis
|
|
31
|
+
|
|
32
|
+
## Medium Priority Features 🟡
|
|
33
|
+
|
|
34
|
+
### 4. Voting System
|
|
35
|
+
- **Endpoint**: `/api/vote`
|
|
36
|
+
- **Tool Name**: `vote_on_content`
|
|
37
|
+
- **Parameters**: id, direction (1, 0, -1)
|
|
38
|
+
- **Use Case**: Engaging with content
|
|
39
|
+
|
|
40
|
+
### 5. Save/Unsave Content
|
|
41
|
+
- **Endpoints**: `/api/save`, `/api/unsave`
|
|
42
|
+
- **Tool Names**: `save_content`, `unsave_content`
|
|
43
|
+
- **Parameters**: id
|
|
44
|
+
- **Use Case**: Bookmarking for later
|
|
45
|
+
|
|
46
|
+
### 6. Delete Own Content
|
|
47
|
+
- **Endpoint**: `/api/del`
|
|
48
|
+
- **Tool Name**: `delete_content`
|
|
49
|
+
- **Parameters**: id
|
|
50
|
+
- **Use Case**: Content management
|
|
51
|
+
|
|
52
|
+
## Low Priority Features 🟢
|
|
53
|
+
|
|
54
|
+
### 7. Edit Posts/Comments
|
|
55
|
+
- **Endpoint**: `/api/editusertext`
|
|
56
|
+
- **Tool Name**: `edit_content`
|
|
57
|
+
- **Parameters**: thing_id, text
|
|
58
|
+
- **Use Case**: Fixing typos, updating content
|
|
59
|
+
|
|
60
|
+
### 8. Get Saved Content
|
|
61
|
+
- **Endpoint**: `/user/{username}/saved`
|
|
62
|
+
- **Tool Name**: `get_saved_content`
|
|
63
|
+
- **Parameters**: username, type, limit
|
|
64
|
+
- **Use Case**: Retrieving bookmarked content
|
|
65
|
+
|
|
66
|
+
### 9. Subscribe/Unsubscribe
|
|
67
|
+
- **Endpoints**: `/api/subscribe`
|
|
68
|
+
- **Tool Name**: `manage_subscription`
|
|
69
|
+
- **Parameters**: subreddit, action
|
|
70
|
+
- **Use Case**: Managing subreddit subscriptions
|
|
71
|
+
|
|
72
|
+
## Implementation Notes
|
|
73
|
+
|
|
74
|
+
- All write operations require user authentication (username/password)
|
|
75
|
+
- Rate limiting should be implemented to respect Reddit's API limits
|
|
76
|
+
- Error handling should provide clear messages about authentication requirements
|
|
77
|
+
- Consider implementing caching for frequently accessed data
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|