Reddit MCP服务器
企业级模型上下文协议(MCP)服务器,用于无缝访问Reddit数据。使AI代理和开发人员能够搜索、监控和分析Reddit的7300万日活跃用户和10万多个社区。
功能(MVP v0.1.0)
- search_reddi -使用过滤器搜索所有Reddit或特定子版块
- 获取subreddit_post -监控子版块中的热门、新、热门或上升帖子
- get_post_comments -检索具有完整上下文的嵌套评论线程
- 获取_渲染_主题 -实时发现热门关键字和主题
所有工具都包括智能Redis缓存(命中率75%以上)和自动限速。
先决条件
- Python 3.11或更高版本
- Redis服务器(本地或云端)
- Reddit API凭据(客户端ID和机密)
获取Reddit API凭据
- 首选https://www.reddit.com/prefs/apps
- 点击“创建应用程序”或“创建另一个应用程序”
- 选择“脚本”作为应用程序类型
- 填写必填字段:
- 名称:“Reddit MCP服务器” - 重定向URI:http://localhost:8080
- 保存您的 客户端ID (在应用程序名称下)和 客户端密钥
地方发展设置
1.克隆和安装
# Clone the repository
cd /Users/padak/github/apify-actors
# Create virtual environment
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt2.配置环境变量
创建一个 .env 项目根目录中的文件:
# Reddit API Credentials
REDDIT_CLIENT_ID=your_client_id_here
REDDIT_CLIENT_SECRET=your_client_secret_here
# Redis Connection
REDIS_URL=redis://localhost:6379
# Logging (optional)
LOG_LEVEL=INFO3.启动Redis(本地)
# Using Docker
docker run -d -p 6379:6379 redis:7-alpine
# Or install Redis locally (macOS)
brew install redis
brew services start redis4.运行服务器
python -m src.mainMCP服务器将在配置的端口上以待机模式启动(默认: /mcp 端点)。
测试
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=src tests/
# Run only unit tests
pytest tests/unit/
# Run only integration tests (requires Redis + Reddit API)
pytest tests/integration/优化部署
部署到Apify平台
- 安装Apify CLI
npm install -g apify-cli
apify login- 配置机密
在Apify控制台中,将这些秘密添加到Actor中:
REDDIT_CLIENT_IDREDDIT_CLIENT_SECRETREDIS_URL
- 部署
apify pushActor将以待机模式部署,并可通过MCP端点访问。
环境变量(Apify)
| 变量 | 类型 | 必填 | 描述 |
|---|---|---|---|
REDDIT_CLIENT_ID | 秘密 | 是 | Reddit API客户端ID |
REDDIT_CLIENT_SECRET | 机密 | 是 | Reddit API客户端机密 |
REDIS_URL | 字符串 | 是 | Redis连接URL |
LOG_LEVEL | 字符串 | 否 | 日志记录级别(默认值:INFO) |
项目结构
/Users/padak/github/apify-actors/
├── src/
│ ├── main.py # Entry point
│ ├── tools/ # MCP tool implementations
│ ├── reddit/ # Reddit API integration
│ ├── cache/ # Redis caching layer
│ ├── models/ # Pydantic data models
│ └── utils/ # Shared utilities
├── tests/ # Test suite
├── docs/ # Documentation
├── actor.json # Apify Actor configuration
├── Dockerfile # Container definition
├── requirements.txt # Python dependencies
└── README.md # This file开发工作流程
代码质量
# Format code with Black
black src/ tests/
# Lint with Ruff
ruff check src/ tests/
# Type check with mypy
mypy src/ --strict运行个人工具(开发)
TODO:在工具实现后添加示例(MVP-006至MVP-009)
建筑
- MCP服务器:JSON-RPC协议处理的FastMCP框架
- Reddit API:PRAW(Python Reddit API包装器),用于身份验证访问
- 缓存:具有智能TTL策略的Redis(2分钟-1小时)
- 速率限制:令牌桶算法(100个请求/分钟)
- 数据验证:用于类型安全输入/输出的Pydantic模型
看 /Users/padak/github/apify-actors/docs/architecture/ 获取详细的技术文档。
故障排除
Redis连接错误
# Check if Redis is running
redis-cli ping
# Should return: PONG
# Test connection with URL
redis-cli -u redis://localhost:6379 pingReddit API身份验证错误
- 验证您的客户端ID和密码是否正确
- 检查你的Reddit应用程序类型是否为“脚本”
- 确保重定向URI匹配:http://localhost:8080
导入错误
# Ensure you're in the virtual environment
source venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txt贡献
这是一个MVP项目。捐款应与路线图保持一致:
- MVP(第1-2周):核心4工具+缓存+速率限制
- v1.0(第3-4周):货币化、情感分析、用户认证
- v2.0(第2+个月):写入操作、实时监控、分析
文档
许可证
\[添加许可证信息\]
支持
有关问题或疑问,请参阅 /docs/ 或者在存储库中创建问题。
______________________________________________________________________
状态:MVP v0.1.0(第1-2周开发) 目标:第6个月5000 MAU(Apify 100万美元挑战)
