使用说明
mcp reddit
功能齐全 模型上下文协议(MCP) Reddit的服务器。浏览、搜索、发布、评论、投票、消息和监控关键字——所有这些都可以通过你的人工智能助手完成。
特性
28工具 7个类别:
| 类别 | 工具 |
|---|---|
| 浏览和搜索 | fetch_reddit_hot_threads, fetch_subreddit_posts, fetch_subreddit_info, fetch_reddit_post_content, search_reddit, fetch_front_page |
| 用户和个人资料 | fetch_user_profile, fetch_user_posts, fetch_user_comments, fetch_my_profile |
| 发布 | create_text_post, create_link_post, edit_post, delete_post, fetch_post_flair_choices |
| 评论 | reply_to_post, reply_to_comment, edit_comment, delete_comment |
| 投票 | vote (赞成票、反对票、对帖子和评论不投票) |
| 保存 | save_item, unsave_item |
| 消息 | send_message, fetch_inbox, fetch_unread_messages |
| 监视器 | monitor_keywords (多关键字、多个子版块、重复数据删除、评分) |
先决条件
- Python 3.11+
- 紫外线 (推荐)或pip
- Reddit API证书 --在以下位置创建应用程序 reddit.com/prefs/apps
设置
1.获取Reddit API凭据
- 首选 reddit.com/prefs/apps
- 点击 “创建另一个应用程序…”
- 填写:
- 名字:任何东西(例如。
mcp-reddit) - 类型:选择 网络应用
- 重定向URI:
http://localhost:8080
- 名字:任何东西(例如。
- 注意你的 客户端ID (在应用程序名称下)和 客户端密钥
2.获取刷新令牌
# Clone the repo
git clone https://github.com/raiansar/mcp-reddit.git
cd mcp-reddit
# Copy the example env and fill in your client ID and secret
cp .env.example .env
# Edit .env with your REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET
# Run the token generator
python get_token.py
这将打开您的浏览器进行Reddit OAuth授权。批准后,将重定向URL粘贴回终端。该脚本将您的刷新令牌保存到 .env.
3.设置环境变量
您需要三个环境变量:
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret
REDDIT_REFRESH_TOKEN=your_refresh_token
你可以把它们放在 .env 在项目根目录中创建文件,或直接在MCP配置中传递它们(如下所示)。
安装
克劳德代码(CLI)
claude mcp add reddit -- uv run --directory /path/to/mcp-reddit mcp-reddit
或者将环境变量内联:
claude mcp add reddit \
-e REDDIT_CLIENT_ID=your_client_id \
-e REDDIT_CLIENT_SECRET=your_client_secret \
-e REDDIT_REFRESH_TOKEN=your_refresh_token \
-- uv run --directory /path/to/mcp-reddit mcp-reddit
克劳德桌面版
添加到您的Claude Desktop配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"reddit": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-reddit", "mcp-reddit"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
Claude Cowork(settings.json)
添加到您的项目 .claude/settings.json 或 ~/.claude/settings.json:
{
"mcpServers": {
"reddit": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-reddit", "mcp-reddit"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
从PyPI安装(即将推出)
# Once published:
uvx mcp-reddit
码头工人
docker build -t mcp-reddit .
docker run -e REDDIT_CLIENT_ID=... -e REDDIT_CLIENT_SECRET=... -e REDDIT_REFRESH_TOKEN=... mcp-reddit
工具参考
浏览和搜索
| 工具 | 说明 |
|---|---|
fetch_reddit_hot_threads(subreddit, limit) |
从subreddit获取热门帖子 |
fetch_subreddit_posts(subreddit, sort, time_filter, limit) |
获取具有排序控制的帖子(热门/新/热门/上升/有争议) |
fetch_subreddit_info(subreddit) |
获取subreddit元数据(描述、规则、订阅者) |
fetch_reddit_post_content(post_id, comment_limit, comment_depth) |
使用嵌套的评论树获取完整的帖子内容 |
search_reddit(query, subreddit, sort, time_filter, limit) |
在Reddit上或子版块内搜索 |
fetch_front_page(sort, time_filter, limit) |
获取头版帖子(经过身份验证后个性化) |
用户和个人资料
| 工具 | 说明 |
|---|---|
fetch_user_profile(username) |
获取用户的公开资料(因果报应,蛋糕日) |
fetch_user_posts(username, sort, limit) |
获取用户提交的帖子 |
fetch_user_comments(username, sort, limit) |
获取用户的评论 |
fetch_my_profile() |
获取您自己的个人资料信息 |
文章(写作)
| 工具 | 说明 |
|---|---|
create_text_post(subreddit, title, body, ...) |
提交文本/自帖 |
create_link_post(subreddit, title, url, ...) |
提交链接帖子 |
edit_post(post_id, new_body) |
编辑您自己的文本帖子 |
delete_post(post_id) |
删除您自己的帖子 |
fetch_post_flair_choices(subreddit) |
列出subreddit的可用天赋选项 |
评论(写)
| 工具 | 说明 |
|---|---|
reply_to_post(post_id, body) |
添加顶级评论 |
reply_to_comment(comment_id, body) |
对现有评论的回复 |
edit_comment(comment_id, new_body) |
编辑您自己的评论 |
delete_comment(comment_id) |
删除您自己的评论 |
投票并保存
| 工具 | 说明 |
|---|---|
vote(target_id, direction, target_type) |
赞成票(1)、反对票(-1)或未投票(0) |
save_item(target_id, target_type) |
保存帖子或评论 |
unsave_item(target_id, target_type) |
取消保存帖子或评论 |
消息传递
| 工具 | 说明 |
|---|---|
send_message(to, subject, body) |
发送私人消息 |
fetch_inbox(limit) |
阅读收件箱消息 |
fetch_unread_messages(limit) |
仅读取未读邮件 |
关键字监控
| 工具 | 说明 |
|---|---|
monitor_keywords(keywords, subreddits, since_minutes, limit_per_search, only_new) |
通过评分、重复数据删除和查看帖子跟踪来监控多个子版块中的多个关键字 |
例子
> What's hot on r/programming?
→ Uses fetch_reddit_hot_threads("programming")
> Search for "rust async" discussions from the past week
→ Uses search_reddit("rust async", sort="relevance", time_filter="week")
> Post a question to r/learnpython
→ Uses create_text_post("learnpython", "How do I...", "I'm trying to...")
> Monitor mentions of "claude" and "mcp" in r/LocalLLaMA and r/artificial
→ Uses monitor_keywords(["claude", "mcp"], ["LocalLLaMA", "artificial"])
许可证
麻省理工学院