Hacker News 服务器
解析来自 news.ycombinator.com(Hacker News)的 HTML 内容,并为不同类型的故事(顶级、新故事、提问、展示、工作)提供结构化数据。
可用工具 (1 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
get_stories 2 个参数
Get stories from Hacker News
该工具无需必填参数,直接调用即可
服务介绍
Hacker News MCP 服务器
一个提供从 Hacker News 获取故事的工具的 Model Context Protocol (MCP) 服务器。该服务器解析来自 news.ycombinator.com 的 HTML 内容,并为不同类型的故事(热门、最新、求问、展示、工作)提供结构化数据。
特性
- 获取不同类型的故事(热门、最新、求问、展示、工作)
- 获取包括标题、URL、分数、作者、时间戳和评论数量在内的结构化数据
- 可配置返回的故事数量限制
- 清晰的错误处理和验证
安装
- 克隆仓库:
git clone https://github.com/pskill9/hn-server
cd hn-server
- 安装依赖:
npm install
- 构建服务器:
npm run build
- 将其添加到您的 MCP 设置配置文件中(位置取决于您的系统):
对于 VSCode Claude 扩展:
{
"mcpServers": {
"hacker-news": {
"command": "node",
"args": ["/path/to/hn-server/build/index.js"]
}
}
}
使用
该服务器提供了一个名为 get_stories 的工具,可以用来从 Hacker News 获取故事。
工具:get_stories
参数:
type(字符串): 要获取的故事类型- 选项: 'top', 'new', 'ask', 'show', 'jobs'
- 默认值: 'top'
limit(数字): 返回的故事数量- 范围: 1-30
- 默认值: 10
示例用法:
use_mcp_tool with:
server_name: "hacker-news"
tool_name: "get_stories"
arguments: {
"type": "top",
"limit": 5
}
示例输出:
[
{
"title": "Example Story Title",
"url": "https://example.com/story",
"points": 100,
"author": "username",
"time": "2024-12-28T00:03:05",
"commentCount": 50,
"rank": 1
},
// ... more stories
]
与 Claude 集成
要将此 MCP 服务器与 Claude 一起使用,您需要:
- 安装 Claude 桌面应用程序或 VSCode Claude 扩展
- 在设置中配置 MCP 服务器
- 使用 Claude 的自然语言界面与 Hacker News 进行交互
配置
对于 Claude 桌面应用,在以下位置添加服务器配置:
// ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
// %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"hacker-news": {
"command": "node",
"args": ["/path/to/hn-server/build/index.js"]
}
}
}
对于 VSCode Claude 扩展,在以下位置添加:
// VSCode Settings JSON
{
"mcpServers": {
"hacker-news": {
"command": "node",
"args": ["/path/to/hn-server/build/index.js"]
}
}
}
示例交互
配置完成后,您可以使用自然语言与 Claude 交互以获取 Hacker News 故事。例如:
- "显示 Hacker News 的前 5 条热门故事"
- "最新的 Ask HN 帖子是什么?"
- "获取今天排名最高的 Show HN 提交"
Claude 会自动使用适当的参数来获取您想要的故事。

故事对象结构
每个故事对象包含:
title(字符串): 故事标题url(字符串, 可选): 故事的 URL(文本帖子可能是内部 HN URL)points(数字): 点赞数author(字符串): 发帖人的用户名time(字符串): 故事发布的时间戳commentCount(数字): 评论数量rank(数字): 列表中的位置
开发
该服务器使用以下技术构建:
- TypeScript
- Model Context Protocol SDK
- Axios 用于 HTTP 请求
- Cheerio 用于 HTML 解析
要修改服务器:
- 修改
src/index.ts - 重新构建:
npm run build
错误处理
该服务器包括针对以下情况的强大错误处理:
- 无效的故事类型
- 网络故障
- HTML 解析错误
- 无效的参数值
错误会附带适当的错误代码和描述性信息返回。
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT 许可证 - 您可以在自己的项目中自由使用。