使用说明
Reddit MCP 服务器
一个FastMCP服务器,提供Reddit数据和帖子的访问权限,用于Poke集成。
🚀 功能特点
- 获取子版块帖子获取任意子论坛的热门帖子
- 搜索Reddit搜索整个Reddit
- 获取用户帖子获取特定Reddit用户的帖子
Reddit API 设置
此服务器需要Reddit API凭证:
- 首选 Reddit 应用偏好设置
- 点击“创建应用”或“创建另一个应用”
- 选择“脚本”作为应用类型
- 记下你的
client_id并且client_secret - 设置环境变量:
export REDDIT_CLIENT_ID=your_client_id export REDDIT_CLIENT_SECRET=your_client_secret
🛠️ 本地开发
# Install dependencies
pip install -r requirements.txt
# Set Reddit API credentials
export REDDIT_CLIENT_ID=your_client_id
export REDDIT_CLIENT_SECRET=your_client_secret
# Run the server
python src/server.py
🚢 部署
部署到Render
步骤:
- 点击上方的“部署到Render”按钮 或者前往 render.com(通常可直接译为“Render.com”,若需更具体的语境翻译,需更多上下文信息)
- 将您的GitHub帐户连接到Render (如果你还没做的话)
- 创建一个新的Web服务:
- 连接此存储库
- 名字:
reddit-mcp - 环境:
Python 3 - 计划:
Free - 构建命令:
pip install -r requirements.txt - 启动命令:
python src/server.py
- 将Reddit API凭据添加到环境变量中:
- 前往您的渲染服务仪表板
- 点击“环境”选项卡
- 添加这些环境变量:
REDDIT_CLIENT_ID=your_client_id_hereREDDIT_CLIENT_SECRET=your_client_secret_here
- 点击“保存更改”
- 部署!
注:在Render的免费套餐中,服务在闲置约15分钟后会进入空闲状态,并且可能需要手动执行“部署”操作来唤醒或获取最新的提交。与Vercel不同,默认情况下推送不会自动部署。
您的服务器将在 https://reddit-mcp.onrender.com/mcp
获取Reddit API凭证
- 首选 Reddit 应用偏好设置
- 点击“创建应用”或“创建另一个应用”
- 填写表格:
- 名字:
pokeMCPMarket - 应用类型:
script(个人使用脚本) - 描述:
MCP server for accessing Reddit data through Poke marketplace integration - 关于URL:
https://github.com/yourusername/mcp-reddit - 重定向URI:
http://localhost:8080
- 名字:
- 点击“创建应用”
- 复制你的
client_id并且client_secret - 将它们添加到渲染环境变量中,如上图所示
🎯 投食(Poke)集成
- 首选 poke.com/settings/connections 翻译为中文是:“poke.com 设置/连接”
- 添加MCP URL:
https://reddit-mcp.onrender.com/mcp - 给它起个名字,比如“Reddit”
- 尝试:“你能用Reddit的MCP(可能是指某种工具或API)从r/python子版块获取帖子吗?”
参考文献
- 基于Interaction MCP服务器模板: MCP服务器模板
- 通过Interaction的HackMIT挑战发现: 互动黑客麻省理工挑战赛
🔧 可用工具
get_subreddit_posts(subreddit, limit=10, sort="hot")从一个子版块获取帖子search_reddit(query, limit=10, sort="relevance")搜索整个Redditget_user_posts(username, limit=10, sort="new")获取用户的帖子
📝 示例用法
# Get hot posts from r/programming
get_subreddit_posts(subreddit="programming", limit=5, sort="hot")
# Search for Python posts
search_reddit(query="python programming", limit=10, sort="relevance")
# Get posts from a specific user
get_user_posts(username="spez", limit=5, sort="new")
📊 帖子数据结构
每个返回的帖子都包括:
title帖子标题author作者的用户名score净点赞数(点赞数 - 点踩数)upvote_ratio点赞数与总投票数的比例num_comments评论数url外部网址(如果不是自帖)permalinkReddit 永久链接created_utc创建时间戳(Unix)selftext帖子文本内容(针对自创帖子)subreddit子版块名称is_self无论是自发布帖over_18是否涉及不适宜工作场所的内容(NSFW)
⚠️ 请求速率限制
Reddit API有速率限制:
- 未经认证每分钟60个请求
- 带有身份验证每分钟100个请求
如果超出速率限制,服务器将返回错误。
🔍 排序选项
子版块帖子
hot热门帖子(默认)new最新帖子top有史以来最热门的帖子rising职位晋升
搜索
relevance最相关(默认)hot热门帖子top热门帖子new最新帖子comments评论最多
用户发帖
new最新帖子(默认)hot热门帖子top热门帖子controversial最具争议的帖子