
MCP Reddit Digest Server

2025.04.14
1
PythonReddit 摘要Slack 集成PDF 报告AI 总结内容生成交流协作
MCP Reddit Digest Server 是一个基于 FastAPI 的 MCP(Model Context Protocol)服务器,用于自动获取、总结并将 Reddit 内容直接发送到 Slack。该系统使用 Azure OpenAI 对选定子版块的顶部帖子进行简洁总结,并将其格式化为有组织的 PDF 报告,与团队共享。
View on GitHub
Overview
✨ 核心功能
- 智能 Reddit 监控:按主题(AI、网络安全、编程)获取顶部帖子或指定自定义子版块
- AI 驱动的总结:使用 Azure OpenAI 压缩冗长的 Reddit 讨论
- 干净的 Markdown 格式化:生成结构良好的摘要,按子版块组织帖子
- 专业的 PDF 报告:使用自定义 CSS 将 Markdown 转换为样式化的 PDF
- Slack 集成:自动将摘要发送到团队的 Slack 频道
- 定时发送:配置每日或自定义时间表的自动摘要
- 模块化架构:轻松扩展新功能或集成
🚀 适用场景
- 团队需要定期获取 Reddit 上的最新技术动态
- 需要将 Reddit 内容自动总结并分享到 Slack
- 需要生成专业的 PDF 报告以便于阅读和存档
🛠️ 工具列表
- hello_tool.py:简单的测试工具
- reddit_digest/:Reddit 摘要功能
- markdown_generator.py:生成 Markdown 格式的摘要
- pdf_generator.py:将 Markdown 转换为 PDF
- reddit_fetcher.py:获取 Reddit 帖子
- style.css:PDF 样式
- tool.py:主要摘要逻辑
❓ 常见问题解答
- 如何获取 Reddit API 凭证?:需要在 Reddit 开发者门户注册应用
- 如何配置 Azure OpenAI?:需要提供 Azure OpenAI 的 API 密钥、端点、部署名称和 API 版本
- 如何设置 Slack 集成?:需要在 Slack 工作区创建应用并获取 bot token
📦 使用教程
使用依赖
- Python 3.8+
- Reddit API 凭证
- Azure OpenAI API 访问权限
- Slack 工作区与 bot 集成
环境设置
在项目根目录创建 .env
文件,包含以下变量:
# Reddit API
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret
REDDIT_USERNAME=your_username
REDDIT_PASSWORD=your_password
USER_AGENT=your_user_agent
# Azure OpenAI
AZURE_OPENAI_KEY=your_openai_key
AZURE_OPENAI_API_VERSION=your_api_version
AZURE_OPENAI_ENDPOINT=your_endpoint
AZURE_OPENAI_DEPLOYMENT=your_deployment_name
# Slack
SLACK_BOT_TOKEN=your_slack_bot_token
SLACK_CHANNEL_ID=your_channel_id
安装教程
# 克隆仓库
git clone https://github.com/yourusername/mcp-reddit-digest.git
cd mcp-reddit-digest
# 安装依赖
pip install -r requirements.txt
# 启动服务器
uvicorn mcp_server.main:app --reload
调试方式
测试端点
curl -X POST "http://localhost:8000/mcp/hello"
生成主题摘要
curl -X POST "http://localhost:8000/mcp/reddit" \
-H "Content-Type: application/json" \
-d '{"input": "ai"}'
生成自定义子版块摘要
curl -X POST "http://localhost:8000/mcp/reddit/subreddit" \
-H "Content-Type: application/json" \
-d '{"input": "MachineLearning, artificial, IndiaTech"}'