mcpField
R
Reddit MCP 服务器

Reddit MCP 服务器

本地服务
github.com/SzeMeng76社交媒体245 周前更新

关于 Reddit MCP 服务器

一个通过 Reddit API 获取公开 Reddit 数据的 TypeScript MCP 服务。它支持发现 subreddit、查询帖子和评论,并提供 OAuth 令牌管理。

主要功能

  1. 01查询与发现 subreddit
  2. 02按排序和时间筛选帖子
  3. 03获取帖子和评论详情
  4. 04OAuth 身份验证与令牌刷新

适用场景

  1. 01查找 subreddit 中的热门帖子
  2. 02研究某个主题的公开讨论
  3. 03比较不同社区及其订阅人数
  4. 04查看帖子的评论

MCP 相关

向 MCP 客户端提供 subreddit 查询、帖子和评论获取及搜索工具,通过 Reddit API 访问公开数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"reddit-ts": {
"command": "npx",
"args": [
"-y",
"reddit-mcp"
]
}
}
}
启动命令npx -y reddit-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmreddit-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🔴 Reddit MCP 服务

中文版 | English

通过 Reddit API 访问 Reddit 数据的全面 MCP 服务

🎯 概述

一个 Model Context Protocol(MCP)服务,可无缝访问 Reddit 数据,包括 subreddit、帖子、评论和搜索功能。使用 TypeScript 和官方 Reddit API 构建,确保数据检索可靠、快速。

✨ 功能

  • 🏠 Subreddit 信息:获取任意 subreddit 的详细信息
  • 🔍 帖子搜索:在 subreddit 中搜索帖子,并提供多种排序选项
  • 📝 帖子详情:获取完整的帖子信息,包括内容和元数据
  • 💬 评论:使用不同的排序方法获取帖子的评论
  • 🌐 Subreddit 发现:搜索并发现新的 subreddit
  • 🔑 OAuth 身份验证:使用 Reddit API 凭证安全访问
  • 🔄 自动令牌刷新:自动管理访问令牌
  • 🎨 丰富的格式:以格式清晰的形式返回全面的数据
  • ⚡ 高性能:高效调用 API,并妥善处理错误

📦 安装

npm install reddit-mcp

或直接使用 npx:

npx reddit-mcp

🔧 前置条件

使用此 MCP 服务前,你需要获取 Reddit API 凭证:

  1. 创建 Reddit 应用:

    • 前往 Reddit 应用首选项
    • 点击“Create App”或“Create Another App”
    • 将应用类型选择为“script”
    • 记下你的 client_id 和 client_secret
  2. 设置环境变量:

    export REDDIT_CLIENT_ID="your_client_id_here"
    export REDDIT_CLIENT_SECRET="your_client_secret_here"
    

    或创建一个 .env 文件:

    REDDIT_CLIENT_ID=your_client_id_here
    REDDIT_CLIENT_SECRET=your_client_secret_here
    

🔧 配置

