🚀 HackerNews MCP 服务器
这是一个全面的模型上下文协议(MCP)服务器,它与 HackerNews API 实现了无缝集成,使 AI 助手能够通过标准化的 MCP 接口访问、分析和理解 HackerNews 的内容。
🚀 快速开始
npm install
npm run build
npm start
然后重启与 MCP 兼容的客户端(如 Cursor)以连接到服务器。
✨ 主要特性
🔧 工具(5 个交互式命令)
-
search_posts
- 搜索和筛选 HackerNews 帖子
- 可按关键词、作者、得分和日期范围进行筛选
- 示例:"查找得分大于 100 的关于 'AI' 的故事"
-
get_post
- 获取帖子的详细信息
- 包括元数据、评论树和参与指标
- 示例:"获取编号为 44473319 的故事及其评论的完整详细信息"
-
search_user
- 分析用户资料和活动
- 包含用户统计信息、热门故事和贡献模式
- 示例:"分析用户 'pg' 并展示其活动情况"
-
search_trending
- 查找当前热门话题
- 通过对热门故事进行关键词频率分析
- 示例:"今天 HackerNews 上有哪些热门话题?"
-
search_comments
- 分析评论参与度
- 包括评论统计信息、顶级评论者和讨论模式
- 示例:"分析编号为 44473319 的故事的评论"
📦 安装指南
前提条件
安装步骤
-
克隆并安装:
git clone <repository-url>
cd hackernews-mcp-server
npm install
-
构建项目:
npm run build
-
配置 MCP 客户端(Cursor):
.cursor/mcp.json
文件已完成配置
- 重启 Cursor 以加载 MCP 服务器
-
开始使用:
npm start
💻 使用示例
基础用法
🔍 搜索帖子 - 按主题查找故事
search_posts with query="AI", minScore=50, limit=10
- "'Positive review only': Researchers hide AI prompts in papers" (100 分,52 条评论)
- "Cops in [Spain] think everyone using a Google Pixel must be a drug dealer" (65 分,50 条评论)
使用场景:
- 查找特定主题的高参与度故事
- 按作者、得分阈值或日期范围进行筛选
- 研究所在领域的热门讨论
📄 获取帖子详情 - 深入分析故事
get_post for story ID 44473319 (AI prompts story)
- 完整的故事元数据(发布时间:3.2 小时,域名:asia.nikkei.com)
- 完整的评论树(来自 38 位作者的 57 条评论)
- 参与指标和讨论质量
使用场景:
- 分析你感兴趣的特定故事
- 获取完整的评论讨论
- 了解社区对新闻的反应
👤 搜索用户 - 分析用户资料
search_user for "zczc" (Google Pixel story author)
- 在 HN 上活跃 8.6 年,拥有 876 点声望,是稳定的贡献者
- 以研究为导向:提供一手资料
- 跨领域专业知识:涉及技术、政策、编程
- 注重质量而非数量
使用场景:
- 研究感兴趣帖子的作者
- 寻找领域专家和思想领袖
- 了解用户的贡献模式
📈 搜索热门话题 - 分析主题趋势
search_trending analyzing 49 current top stories
- "software", "game", "first"(各占 6.1%)
- "systems", "local", "google"(各占 4.1%)
- 太空技术:"satellite", "geostationary"
- 关注本地优先软件和游戏
使用场景:
- 跟踪科技社区正在讨论的内容
- 识别新兴技术趋势
- 监测社区兴趣的变化
💬 搜索评论 - 分析讨论情况
search_comments on the Google Pixel Spain story
- 来自 38 位不同作者的 56 条评论
- 活跃的讨论(多位用户发表了 4 条以上评论)
- 关于隐私/监控的国际视角
- 高质量的管理(删除 5 条,标记 1 条)
使用场景:
- 分析社区对主题的情绪
- 找到最积极参与讨论的人
- 了解讨论的质量和模式
🔧 技术细节
智能缓存系统
- 三层缓存:项目、用户和故事列表
- 可配置的 TTL:默认 5 分钟,可调整
- LRU 淘汰机制:缓存满时自动清理
- 性能:将 API 调用减少约 80%
API 客户端特性
- 全面覆盖:涵盖所有 HackerNews API 端点
- 批量操作:高效加载多个项目
- 错误处理:强大的重试和超时逻辑
- 速率限制:合理使用 API
增强数据
- 故事元数据:计算发布时间、域名、评论数量
- 用户统计信息:平均得分、热门故事、活动模式
- 评论分析:参与指标、讨论树
- 热门分析:关键词频率、主题提取
🔧 配置
环境变量(可选):
# 服务器配置
SERVER_NAME=hackernews-mcp-server
SERVER_VERSION=1.0.0
# API 配置
HACKERNEWS_API_BASE_URL=https://hacker-news.firebaseio.com/v0
HACKERNEWS_API_TIMEOUT=10000
# 缓存配置
CACHE_TTL_SECONDS=300
CACHE_MAX_SIZE=1000
# 日志记录
LOG_LEVEL=info
🧪 开发
npm run dev
npm test
npm run lint
npm run lint:fix
npm run build
📊 MCP 工具与功能
使用我们经过测试的工具可以实现以下功能:
属性 |
详情 |
MCP 工具 |
功能描述 |
search_posts |
按条件查找故事 |
get_post |
获取故事的完整详细信息 |
search_user |
分析用户资料 |
search_trending |
分析主题趋势 |
search_comments |
分析讨论情况 |
资源访问模式:
hackernews://stories/top
→ 当前热门故事
hackernews://user/username
→ 用户资料
hackernews://item/12345
→ 单个帖子
hackernews://comments/12345
→ 评论树
🤝 实际应用场景(基于我们的测试)
📰 内容研究与分析
- 查找突发科技新闻:例如我们发现的关于 AI 提示的论文(100 分,活跃讨论)
- 跟踪有争议的话题:如关于 Google Pixel 隐私问题的报道
- 分析讨论质量:来自 38 位作者的 57 条评论显示了真实的参与度
- 监测新兴趋势:太空技术、本地优先软件、游戏开发
👥 社区情报
- 识别高质量贡献者:发现 "zczc" 是具有研究导向和跨领域专业知识的专家
- 了解用户模式:8.6 年的活跃时间、稳定的声望增长、验证资料来源的习惯
- 寻找领域专家:持续提供高质量贡献的用户
- 跟踪思想领袖:特定技术领域的活跃用户
📈 趋势与情绪分析
- 当前科技焦点:"software", "systems", "game" 各占 6.1% 的热门比例
- 新兴技术:卫星/太空技术的讨论逐渐增多
- 社区情绪:国际隐私担忧、学术诚信辩论
- 讨论模式:高质量管理、国际视角
🔍 研究应用
- 学术研究:研究科技社区的讨论和情绪
- 市场研究:了解开发者和科技社区的兴趣
- 竞争情报:监测关于技术和公司的讨论
- 内容策略:找到能产生高参与度的话题
🚀 性能表现
- 缓存:减少 80% 的 API 调用
- 批量操作:多项目加载速度提高 3 倍
- 智能过滤:客户端搜索减轻服务器负载
- 并发请求:并行处理提高效率
🔒 隐私与道德
- 仅使用公开数据:不访问私人信息
- 合理使用:采用速率限制和缓存机制
- 不存储数据:仅进行临时缓存
- 透明公开:开源实现
🐛 故障排除
常见问题
-
服务器无法启动
node --version
npm run build
-
MCP 连接问题
- 重启 MCP 客户端(Cursor)
- 检查
.cursor/mcp.json
配置
- 验证服务器是否通过
npm start
正常运行
-
API 错误
- 检查网络连接
- 验证 HackerNews API 是否可访问
- 检查缓存配置
调试模式
LOG_LEVEL=debug npm start
📈 路线图
- [ ] 实时 WebSocket 更新
- [ ] 高级情绪分析
- [ ] 用户网络分析
- [ ] 导出功能
- [ ] 自定义过滤规则
- [ ] 性能仪表盘
🤝 贡献指南
- 分叉仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature
)
- 提交更改 (
git commit -m 'Add amazing feature'
)
- 推送到分支 (
git push origin feature/amazing-feature
)
- 打开拉取请求
🎉 准备好以前所未有的方式探索 HackerNews 了吗?
🚀 快速开始命令
npm run build && npm start
💬 开始你的第一次对话
向你的 AI 助手提问:
- "现在 HackerNews 上有哪些顶级的 AI 故事?"
- "查找今天科技社区的热门话题"
- "分析本周讨论最多的故事"
🙏 致谢与鸣谢
🧡 特别感谢 HackerNews
"这里汇聚了最棒的技术讨论"
我们非常感谢 HackerNews 和 Y Combinator:
🌟 创建了世界上最棒的科技社区
📡 提供免费的实时 API 访问
🔥 促进了激发创新的精彩讨论
🚀 构建了一个每天都在讨论科技未来的平台
⚡ 技术支持
📜 许可证与使用条款
🆓 本 MCP 服务器
MIT 许可证 - 你可以使用、修改和分享!详情请参阅 LICENSE 文件。
创建者:Traves Theberge Traves.Theberge@gmail.com
📊 HackerNews API
非商业使用免费 - 请尊重创建内容的社区。
商业使用:请查看 Y Combinator 的条款
🌟 加入社区
发现了 bug? 提交一个问题!
有想法? 发起一场讨论!
想要贡献? 欢迎提交拉取请求!
🔗 联系我们
- 📧 邮箱:Traves.Theberge@gmail.com
- 🐙 GitHub:本仓库
- 🗨️ 讨论区:分享你对 HackerNews 的见解!
🧡 持续探索,不断创新! 🧡
为 HackerNews 社区用心打造
⭐ 给这个仓库加星 • 🍴 分叉它 • 📝 贡献代码