MCP Reddit Digest Server

MCP Reddit Digest Server

site icon
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"}'

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。