Claude Desktop
{
  "mcpServers": {
    "reddit": {
      "command": "npx",
      "args": ["reddit-mcp"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}
Cursor IDE
{
  "mcpServers": {
    "reddit": {
      "command": "npx",
      "args": ["reddit-mcp"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}
配合 GitHub Copilot 使用的 VS Code
{
  "mcp.servers": {
    "reddit": {
      "command": "npx",
      "args": ["reddit-mcp"],
      "transport": "stdio",
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}

🛠️ 可用工具

get_subreddit

获取特定 subreddit 的详细信息。

参数:

  • name(必填):要获取的 subreddit 名称(不含 r/ 前缀)

使用示例:

"Get information about the programming subreddit"
"Show me details for the MachineLearning subreddit"

返回:

  • Subreddit 标题和描述
  • 订阅人数
  • 创建日期
  • NSFW 状态
  • URL
search_posts

在 subreddit 中搜索帖子或获取热门帖子。

参数:

  • subreddit(必填):要搜索的 subreddit 名称
  • query(可选):搜索查询字符串(为空时返回热门帖子)
  • sort(可选):排序方式——“relevance”、“hot”、“new”、“top”、“comments”(默认:“hot”)
  • time(可选):时间范围——“all”、“hour”、“day”、“week”、“month”、“year”(默认:“all”)
  • limit(可选):要返回的帖子数量上限(1-100,默认:10)

使用示例:

"Search for posts about 'artificial intelligence' in r/MachineLearning"
"Get the top 20 hot posts from r/programming"
"Find new posts about 'React' in r/webdev from the past week"

返回:

  • 帖子标题和 URL
  • 作者信息
  • 得分和评论数
  • 供后续查询使用的帖子 ID
get_submission

获取特定帖子的详细信息。

参数:

  • id(必填):帖子 ID(带或不带 t3_ 前缀)

使用示例:

"Get details for post ID abc123"
"Show me the full content of post t3_xyz789"

返回:

  • 完整的帖子标题和内容
  • 作者和 subreddit 信息
  • 得分和评论统计
  • 创建时间
  • 帖子类型(文本或链接)
get_comments_by_submission

获取特定帖子的评论。

参数:

  • submission_id(必填):要获取评论的帖子 ID
  • sort(可选):评论排序方式——“confidence”、“top”、“new”、“controversial”、“old”、“random”、“qa”、“live”(默认:“confidence”)
  • limit(可选):要返回的评论数量上限(1-100,默认:10)

使用示例:

"Get the top 15 comments for post abc123"
"Show me the newest comments for post xyz789"

返回:

  • 评论内容和作者
  • 评论得分
  • 创建时间戳
  • 评论 ID
get_comment

获取特定评论的详细信息。

参数:

  • id(必填):评论 ID(带或不带 t1_ 前缀)

使用示例:

"Get details for comment ID def456"
"Show me comment t1_ghi789"

返回:

  • 评论内容和作者
  • 得分和创建时间
  • 所属 subreddit 和帖子
  • 评论 ID
search_subreddits

按名称或描述搜索 subreddit。

参数:

  • query(必填):用于搜索 subreddit 名称或描述的查询
  • limit(可选):最多返回的 subreddit 数量(1-100,默认值:10)

使用示例:

"Search for subreddits about cooking"
"Find programming-related subreddits"

返回:

  • Subreddit 名称和描述
  • 订阅者数量
  • NSFW 状态
  • URL

🎮 使用示例

内容发现
"Find the most popular posts in r/technology from this week"
"Search for discussions about 'GPT-4' in r/MachineLearning"
研究与分析
"Get information about r/datascience and show me the top 10 posts"
"Find subreddits related to 'blockchain' and show their subscriber counts"
评论分析
"Get the top comments for post abc123 and analyze the sentiment"
"Show me controversial comments from post xyz789"
趋势监控
"What are the trending topics in r/programming today?"
"Search for posts about 'ChatGPT' across relevant subreddits"

🏗️ 开发

本地设置
# Clone the repository
git clone https://github.com/SzeMeng76/mcp-server-reddit-ts.git
cd mcp-server-reddit-ts

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your Reddit API credentials

# Start the server
npm start
项目结构
mcp-server-reddit-ts/
├── index.js              # Main MCP server implementation
├── package.json          # Dependencies and scripts
├── .env.example          # Environment variables template
└── README.md            # Documentation
核心依赖项
  • @modelcontextprotocol/sdk:官方 MCP 服务框架
  • node-fetch:用于调用 Reddit API 的 HTTP 客户端
  • dotenv:环境变量管理
  • zod:运行时类型验证和架构定义

🔧 技术详情

身份验证流程
  • 使用 OAuth 2.0 客户端凭据流程
  • 过期时自动刷新令牌
  • 通过环境变量安全处理凭据
API 速率限制
  • 遵守 Reddit API 速率限制
  • 使用规范的 User-Agent 标头
  • 妥善处理 HTTP 错误
数据处理
  • 全面格式化数据,方便阅读
  • 妥善处理 Reddit 的嵌套评论结构
  • 清理 ID(自动移除前缀)
错误处理
  • 为常见问题提供详细的错误消息
  • API 调用失败时优雅降级
  • 适当验证输入参数

⚠️ 重要说明

Reddit API 指南
  • 遵守 Reddit 的 API 服务条款
  • 遵守速率限制(客户端凭据每分钟 60 次请求)
  • 使用描述性 User-Agent 字符串
  • 请勿发送过多请求
数据隐私
  • 此服务仅访问 Reddit 的公开数据
  • 不进行用户身份验证或访问私人数据
  • 遵守 Reddit 的隐私设置,并尊重已删除的内容
内容指南
  • 访问某些 subreddit 时,请注意 NSFW 内容
  • 遵守社区规则和指南
  • 负责任地将数据用于研究和分析

🚀 常见用例

市场研究
  • 趋势分析:监控有关产品或主题的讨论
  • 情感分析:分析公众对品牌或事件的看法
  • 社区洞察:了解受众的偏好和行为
内容策略
  • 主题发现:在相关社区中寻找热门主题
  • 互动分析:研究哪些内容表现良好
  • 社区研究:识别所在领域中的活跃社区
学术研究
  • 社交媒体研究:分析在线社区动态
  • 公众意见研究:研究态度和观点
  • 内容分析:考察沟通模式
开发与测试
  • API 集成:在应用中测试 Reddit 数据集成
  • 机器人开发:制作 Reddit 机器人和自动化工具原型
  • 数据分析:处理 Reddit 数据并提取洞察

🤝 贡献

  1. Fork 此仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 做好错误处理并完成更改
  4. 使用各种 subreddit 和内容类型进行测试
  5. 确保正确记录环境变量
  6. 提交 pull request,并附上清晰的说明
开发指南
  • 遵循 JavaScript/Node.js 最佳实践
  • 为新增功能添加适当的错误处理
  • 使用热门和小众 subreddit 进行测试
  • 记录任何新增参数或返回格式
  • 遵守 Reddit API 指南和速率限制

📄 许可证

MIT 许可证——详情请参阅 LICENSE 文件。

⚖️ 法律与伦理

  • 遵守 Reddit API 规范:严格遵守 Reddit 开发者条款
  • 仅限公开数据:仅访问公开可用的 Reddit 内容
  • 速率限制:遵守 API 限制,避免服务中断
  • 内容责任:用户必须确保以恰当方式使用所访问的数据
  • 尊重隐私:不访问私人消息或受限内容

🙏 致谢

  • Reddit:感谢其提供全面的 Reddit API
  • MCP 社区:感谢其制定标准化协议
  • Node-fetch 维护者:感谢其提供可靠的 HTTP 客户端功能
  • 贡献者:感谢所有帮助改进本项目的人

专为 Reddit 数据分析、内容研究和社区洞察而构建 🔴📊

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。