使用说明
Reddit MCP服务器
一 MCP(模型上下文协议) 让克劳德访问Reddit的服务器。浏览子版块、阅读帖子和评论、搜索内容、提交帖子、评论、投票和保存——所有这些都可以在Claude Code或任何兼容MCP的客户端中完成。
特性
12工具 涵盖完整的Reddit体验:
| 工具 | 说明 |
|---|---|
get_subreddit_posts |
使用排序/时间过滤器和分页从subreddit获取帖子 |
get_subreddit_info |
获取subreddit元数据——订阅者、描述、规则 |
search_posts |
在Reddit或特定子版块内搜索帖子 |
search_subreddits |
按名称或主题搜索子版块 |
read_post |
以可配置的深度阅读帖子及其评论树 |
get_user_profile |
获取用户的个人资料——业力、账户年龄、个人简介 |
get_user_posts |
获取用户提交的帖子 |
get_user_comments |
获取用户发布的评论 |
submit_post |
向subreddit提交文本或链接帖子 |
submit_comment |
回复帖子或评论 |
vote |
投票赞成、投票反对或取消投票 |
save_post |
保存或取消保存帖子或评论 |
先决条件
- Java 21 或以后
- Maven 3.8+ (从源代码构建)
- A. Reddit账号
设置
1.创建一个Reddit应用程序
- 首选 reddit.com/prefs/apps
- 点击 “创建另一个应用程序…”
- 填写:
- 姓名:
MCP(或任何你喜欢的东西) - 类型: 选择 已安装的应用程序
- 重定向uri:
http://localhost:PORT/callback(安装向导将告诉您确切的端口)
- 姓名:
- 点击 创建应用程序
- 复制 客户端ID 显示在应用程序名称下
2.建造
git clone https://github.com/wrxck/reddit-mcp.git
cd reddit-mcp
mvn clean package -DskipTests
这产生 target/reddit-mcp-1.0.0.jar --一个自包含的可执行JAR。
3.运行安装程序
java -jar target/reddit-mcp-1.0.0.jar --init
这将:
- 提示输入您的Reddit客户端ID
- 将配置保存到
~/.reddit-mcp/config.properties - 打开浏览器获取Reddit OAuth授权
- 将令牌保存到
~/.reddit-mcp/tokens.json - 使用Claude Code自动注册服务器
4.重新启动克劳德代码
这 reddit MCP服务器将在您的下一个Claude Code会话中可用。
用法
一旦设置好,Claude就可以自然地使用Reddit工具:
> What's trending on r/programming right now?
> Search Reddit for discussions about MCP servers
> Read the comments on that top post
> What has u/spez posted recently?
写入操作在执行前需要确认:
> Upvote that post
> Reply to that comment with "Great explanation, thanks!"
> Submit a post to r/test titled "Hello from MCP"
手动注册
如果自动注册不起作用,请手动注册:
claude mcp add --scope user --transport stdio reddit -- \
java -jar /path/to/reddit-mcp-1.0.0.jar
重新验证
如果您的Reddit令牌过期或您需要切换帐户:
java -jar target/reddit-mcp-1.0.0.jar --auth
安全
- 内容净化 --所有Reddit内容(标题、帖子正文、评论、用户名)都被包裹在唯一的边界标记中,并附有将其视为不可信数据的说明。这可以防止通过Reddit内容迅速注入。
- 令牌存储 --OAuth令牌和配置文件存储在
600POSIX权限(仅限所有者读/写)。 - 输入验证 -在任何API调用之前,都会根据严格的regex模式验证子域名、用户名和事物ID。
- CSRF保护 --OAuth流使用加密状态参数来防止跨站点请求伪造。
速率限制
服务器强制执行两层速率限制:
- 本地 --最多55个请求/分钟(低于Reddit的60/分钟限制),通过滑动窗口跟踪。
- 服务器 --尊重
X-Ratelimit-Remaining和X-Ratelimit-ResetReddit的标题。接近服务器端限制时自动等待。
从源头构建
mvn clean verify
这将编译、运行所有126个测试,并生成着色的JAR。
项目结构
src/main/java/com/reddit/mcp/
├── RedditMcpServer.java # Entry point, CLI args, server wiring
├── RedditClient.java # HTTP client, token management, API methods
├── RedditAuth.java # OAuth2 flow, config/token persistence
├── RedditTools.java # 8 read-only MCP tool definitions
├── RedditWriteTools.java # 4 write MCP tool definitions
├── ResponseParser.java # Reddit JSON → structured maps
├── ContentSanitizer.java # Prompt injection defence
├── Validation.java # Input validation (regex patterns)
├── RateLimiter.java # Dual-layer rate limiting
├── ResultHelper.java # MCP result formatting utilities
└── ClaudeRegistration.java # Auto-registration with Claude Code