mcpField
T
technews-port

technews-port

本地服务
github.com/CloudCorpRecords社交媒体02 周前更新

关于 technews-port

technews-port 是用于阅读和搜索 Hacker News 的命令行工具及 stdio MCP 服务。它结合 Hacker News 公共 Firebase API 的排行列表、条目与用户查询,以及 Algolia 提供的故事全文搜索。

主要功能

  1. 01获取 top、new、best 故事列表
  2. 02按数字 ID 获取条目
  3. 03读取公开用户资料
  4. 04通过 Algolia 搜索故事文本
  5. 05排行列表附带解析后的故事详情

适用场景

  1. 01浏览 Hacker News 排行故事
  2. 02查看故事、评论、招聘或投票
  3. 03查询用户公开资料
  4. 04搜索符合查询条件的故事

MCP 相关

提供排行列表、条目与用户查询、故事搜索等 MCP 工具。它使用 Hacker News 公共 Firebase API 和 Algolia HN Search API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-technews-port": {
"command": "npx",
"args": [
"-y",
"@reneturcios/technews-port"
]
}
}
}
启动命令npx -y @reneturcios/technews-port

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/technews-port0.1.0
ocighcr.io/cloudcorprecords/technews-port:0.1.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否返回头条故事的最大数量;默认值为 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_storieslimit(整数,可选)当前热门故事:排名条目 ID,以及解析后的每条故事内容——标题、作者、评分、评论数、URL 和时间戳。
get_new_storieslimit(整数,可选)最新故事,格式与 get_top_stories 相同。
get_best_storieslimit(整数,可选)最佳故事,格式与 get_top_stories 相同。
get_itemitem_id(整数,必填)任意类型的一个条目(故事、评论、招聘信息、投票):其类型、作者、正文或标题、评分、子评论 ID,以及 deleted/dead 标记。
get_userusername(字符串,必填)用户的公开个人资料:创建时间、karma、about 文本和已提交的条目 ID。
search_storiesquery(字符串,必填),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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。