MCP Reddit Digest Server
一个基于 FastAPI 的 MCP 服务器工具,它使用 Azure OpenAI 获取并总结 Reddit 热门帖子。它会生成每日 PDF 摘要并将其上传到 Slack,支持基于主题的 subreddit 和计划任务。
omendra02
README
MCP Reddit 摘要服务器
一个基于 FastAPI 的 MCP (模型上下文协议) 服务器,可以自动获取、总结 Reddit 内容并直接发送到 Slack。该系统使用 Azure OpenAI 创建来自选定 subreddit 的热门帖子的简洁摘要,将其格式化为有组织的 PDF 报告,并与您的团队共享。
✨ 功能
- 🔍 智能 Reddit 监控: 按主题(AI、网络安全、编程)获取热门帖子,或指定自定义 subreddit
- 🧠 AI 驱动的摘要: 使用 Azure OpenAI 浓缩冗长的 Reddit 讨论
- 📝 整洁的 Markdown 格式: 生成结构良好的摘要,帖子按 subreddit 组织
- 📄 专业的 PDF 报告: 将 markdown 转换为带有自定义 CSS 的样式化 PDF
- 🔔 Slack 集成: 自动将摘要发送到您团队的 Slack 频道
- ⏱️ 定时发送: 配置每日或自定义计划的自动摘要
- 🧩 模块化架构: 轻松扩展新功能或集成
快速开始
前提条件
- Python 3.8+
- Reddit API 凭据
- Azure OpenAI API 访问权限
- 具有机器人集成的 Slack 工作区
环境设置
在项目根目录中创建一个 .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
🔧 用法
API 接口
GET /
- 健康检查接口POST /mcp/hello
- 用于验证连接的测试接口POST /mcp/reddit
- 按主题(ai、网络安全、技术更新等)生成摘要POST /mcp/reddit/subreddit
- 从自定义 subreddit 生成摘要
示例请求
按主题生成摘要:
curl -X POST "http://localhost:8000/mcp/reddit" \
-H "Content-Type: application/json" \
-d '{"input": "ai"}'
为特定 subreddit 生成摘要:
curl -X POST "http://localhost:8000/mcp/reddit/subreddit" \
-H "Content-Type: application/json" \
-d '{"input": "MachineLearning, artificial, IndiaTech"}'
⚙️ 配置
定时摘要
系统配置为运行定时摘要。 编辑 scheduler.py
以调整时间:
# 用于生产环境(每天上午 9 点运行)
scheduler.add_job(scheduled_reddit_digest, 'cron', hour=9, minute=0)
# 用于测试(每分钟运行一次)
scheduler.add_job(scheduled_reddit_digest, 'interval', minutes=1)
主题映射
默认的主题到 subreddit 的映射在 reddit_fetcher.py
中定义。 根据需要添加或修改映射:
TOPIC_SUBREDDITS = {
"tech update": ["technology", "technews", "IndiaTech", "developersIndia"],
"ai": ["MachineLearning", "ArtificialIntelligence", "Singularity", "artificial"],
# 在此处添加新映射
}
🔄 项目结构
mcp_server/
├── core/
│ ├── slack_notifiers.py # Slack 集成
│ ├── summarizer.py # Azure OpenAI 集成
│ └── utils.py # 辅助函数
├── tools/
│ ├── hello_tool.py # 简单的测试工具
│ └── reddit_digest/ # Reddit 摘要功能
│ ├── markdown_generator.py
│ ├── pdf_generator.py
│ ├── reddit_fetcher.py
│ ├── style.css # PDF 样式
│ └── tool.py # 主要摘要逻辑
├── main.py # FastAPI 应用程序
├── mcp.json # 工具定义
└── scheduler.py # 自动化任务
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。