HackerNews MCP 服务器
一个模型上下文协议(MCP)服务器,提供对HackerNews API的全面访问。此服务器使AI助手和其他MCP客户端能够搜索、检索并与HackerNews内容进行交互,包括故事、评论、投票、用户等。
特点/特性
这个MCP服务器提供了15个工具,涵盖了所有可用的HackerNews API端点:
搜索与发现工具
- 搜索帖子 - 按相关性搜索帖子(按相关性、积分、然后是评论排序)
- 按日期搜索帖子 - 按日期搜索帖子(最近的在前)
- 通过URL搜索 - 查找链接到特定URL的帖子
- 按时间范围搜索 - 在特定时间范围内搜索帖子
内容检索工具
- 获取首页 - 获取当前HackerNews首页上的所有故事
- 获取最新故事 - 获取最新的故事
- 获取最新评论 - 获取最新的评论
- 获取-show-hn(注:这可能是某个特定应用或网站中的功能或页面名称,根据上下文,“get-show-hn”直译为“获取-显示-hn”,但具体含义需结合实际应用场景来理解) - 获取“Show HN”帖子(用户项目)
- 获取-提问-问答(板块) - 获取“Ask HN”帖子(问题)
- 获取民意调查 - 获取最新民意调查
- 获取头条新闻 - 获取达到最低分值门槛的故事
项目与用户工具
- 获取项目(或“获取项”) - 通过ID获取特定项目(故事、评论、投票)
- 获取用户 - 获取用户信息和积分(或“功德值”)
- 按作者获取帖子 - 获取特定作者的所有帖子
- 获取故事评论 - 获取特定故事的所有评论
安装
先决条件
- Node.js 18 或更高版本
- npm 或 yarn
设置
- 克隆此存储库:
git clone
cd hn-mcp-server-vibe- 安装依赖项:
npm install- 构建服务器:
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": ["/absolute/path/to/hn-mcp-server-vibe/build/index.js"]
}
}
}替换 /absolute/path/to/hn-mcp-server-vibe 并替换为您实际的安装路径。
与其他MCP客户端进行配置
对于其他支持stdio传输的MCP客户端,请将它们配置为启动(或派生):
node /path/to/hn-mcp-server-vibe/build/index.jsAPI 示例
搜索帖子
// Search for AI-related stories
{
"tool": "search-posts",
"arguments": {
"query": "artificial intelligence",
"tags": "story",
"page": 0,
"hitsPerPage": 20
}
}获取首页新闻故事
{
"tool": "get-front-page",
"arguments": {
"hitsPerPage": 30
}
}获取用户信息
{
"tool": "get-user",
"arguments": {
"username": "pg"
}
}获取头条新闻
// Get stories with at least 500 points
{
"tool": "get-top-stories",
"arguments": {
"minPoints": 500,
"hitsPerPage": 10
}
}按时间范围搜索
// Get stories from the last 24 hours
{
"tool": "search-by-time-range",
"arguments": {
"tags": "story",
"startTime": 1728691200, // Unix timestamp
"endTime": 1728777600, // Unix timestamp
"hitsPerPage": 20
}
}可用标签
使用搜索工具时,您可以按以下标签进行筛选:
story- 常规故事comment- 评论poll- 民意调查pollopt- 选项投票show_hn- 展示HN帖子ask_hn- Ask HN帖子front_page- 目前在首页author_USERNAME- 特定作者的帖子(例如。,author_pg)story_ID- 对特定故事的评论(例如。,story_1234)
标签可以使用逗号(AND)或括号表示“或”: author_pg,(story,poll)
可用的数字过滤器
对于高级过滤:
created_at_i- 创建时间戳(Unix秒)points- 点数/点赞数num_comments- 评论数量
操作员: `, >=`
示例:
points>100- 超过100分created_at_i>1672531200- 在特定日期之后points>=50,num_comments>10- 多种条件
响应格式
所有工具都返回包含以下内容的结构化数据:
- 内容 - 响应的文本表示
- 结构化内容 - 解析后的JSON对象,用于程序化访问
搜索结果包括:
hits- 匹配项目的数组nbHits- 总比赛场数nbPages- 总页数page- 当前页码hitsPerPage- 每页结果数
速率限制
The HackerNews API限制请求为 每个IP地址每小时10,000(单位根据上下文确定,如“次”、“请求”等)此服务器未实施额外的速率限制,因此客户端应注意这一限制。
发展
项目结构
hn-mcp-server-vibe/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md建筑
npm run build在开发中运行
npm run devAPI 参考文档
完整HackerNews API文档:https://hn.algolia.com/api
许可证
麻省理工学院(MIT)
做出贡献
欢迎贡献!请随时提交问题或拉取请求。
故障排除
服务器无法连接
- 确保构建目录存在且包含编译后的JavaScript文件
- 检查 Node.js 版本是否为 18 或更高版本
- 验证MCP客户端配置中的绝对路径
未返回结果
- 检查您的搜索查询和筛选条件
- 验证API是否可访问:https://hn.algolia.com/api
- 检查速率限制未被超出
TypeScript 错误
- 跑步
npm install确保所有依赖项都已安装 - 跑
npm run build编译TypeScript
支持
对于此MCP服务器特有的问题,请在仓库中提交一个问题。
关于模型上下文协议的问题,请参阅:https://modelcontextprotocol.io
关于HackerNews API的问题,请参阅:https://hn.algolia.com/api
