Hacker News MCP 服务器
一个提供获取 Hacker News 故事工具的模型上下文协议(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(string): 要获取的故事类型- 选项:'top', 'new', 'ask', 'show', 'jobs'
- 默认值:'top'
limit(number): 要返回的故事数量- 范围:1-30
- 默认值:10
示例用法:
use_mcp_tool with:
server_name: "hacker-news"
tool_name: "get_stories"
arguments: {
"type": "top",
"limit": 5
}
示例输出:
[
{
"title": "示例故事标题",
"url": "https://example.com/story",
"points": 100,
"author": "username",
"time": "2024-12-28T00:03:05",
"commentCount": 50,
"rank": 1
},
// ... 更多故事
]
与 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 配置 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(string): 故事标题url(string, 可选): 故事的 URL(文本帖子可能是 Hacker News 内部链接)points(number): 点赞数author(string): 发帖用户名time(string): 故事发布时间戳commentCount(number): 评论数量rank(number): 列表中的位置
开发
服务器使用以下技术构建:
- TypeScript
- 模型上下文协议 SDK
- Axios 用于 HTTP 请求
- Cheerio 用于 HTML 解析
要修改服务器:
- 修改
src/index.ts - 重新构建:
npm run build
错误处理
服务器包含针对以下情况的健壮错误处理:
- 无效的故事类型
- 网络故障
- HTML 解析错误
- 无效的参数值
错误会附带适当的错误代码和描述性消息返回。
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT 许可证 - 可自由用于你的项目。
