Hackernews MCP Typescript

Hackernews MCP Typescript

🚀 HackerNews MCP 服务器

这是一个全面的模型上下文协议(MCP)服务器,它与 HackerNews API 实现了无缝集成,使 AI 助手能够通过标准化的 MCP 接口访问、分析和理解 HackerNews 的内容。

🚀 快速开始

# 安装依赖
npm install

# 构建项目
npm run build

# 启动服务器
npm start

然后重启与 MCP 兼容的客户端(如 Cursor)以连接到服务器。

✨ 主要特性

🔧 工具(5 个交互式命令)

  1. search_posts - 搜索和筛选 HackerNews 帖子

    • 可按关键词、作者、得分和日期范围进行筛选
    • 示例:"查找得分大于 100 的关于 'AI' 的故事"
  2. get_post - 获取帖子的详细信息

    • 包括元数据、评论树和参与指标
    • 示例:"获取编号为 44473319 的故事及其评论的完整详细信息"
  3. search_user - 分析用户资料和活动

    • 包含用户统计信息、热门故事和贡献模式
    • 示例:"分析用户 'pg' 并展示其活动情况"
  4. search_trending - 查找当前热门话题

    • 通过对热门故事进行关键词频率分析
    • 示例:"今天 HackerNews 上有哪些热门话题?"
  5. search_comments - 分析评论参与度

    • 包括评论统计信息、顶级评论者和讨论模式
    • 示例:"分析编号为 44473319 的故事的评论"

📦 安装指南

前提条件

  • Node.js 18+
  • npm 或 yarn

安装步骤

  1. 克隆并安装:

    git clone 
    cd hackernews-mcp-server
    npm install
    
  2. 构建项目:

    npm run build
    
  3. 配置 MCP 客户端(Cursor):

    • .cursor/mcp.json 文件已完成配置
    • 重启 Cursor 以加载 MCP 服务器
  4. 开始使用:

    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 倍
  • 智能过滤:客户端搜索减轻服务器负载
  • 并发请求:并行处理提高效率

🔒 隐私与道德

  • 仅使用公开数据:不访问私人信息
  • 合理使用:采用速率限制和缓存机制
  • 不存储数据:仅进行临时缓存
  • 透明公开:开源实现

🐛 故障排除

常见问题

  1. 服务器无法启动

    # 检查 Node.js 版本
    node --version  # 应使用 18+ 版本
    
    # 重新构建项目
    npm run build
    
  2. MCP 连接问题

    • 重启 MCP 客户端(Cursor)
    • 检查 .cursor/mcp.json 配置
    • 验证服务器是否通过 npm start 正常运行
  3. API 错误

    • 检查网络连接
    • 验证 HackerNews API 是否可访问
    • 检查缓存配置

调试模式

# 启用调试日志
LOG_LEVEL=debug npm start

# 检查缓存统计信息
# 使用 hackernews://cache/stats 资源

📈 路线图

  • [ ] 实时 WebSocket 更新
  • [ ] 高级情绪分析
  • [ ] 用户网络分析
  • [ ] 导出功能
  • [ ] 自定义过滤规则
  • [ ] 性能仪表盘

🤝 贡献指南

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

🎉 准备好以前所未有的方式探索 HackerNews 了吗?

🚀 快速开始命令

npm run build && npm start

💬 开始你的第一次对话

向你的 AI 助手提问:

  • "现在 HackerNews 上有哪些顶级的 AI 故事?"
  • "查找今天科技社区的热门话题"
  • "分析本周讨论最多的故事"

🙏 致谢与鸣谢

🧡 特别感谢 HackerNews

"这里汇聚了最棒的技术讨论"

我们非常感谢 HackerNewsY Combinator

🌟 创建了世界上最棒的科技社区
📡 提供免费的实时 API 访问
🔥 促进了激发创新的精彩讨论
🚀 构建了一个每天都在讨论科技未来的平台

技术支持


📜 许可证与使用条款

🆓 本 MCP 服务器

MIT 许可证 - 你可以使用、修改和分享!详情请参阅 LICENSE 文件。
创建者:Traves Theberge Traves.Theberge@gmail.com

📊 HackerNews API

非商业使用免费 - 请尊重创建内容的社区。
商业使用:请查看 Y Combinator 的条款


🌟 加入社区

发现了 bug? 提交一个问题!
有想法? 发起一场讨论!
想要贡献? 欢迎提交拉取请求!

🔗 联系我们

  • 📧 邮箱:Traves.Theberge@gmail.com
  • 🐙 GitHub:本仓库
  • 🗨️ 讨论区:分享你对 HackerNews 的见解!

🧡 持续探索,不断创新! 🧡

为 HackerNews 社区用心打造

⭐ 给这个仓库加星 • 🍴 分叉它 • 📝 贡献代码

  • 0 关注
  • 0 收藏,19 浏览
  • system 提出于 2025-09-22 08:21

相似服务问题

相关AI产品