tymcftw
服务介绍
Reddit 内容 API - 设置和使用指南
该项目提供了通过 Claude 和 Cursor 与 Reddit 进行交互的 MCP(模型上下文协议)工具。
功能
- 从子版块读取热门帖子
- 分析带有评论的 Reddit 讨论
- 在 Reddit 上创建帖子
- 向帖子添加评论或回复现有评论
- 对帖子和评论进行投票
要求
- Python 3.10+
- 一个 Reddit 账户
- 注册一个 Reddit 应用程序(以获取 client_id 和 client_secret)
- 虚拟环境 (venv 或类似)
- Claude Desktop 和/或 Cursor(可选但推荐)
从零开始安装
请仔细按照以下步骤操作,以避免导入和配置问题:
bash
1. 克隆仓库
git clone https://github.com/your-username/mcp-reddit.git
cd mcp-reddit
2. 创建并激活虚拟环境
python -m venv .venv
source .venv/bin/activate # 在 Windows 上: .venvScriptsactivate
3. 安装依赖项(不要以可编辑模式安装包)
pip install -r requirements.txt
4. 配置环境变量(见下文)
创建并编辑 .env 文件
⚠️ 重要: 不要以可编辑模式 (
pip install -e .) 安装包,因为这可能会导致模块导入问题。
环境配置
- 在项目根目录中创建一个
.env文件,并包含以下变量:
REDDIT_CLIENT_ID=你的_client_id
REDDIT_CLIENT_SECRET=你的_client_secret
REDDIT_REFRESH_TOKEN=你的_refresh_token
- 要获取刷新令牌,请运行:
bash
python -m mcp_reddit.auth_helper
按照说明授权应用程序。令牌将自动保存到 .env 文件中。
项目结构
mcp-reddit/
│
├── src/
│ └── mcp_reddit/
│ ├── init.py
│ ├── main.py # MCP 服务器入口点
│ ├── reddit_fetcher.py # Reddit 工具实现
│ └── auth_helper.py # 生成认证令牌的帮助程序
│
├── .env # 环境变量(手动创建)
├── requirements.txt
├── setup.py
└── README.md
直接运行服务器
手动运行(对开发和测试有用):
bash
cd /path/to/mcp-reddit
.venv/bin/python src/mcp_reddit/main.py
你应该会看到日志指示:
- 服务器初始化
- Reddit 认证验证
- 注册 10 个工具(5 个原始 + 5 个带前缀)
- "正在运行 MCP 服务器..."
Claude Desktop 配置
-
找到配置文件:
- 在 macOS 上:
/Users/你的用户名/Library/Application Support/Claude/claude_desktop_config.json - 在 Windows 上:
%APPDATA%Claudeclaude_desktop_config.json
- 在 macOS 上:
-
添加 reddit-content-api 的配置:
json
"reddit-content-api": {
"command": "/完整路径/to/mcp-reddit/.venv/bin/python",
"args": [
"-m",
"mcp_reddit.main",
"--stdio"
],
"cwd": "/完整路径/to/mcp-reddit",
"env": {
"PYTHONPATH": "/完整路径/to/mcp-reddit/src:/完整路径/to/mcp-reddit",
"DEBUG": "true"
}
}
⚠️ 极其重要:
PYTHONPATH必须包括src目录和项目根目录,按此顺序,用:(在 Unix/macOS 上)或;(在 Windows 上)分隔
Cursor 配置
-
找到配置文件:
- 在 macOS 上:
/Users/你的用户名/.cursor/mcp.json - 在 Windows 上:
%USERPROFILE%.cursormcp.json
- 在 macOS 上:
-
添加与 Claude 中相同的配置,必要时调整路径。
常见问题排查
问题:只出现 2 个工具而不是预期的 10 个
症状: 运行服务器时,只出现 2 个工具而不是预期的 10 个。可能的原因及解决方案:
-
导入问题:Python 从
site-packages导入已安装的版本,而不是从src/中的本地代码。解决方案:
- 确保不要以可编辑模式安装包(
pip install -e .) - 在配置中显式地将
src添加到PYTHONPATH的开头 - 如果已经安装了该包,请使用
pip uninstall reddit-content-api卸载它
- 确保不要以可编辑模式安装包(
-
Python 缓存:旧的
.pyc文件可能会导致问题。解决方案:
- 从项目中删除所有
__pycache__目录
- 从项目中删除所有
-
版本冲突:同一库的不同版本。
解决方案:
- 使用
pip install -r requirements.txt重新安装依赖项
- 使用
问题:“无法创建帖子:Reddit 认证未正确配置”
原因:刷新令牌无效或已过期。
解决方案:通过运行 python -m mcp_reddit.auth_helper 重新生成令牌,并确保将其保存在 .env 文件中。
问题:工具未出现在 Claude/Cursor 中
原因:配置文件中的配置不正确。
解决方案:
- 检查配置文件中的路径,特别是
PYTHONPATH - 修改配置后完全重启 Claude/Cursor
在 Claude/Cursor 中使用工具
配置完成后,您可以使用以下工具:
mcp_reddit_content_api_fetch_reddit_hot_threads- 获取热门帖子mcp_reddit_content_api_fetch_reddit_post_content- 分析帖子及其评论mcp_reddit_content_api_create_reddit_post- 创建新帖子mcp_reddit_content_api_add_reddit_comment- 添加评论mcp_reddit_content_api_vote_on_reddit_content- 对内容投票
示例
获取热门帖子:
子版块: python
帖子数量: 5
创建帖子:
子版块: test
标题: 来自 MCP 的测试
内容类型: 文本
内容: 这是使用 MCP 通过 Reddit 内容 API 发布的测试。
贡献
如果您发现任何问题或有改进建议,请创建一个 issue 或提交一个 pull request。
许可证
支持此项目
如果您觉得这个项目对您的工作或研究有用,请考虑:
- ⭐ 给仓库加星以表示支持
- 🔄 关注仓库以获取有关新功能和改进的更新
- 🐛 提交问题报告 bug 或请求新功能
- 🛠️ 如果您有改进意见,请贡献 pull requests
您的支持有助于使这个项目变得更好!