使用说明

项目简介

Reddit MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它充当 LLM 客户端(如 Claude)和 Reddit 数据之间的桥梁。通过此服务器,LLM 可以利用预设的工具来检索和分析 Reddit 平台上的信息,从而扩展 LLM 在信息获取和内容理解方面的能力。

主要功能点

  • 搜索 Subreddit 帖子: 允许 LLM 根据关键词在指定的 Subreddit 中搜索相关的帖子。
  • 获取帖子详细信息: LLM 可以获取指定 Reddit 帖子的详细内容,包括标题、作者、正文以及评论。
  • 浏览 Subreddit 热门帖子: 支持 LLM 获取特定 Subreddit 的热门帖子列表,了解社区热点话题。

安装步骤

由于本项目推荐使用 Docker 部署,以下是 Docker 安装步骤:

  1. 安装 Docker:

    • 访问 Docker 官网 下载并安装 Docker Desktop。
    • 根据你的操作系统(macOS 或 Windows)选择合适的版本下载并按照安装向导完成安装。
    • 安装完成后,启动 Docker Desktop 并确保 Docker 服务正常运行。
    • 打开终端或命令提示符,运行 'docker --version' 检查 Docker 是否成功安装。
  2. 获取 Reddit API 凭证:

    • 访问 Reddit 应用创建页面
    • 点击 "create another app..." 按钮。
    • 选择 "script" 类型应用。
    • 填写应用名称等必要信息。
    • 点击 "create app" 创建应用。
    • 创建成功后,你将获得 'client_id' 和 'client_secret'。
    • 还需要设置 'user_agent',可以自定义一个字符串,例如 'my-reddit-app (by /u/your_reddit_username)'。

服务器配置

要将 Reddit MCP Server 集成到 MCP 客户端(例如 Claude),你需要在客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 为例,你需要配置 'mcpServers' 字段:

{
  "mcpServers": {
    "reddit": {  // 服务器名称,可以自定义,用于在客户端中标识和引用
      "command": "docker",  // 启动服务器的命令,这里使用 docker
      "args": [  // 启动命令的参数列表
        "run",  // docker run 命令
        "-i",   // 保持 STDIN 打开,即使未连接
        "--rm", // 容器退出时自动删除容器
        "-e", "REDDIT_CLIENT_ID=你的client_id",  // 设置 Reddit API client_id 环境变量,请替换为你的 client_id
        "-e", "REDDIT_CLIENT_SECRET=你的client_secret", // 设置 Reddit API client_secret 环境变量,请替换为你的 client_secret
        "-e", "REDDIT_USER_AGENT=你的user_agent", // 设置 Reddit API user_agent 环境变量,请替换为你的 user_agent,建议自定义
        "ghcr.io/nangeplus/mcp-reddit:latest" // Docker 镜像名称,从 GitHub Container Registry 拉取最新版本
      ]
    }
  }
}

注意:

  • 请将 '你的client_id'、'你的client_secret' 和 '你的user_agent' 替换为你实际的 Reddit API 凭证。
  • 确保你的 MCP 客户端配置文件(如 'claude_desktop_config.json')与客户端应用在同一目录下。
  • 首次使用时,客户端可能会自动下载 Docker 镜像,请确保网络连接。

基本使用方法

配置完成后,在 LLM 客户端中,你可以通过工具调用来使用 Reddit MCP Server 提供的功能。以下是一些使用示例,展示了如何通过 JSON 格式调用工具:

1. 搜索 Python Subreddit 的热门帖子:

{
  "tool": "search_subreddit",
  "arguments": {
    "subreddit": "Python",
    "query": "best practices",
    "limit": 5
  }
}

这个工具调用会在 "Python" Subreddit 中搜索包含 "best practices" 关键词的帖子,并返回最多 5 个结果。

2. 获取指定 Reddit 帖子详情:

首先,你需要知道帖子的 ID。假设你想获取 ID 为 '18gjao' 的帖子详情,可以使用以下工具调用:

{
  "tool": "get_post_details",
  "arguments": {
    "post_id": "18gjao",
    "comment_limit": 5
  }
}

这个工具调用会返回帖子 '18gjao' 的详细信息,以及最多 5 条评论。

3. 获取 AskReddit Subreddit 的热门帖子:

{
  "tool": "get_subreddit_hot",
  "arguments": {
    "subreddit": "AskReddit",
    "limit": 3
  }
}

这个工具调用会返回 "AskReddit" Subreddit 中最热门的 3 个帖子。

在与 LLM 对话时,你可以指示 LLM 使用这些工具来获取 Reddit 信息。LLM 会根据你的指示生成相应的工具调用 JSON,并发送给 Reddit MCP Server,服务器会执行工具并返回结果给 LLM,最终 LLM 会将结果呈现给你。

信息

分类

通信与社交