使用说明
Reddit MCP服务器
模型上下文协议(MCP)服务器,为与Reddit的API交互提供原子工具。该服务器使AI代理能够通过自然语言命令搜索、阅读和分析Reddit内容。
特性
- 搜索Reddit帖子 按关键字、子版块和时间段
- 获取帖子详细信息 包括评论、分数和元数据
- 列出子版块 有热门话题和社区信息
- 获取用户资料 以及他们最近的活动
- 搜索评论 在Reddit上
- 获取热门帖子 来自特定的子版块
安装
先决条件
- Python 3.8或更高版本
- Reddit API凭据(客户端ID和客户端机密)
设置
-
克隆或下载此存储库
-
安装依赖项
pip install -r requirements.txt -
获取Reddit API凭据
要使用此MCP服务器,您需要创建一个Reddit应用程序:
- 首选https://www.reddit.com/prefs/apps
- 点击“创建应用程序”或“创建另一个应用程序”
- 选择“脚本”作为应用程序类型
- 填写必填字段:
- 名字:您的应用程序名称(例如“MCP Reddit服务器”)
- 描述:简要说明
- 关于URL:可以留空
- 重定向URI:使用
http://localhost:8080(实际上不用于脚本应用程序)
- 点击“创建应用”
- 记下你的 客户端ID (应用名称下的字符串)和 客户端密钥
-
配置环境变量
创建一个
.env在项目根目录中创建文件或设置以下环境变量:export REDDIT_CLIENT_ID="your_client_id_here" export REDDIT_CLIENT_SECRET="your_client_secret_here" export REDDIT_USER_AGENT="MCP_Reddit_Server/1.0 (by /u/your_username)"
用法
运行服务器
python reddit_mcp_server.py
服务器将于启动 localhost:8080 默认情况下。
连接到MCP客户端
将此服务器添加到MCP客户端配置中:
{
"mcpServers": {
"reddit": {
"command": "python",
"args": ["/path/to/reddit_mcp_server.py"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_USER_AGENT": "MCP_Reddit_Server/1.0"
}
}
}
}
可用工具
search_reddit_posts
在Reddit或特定的子版块中搜索帖子。
参数:
query(字符串,必填):搜索词subreddit(字符串,可选):将搜索限制到特定的subredditlimit(整数,可选):结果数量(默认值:10,最大值:100)time_filter(字符串,可选):时间段(小时、天、周、月、年、全部)
示例用法:
- “搜索有关Python编程的帖子”
- “在r/MachineLearning中查找有关机器学习的最新帖子”
- “获取过去一周关于人工智能的前20篇帖子”
get_post_details
获取有关特定Reddit帖子的详细信息。
参数:
post_id(字符串,必填):Reddit帖子ID或完整URL
示例用法:
- “获取t3_abc123帖子的详细信息”
- “显示以下内容的完整帖子和评论https://reddit.com/r/Python/comments/abc123"
list_subreddits
获取有关子版块的信息,包括热门话题。
参数:
query(字符串,可选):搜索特定的子版块limit(整数,可选):结果数量(默认值:10)
示例用法:
- “列出热门节目子版块”
- “查找有关数据科学的子版块”
get_user_profile
获取Reddit用户及其最近活动的信息。
参数:
username(字符串,必填):Reddit用户名
示例用法:
- “获取用户u/spez的配置文件”
- “按用户名显示最近的帖子”
search_comments
在Reddit上搜索评论。
参数:
query(字符串,必填):搜索词subreddit(字符串,可选):将搜索限制到特定的subredditlimit(整数,可选):结果数量(默认值:10)
示例用法:
- “搜索关于React钩子的评论”
- “在r/Docker中查找关于Docker的评论”
get_trending_posts
从特定的subreddit获取趋势帖子。
参数:
subreddit(字符串,必填):子文件夹名称(不带r/)limit(整数,可选):结果数量(默认值:10)time_filter(字符串,可选):时间段(小时、天、周、月、年、全部)
示例用法:
- “从r/Python获取趋势帖子”
- “向我展示本周r/technology的热门帖子”
错误处理
该服务器包括强大的错误处理功能,用于:
- API凭据无效
- 速率限制(Reddit API有速率限制)
- 网络连接问题
- 无效参数
- 缺少或格式错误的响应
所有错误都会返回清晰、可操作的消息,帮助人工智能了解出了什么问题,并可能进行自我纠正。
速率限制
Reddit的API有费率限制:
- 每分钟60个经过身份验证的请求
- 服务器会自动处理速率限制,并在可能的情况下重试请求
安全说明
- 永远不要将您的Reddit API凭据提交到版本控制
- 对所有敏感配置使用环境变量
- 服务器只对Reddit的API发出只读请求
- 访问公共数据不需要用户身份验证
贡献
此MCP服务器遵循Klavis AI开发指南:
- 原子、单一用途工具
- 清晰、描述性的工具名称和描述
- 全面的错误处理
- 以用户为中心的AI代理设计
许可证
该项目是Klavis AI MCP服务器集合的一部分。