MCP Reddit Server
by wllcnm
# MCP Reddit Server
[English](README-en.md) | [中文说明](README.md)
<h2 id="chinese">中文说明</h2>
## 1. 项目介绍
这是一个基于MCP(Model Context Protocol)协议的Reddit服务器,专门设计用于与Claude等大语言模型进行交互。通过这个服务,你可以让AI助手帮助你浏览和分析Reddit上的内容。
### 1.1 主要功能
- 搜索特定subreddit中的帖子
- 获取帖子详细信息和评论
- 浏览subreddit中的热门帖子
### 1.2 项目结构
```
nangeAGICode/reddit_chat_claude/
├── .github/
│ └── workflows/
│ └── docker.yml # GitHub Actions工作流配置
├── src/
│ ├── init.py
│ └── server.py # MCP服务器核心代码
├── .gitignore # Git忽略文件配置
├── Dockerfile # Docker构建文件
├── LICENSE # MIT许可证
├── README.md # 项目说明文档
└── requirements.txt # Python依赖包列表
```
## 2. 安装和配置
### 2.1 前提条件
- Docker(必须)
- Python 3.12+(用于本地开发)
- Reddit API凭证(必需)
### 2.2 获取Reddit API凭证
1. 访问 https://www.reddit.com/prefs/apps
2. 点击"create another app..."
3. 选择"script"
4. 填写必要信息
5. 获取client_id和client_secret
### 2.3 环境变量配置
需要设置以下环境变量:
```bash
REDDIT_CLIENT_ID=你的client_id
REDDIT_CLIENT_SECRET=你的client_secret
REDDIT_USER_AGENT=你的user_agent
```
### 2.4 Docker安装
MAC用户:
1.访问 Docker 官网:https://www.docker.com/products/docker-desktop
2.点击 "Download for Mac"
3.选择对应你的 Mac 芯片的版本(Apple Silicon 或 Intel)
4.下载并安装 .dmg 文件
5.验证安装:
```bash
# 检查 Docker 版本
docker --version
# 运行测试容器
docker run hello-world
```
6.确保 Docker 服务正在运行:
```bash
# 检查 Docker 服务状态
docker ps
```
## 3. 使用方法
### 3.1 在Claude桌面客户端中使用
在你的`claude_desktop_config.json`中添加以下配置:
```json
{
"mcpServers": {
"reddit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "REDDIT_CLIENT_ID=你的client_id",
"-e", "REDDIT_CLIENT_SECRET=你的client_secret",
"-e", "REDDIT_USER_AGENT=你的user_agent",
"ghcr.io/nangeplus/mcp-reddit:latest"
]
}
}
}
```
### 3.2 可用工具
1. **search_subreddit**: 搜索特定subreddit中的帖子
- 参数:
- `subreddit`: subreddit名称
- `query`: 搜索关键词
- `limit`: 最大返回结果数(默认:5)
2. **get_post_details**: 获取特定帖子的详细信息
- 参数:
- `post_id`: Reddit帖子ID
- `comment_limit`: 获取评论的最大数量(默认:10)
3. **get_subreddit_hot**: 获取subreddit中的热门帖子
- 参数:
- `subreddit`: subreddit名称
- `limit`: 返回帖子的最大数量(默认:5)
### 3.3 使用示例
在Claude中,你可以这样使用工具:
```json
{
"tool": "get_subreddit_hot",
"arguments": {
"subreddit": "Python",
"limit": 3
}
}
```
**示例对话:**
用户:帮我查看Python subreddit中最热门的3个帖子。
Claude:好的,我来帮你查看。我将使用`get_subreddit_hot`工具:
```json
{
"tool": "get_subreddit_hot",
"arguments": {
"subreddit": "Python",
"limit": 3
}
}
```
[Claude会返回帖子信息]
用户:帮我查看第一个帖子的详细内容和评论。
Claude:我将使用`get_post_details`工具:
```json
{
"tool": "get_post_details",
"arguments": {
"post_id": "返回的帖子ID"
}
}
```
## 4. 本地开发
### 4.1 克隆仓库
```bash
git clone https://github.com/nangeplus/mcp-reddit.git
cd mcp-reddit
```
### 4.2 安装依赖
```bash
pip install -r requirements.txt
```
### 4.3 运行服务器
```bash
python src/server.py
```
### 4.4 Docker构建
```bash
docker build -t mcp-reddit .
docker run -i --rm \
-e REDDIT_CLIENT_ID=你的client_id \
-e REDDIT_CLIENT_SECRET=你的client_secret \
-e REDDIT_USER_AGENT=你的user_agent \
mcp-reddit
```
## 5. 注意事项
1. **安全性**
- 请妥善保管你的Reddit API凭证
- 不要在公共场合分享你的配置文件
- 建议使用环境变量而不是硬编码凭证
2. **使用限制**
- Reddit API有调用频率限制
- 默认返回的评论数量限制为10条
- 搜索结果默认限制为5条
3. **故障排除**
- 检查API凭证是否正确
- 确保网络连接正常
- 查看日志输出了解详细错误信息
## 6. 贡献指南
1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 7. 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
---