Reddit内容分析服务器

一个提供原子化工具与Reddit API交互的模型上下文协议(MCP)服务器,支持通过自然语言命令搜索、读取和分析Reddit内容。

  • by Pranay-A17
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 pranay-a17/reddit-mcp-server

使用说明

Reddit MCP服务器

模型上下文协议(MCP)服务器,为与Reddit的API交互提供原子工具。该服务器使AI代理能够通过自然语言命令搜索、阅读和分析Reddit内容。

特性

  • 搜索Reddit帖子 按关键字、子版块和时间段
  • 获取帖子详细信息 包括评论、分数和元数据
  • 列出子版块 有热门话题和社区信息
  • 获取用户资料 以及他们最近的活动
  • 搜索评论 在Reddit上
  • 获取热门帖子 来自特定的子版块

安装

先决条件

  • Python 3.8或更高版本
  • Reddit API凭据(客户端ID和客户端机密)

设置

  1. 克隆或下载此存储库

  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 获取Reddit API凭据

    要使用此MCP服务器,您需要创建一个Reddit应用程序:

    1. 首选https://www.reddit.com/prefs/apps
    2. 点击“创建应用程序”或“创建另一个应用程序”
    3. 选择“脚本”作为应用程序类型
    4. 填写必填字段:
      • 名字:您的应用程序名称(例如“MCP Reddit服务器”)
      • 描述:简要说明
      • 关于URL:可以留空
      • 重定向URI:使用 http://localhost:8080 (实际上不用于脚本应用程序)
    5. 点击“创建应用”
    6. 记下你的 客户端ID (应用名称下的字符串)和 客户端密钥
  4. 配置环境变量

    创建一个 .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 (字符串,可选):将搜索限制到特定的subreddit
  • limit (整数,可选):结果数量(默认值: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 (字符串,可选):将搜索限制到特定的subreddit
  • limit (整数,可选):结果数量(默认值: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服务器集合的一部分。