关于 technews-port
technews-port 是用于阅读和搜索 Hacker News 的命令行工具及 stdio MCP 服务。它结合 Hacker News 公共 Firebase API 的排行列表、条目与用户查询,以及 Algolia 提供的故事全文搜索。
主要功能
- 01获取 top、new、best 故事列表
- 02按数字 ID 获取条目
- 03读取公开用户资料
- 04通过 Algolia 搜索故事文本
- 05排行列表附带解析后的故事详情
适用场景
- 01浏览 Hacker News 排行故事
- 02查看故事、评论、招聘或投票
- 03查询用户公开资料
- 04搜索符合查询条件的故事
MCP 相关
提供排行列表、条目与用户查询、故事搜索等 MCP 工具。它使用 Hacker News 公共 Firebase API 和 Algolia HN Search API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回头条故事的最大数量;默认值为 30,限制在 1-100 之间。 |
详细介绍
technews-port
technews-port 是一个小型 Hacker News 阅读器,直接调用该网站自己的公开 API,因此不会抓取网页,也无需注册。它通过官方 Firebase API 获取排名列表(top、new 和 best)、任意一个带数字 ID 的条目,以及任意用户的公开个人资料;并通过 Algolia HN Search API 搜索故事正文——这是 Firebase API 不具备的唯一功能。
返回的故事列表已按排名顺序获取具体条目,而不只是裸 ID:每个条目都包含标题、作者、评分和评论数。
安装
npx @reneturcios/technews-port top --limit 10
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/technews-port
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
每条命令都会输出 JSON。
# The three ranked lists (default 30 stories, capped at 100)
technews-port top
technews-port new --limit 10
technews-port best --limit 5
# One item, one user
technews-port item 8863
technews-port user pg
# Full-text story search via Algolia (default 20 hits)
technews-port search "show hn" --limit 10
technews-port --version
退出代码:成功时为 0;查询失败(条目或用户不存在,或上游出错,错误信息中会说明)时为 1;用法错误时为 2。
MCP 服务
同一个可执行文件提供两种用法。mcp 子命令会启动一个 stdio MCP 服务:
npx -y @reneturcios/technews-port mcp
MCP 客户端配置:
{
"mcpServers": {
"technews-port": {
"command": "npx",
"args": ["-y", "@reneturcios/technews-port", "mcp"]
}
}
}
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
get_top_stories | limit(整数,可选) | 当前热门故事:排名条目 ID,以及解析后的每条故事内容——标题、作者、评分、评论数、URL 和时间戳。 |
get_new_stories | limit(整数,可选) | 最新故事,格式与 get_top_stories 相同。 |
get_best_stories | limit(整数,可选) | 最佳故事,格式与 get_top_stories 相同。 |
get_item | item_id(整数,必填) | 任意类型的一个条目(故事、评论、招聘信息、投票):其类型、作者、正文或标题、评分、子评论 ID,以及 deleted/dead 标记。 |
get_user | username(字符串,必填) | 用户的公开个人资料:创建时间、karma、about 文本和已提交的条目 ID。 |
search_stories | query(字符串,必填),limit(整数,可选) | 来自 Algolia 的匹配故事;每条结果包含标题、URL、作者、积分、评论数和发布时间。 |
如果排名列表中的某个 ID 在读取列表和获取条目之间消失了——实时网站上确实可能发生这种情况——该 ID 仍会保留在 item_ids 中,而对应条目不会出现在 items 中。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
核心模块接受可注入的 fetch 函数;测试套件会根据 URL 将模拟 fetch 请求路由到手工编写的载荷,这些载荷的结构仿照真实的 Firebase 和 Algolia 响应——测试绝不会访问网络。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。