返回市场
hn-mcp服务器-振动

hn-mcp服务器-振动

作者:wei5 星标更新:2025-10-12

项目介绍

HackerNews MCP Server

这是一个基于模型上下文协议(MCP)的服务器,提供全面访问HackerNews API的功能。此服务器使AI助手和其他MCP客户端能够搜索、检索并交互HackerNews内容,包括故事、评论、投票、用户等。

功能

此MCP服务器公开了15个工具,涵盖了所有可用的HackerNews API端点:

搜索与发现工具

  • search-posts - 根据相关性搜索帖子(按相关性、积分、然后是评论排序)
  • search-posts-by-date - 按日期排序搜索帖子(最近的优先)
  • search-by-url - 查找链接到特定URL的帖子
  • search-by-time-range - 在特定时间段内搜索帖子

内容检索工具

  • get-front-page - 获取当前在HackerNews首页上的所有故事
  • get-latest-stories - 获取最新故事
  • get-latest-comments - 获取最新评论
  • get-show-hn - 获取“展示HN”帖子(用户项目)
  • get-ask-hn - 获取“提问HN”帖子(问题)
  • get-polls - 获取最新投票
  • get-top-stories - 获取具有最低积分阈值的故事

项目及用户工具

  • get-item - 根据ID获取特定项目(故事、评论、投票)
  • get-user - 获取用户信息和积分
  • get-posts-by-author - 获取特定作者的所有帖子
  • get-story-comments - 获取特定故事的所有评论

安装

先决条件

  • Node.js 18或更高版本
  • npm 或 yarn

设置

  1. 克隆此仓库:
git clone <repository-url>
cd hn-mcp-server-vibe
  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

使用

直接运行服务器

你可以使用Node.js直接运行服务器:

npm start

或者在开发期间:

npm run dev

配置Claude Desktop

要使用此服务器与Claude Desktop,请在你的Claude Desktop配置文件中添加以下配置:

在macOS上~/Library/Application Support/Claude/claude_desktop_config.json

在Windows上%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hackernews": {
      "command": "node",
      "args": ["/绝对路径/to/hn-mcp-server-vibe/build/index.js"]
    }
  }
}

用实际安装路径替换/绝对路径/to/hn-mcp-server-vibe

配置其他MCP客户端

对于支持stdio传输的其他MCP客户端,配置它们以启动:

node /路径/to/hn-mcp-server-vibe/build/index.js

API示例

搜索帖子

// 搜索与人工智能相关的帖子
{
  "tool": "search-posts",
  "arguments": {
    "query": "人工智能",
    "tags": "story",
    "page": 0,
    "hitsPerPage": 20
  }
}

获取首页故事

{
  "tool": "get-front-page",
  "arguments": {
    "hitsPerPage": 30
  }
}

获取用户信息

{
  "tool": "get-user",
  "arguments": {
    "username": "pg"
  }
}

获取顶级故事

// 获取至少有500分的故事
{
  "tool": "get-top-stories",
  "arguments": {
    "minPoints": 500,
    "hitsPerPage": 10
  }
}

按时间范围搜索

// 获取过去24小时的故事
{
  "tool": "search-by-time-range",
  "arguments": {
    "tags": "story",
    "startTime": 1728691200,  // Unix时间戳
    "endTime": 1728777600,     // Unix时间戳
    "hitsPerPage": 20
  }
}

可用标签

使用搜索工具时,可以按以下标签过滤:

  • story - 常规故事
  • comment - 评论
  • poll - 投票
  • pollopt - 投票选项
  • show_hn - 展示HN帖子
  • ask_hn - 提问HN帖子
  • front_page - 当前在首页上
  • author_USERNAME - 特定作者的帖子(例如,author_pg
  • story_ID - 特定故事的评论(例如,story_1234

标签可以用逗号组合(AND)或括号表示OR:author_pg,(story,poll)

可用数值过滤器

用于高级过滤:

  • created_at_i - 创建时间戳(Unix秒)
  • points - 积分数/点赞数
  • num_comments - 评论数

运算符:<, <=, =, >, >=

示例:

  • points>100 - 超过100分
  • created_at_i>1672531200 - 在特定日期之后
  • points>=50,num_comments>10 - 多个条件

响应格式

所有工具返回结构化数据,包含:

  • content - 响应的文字表示
  • structuredContent - 用于程序访问的解析JSON对象

搜索结果包括:

  • hits - 匹配项目的数组
  • nbHits - 总匹配数
  • nbPages - 总页数
  • page - 当前页码
  • hitsPerPage - 每页结果数

请求限制

HackerNews API限制每个IP地址每小时请求次数为10,000次。此服务器不实现额外的速率限制,因此客户端应注意这一约束。

开发

项目结构

hn-mcp-server-vibe/
├── src/
│   └── index.ts          # 主服务器实现
├── build/                 # 编译后的JavaScript输出
├── package.json
├── tsconfig.json
└── README.md

构建

npm run build

开发模式运行

npm run dev

API参考

完整的HackerNews API文档:https://hn.algolia.com/api

许可证

MIT

贡献

欢迎贡献!请随时提交问题或拉取请求。

故障排除

服务器无法连接

  • 确保构建目录存在且包含编译后的JavaScript
  • 检查Node.js版本是否为18或更高
  • 验证MCP客户端配置中的绝对路径

没有返回结果

TypeScript错误

  • 运行npm install确保所有依赖项已安装
  • 运行npm run build编译TypeScript

支持

针对此MCP服务器的问题,请在仓库中打开一个issue。

关于Model Context Protocol的问题,请参阅:https://modelcontextprotocol.io

关于HackerNews API的问题,请参阅:https://hn.algolia.com/api