使用说明
Reddit每日线程MCP服务器
🚀 直接在ChatGPT中从r/BitcoinMarkets和r/ethereum获取加密货币市场讨论
一个最小的MCP服务器,提供经过过滤的每日讨论线程和高质量的评论,作为经济高效的Netlify边缘功能部署。
✨ 特性
- 🔍 智能过滤:排除低质量评论(分数≤-10)和机器人
- ⚡ 实时:获取包含最近评论的最新每日帖子
- 💰 成本效益高:部署在Netlify Edge功能上(每月3M免费请求)
- 🔗 易于集成:简单的ChatGPT连接器设置
🚀 快速开始
先决条件
- Node.js 18+
- 具有API访问权限的Reddit帐户
- Netlify帐户(免费)
1.设置
# Clone and install
git clone <your-repo-url>
cd crypto-mcp-server
npm install
# Create environment file
cat > .env << 'EOF'
REDDIT_CLIENT_ID=your_client_id_here
REDDIT_CLIENT_SECRET=your_client_secret_here
REDDIT_USERNAME=your_reddit_username
REDDIT_PASSWORD=your_reddit_password
EOF
🔑 获取Reddit API证书:
- 首选https://www.reddit.com/prefs/apps
- 点击“创建应用”→ 选择“脚本”类型
- 将客户端ID和密码复制到您的
.env文件
2.本地测试
# Start development server
npm run dev
# ✅ Server running at http://localhost:8888
# Test the MCP server
npm test
# ✅ All tests should pass
# Test individual components
npm run test:unit
# ✅ Unit tests should pass
3.部署到Netlify
选项A:Netlify CLI(推荐)
# Install Netlify CLI globally
npm install -g netlify-cli
# Login and deploy
netlify login
netlify init
netlify env:set REDDIT_CLIENT_ID "your_client_id"
netlify env:set REDDIT_CLIENT_SECRET "your_client_secret"
netlify env:set REDDIT_USERNAME "your_username"
netlify env:set REDDIT_PASSWORD "your_password"
netlify deploy --prod
# ✅ Deployed to https://your-site.netlify.app
选项B:GitHub集成
- 将代码推送到GitHub
- 导入到Netlify
- 在“站点设置”中设置环境变量→ 环境变量
- 推送时自动部署
4.连接到ChatGPT
- 打开ChatGPT → 设置 → 连接器 → 高级
- 启用开发者模式 ✅
- 创建连接器:
- 姓名:
Reddit Daily Threads - 网址:
https://your-site.netlify.app/mcp
- 姓名:
- 测试一下: 问 “从r/BitcoinMarkets获取最新的每日讨论”
📖 用法
工具: fetch_reddit_daily_threads
参数:
subreddit(必填):"BitcoinMarkets"或"ethereum"intervalHours(可选):回顾时间(默认值:24)
示例提示:
"Fetch r/ethereum daily discussion for the last 12 hours""Get BitcoinMarkets daily thread from yesterday""Show me the latest crypto market discussion"
🔧 运作原理
- 🔐 验证 使用您的凭据使用Reddit OAuth2
- 📡 获取 来自subreddit的2个最新每日讨论帖子
- 🔍 过滤器 按分数(>-10)评论,不包括已知的机器人
- 📝 格式 带有时间戳、回复链和结构化标签
- 📤 退货 ChatGPT的干净、可读数据
💰 成本细分
Netlify边缘功能: 300万免费请求/月
| 使用水平 | 每日查询 | 每月成本 |
|---|---|---|
| 灯光 | 100 | 自由 |
| 中等 | 1000 | 自由 |
| 重型 | 10000 | 自由 |
| 企业 | 100000+ | 2美元/百万请求 |
您需要每天100000多次查询才能超过免费级别!
📁 项目结构
crypto-mcp-server/
├── reddit.mjs # Core Reddit fetcher (Node & Deno compatible)
├── netlify/edge-functions/mcp.mjs # MCP server (JSON-RPC 2.0)
├── test/reddit.test.mjs # Unit tests
├── test/testMcp.mjs # MCP integration tests
├── public/index.html # Landing page for deployed site
├── netlify.toml # Netlify configuration
└── package.json # Dependencies and scripts
💻 CLI使用情况
# Export to file (Node.js only)
node reddit.mjs # Export last 24h to file
node reddit.mjs 12 # Export last 12h to file
# Output: reddit_BitcoinMarkets_[timestamp]_daily_24h.md
🛠️ 故障排除
| 问题 | 症状 | 解决方案 |
|---|---|---|
| 身份验证失败 | Error: No credentials found |
检查 .env 文件存在并且具有正确的值 |
| 无法连接 | ChatGPT显示连接错误 | 确保URL以结尾 /mcp 并且启用了开发人员模式 |
| 超时 | 请求时间过长 | 减少 intervalHours 参数(尝试6或12) |
| 无结果 | 空响应 | 检查subreddit是否有最近的每日线程 |
| 速率限制 | HTTP 429错误 | 请稍候几分钟,然后重试 |
| 部署失败 | Deploy directory 'public' does not exist |
确保 public/ 目录存在 index.html |
🧪 测试
# Run all tests
npm test
# Run only unit tests
npm run test:unit
# Test against production URL
node test/testMcp.mjs https://your-site.netlify.app/mcp
🤝 贡献
- 分叉 存储库
- 创建 特征分支:
git checkout -b feature/amazing-feature - 制造 你的更改
- 测试 本地:
npm run dev && npm test - 提交 信息清晰:
git commit -m "Add amazing feature" - 推 到您的分行:
git push origin feature/amazing-feature - 打开 拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🎯 成功指标:
- ✅
npm test通过 - ✅ ChatGPT连接器显示“已连接”状态
- ✅ 您可以在ChatGPT中获取每日线程
- ✅ Netlify函数日志中没有错误