mcpField
T
technews-port

technews-port

Local
github.com/CloudCorpRecordsSocial Media0Updated 2w ago

About technews-port

technews-port is a CLI and stdio MCP server for reading and searching Hacker News. It combines ranked story lists and item or user lookups from the public Firebase API with full-text story search through Algolia.

Key features

  1. 01Top, new, and best story lists
  2. 02Retrieve items by numeric ID
  3. 03Read public user profiles
  4. 04Search story text through Algolia
  5. 05Parsed story details in ranked lists

Use cases

  1. 01Review ranked Hacker News stories
  2. 02Inspect a story, comment, job, or poll
  3. 03Look up a user's public profile
  4. 04Find stories matching a query

MCP support

Provides MCP tools for ranked lists, item and user lookups, and story search. It uses Hacker News' public Firebase API and Algolia HN Search API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-technews-port": {
"command": "npx",
"args": [
"-y",
"@reneturcios/technews-port"
]
}
}
}
Run commandnpx -y @reneturcios/technews-port

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/technews-port0.1.0
ocighcr.io/cloudcorprecords/technews-port:0.1.0

Tools

6

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitintegerNoMaximum number of top stories to return; defaults to 30, clamped to 1-100.

Details

From the project README

technews-port

technews-port is a small reader for Hacker News that speaks to the site's own public APIs, so there is no scraping and nothing to sign up for. It pulls the ranked front-page lists (top, new, and best), any single item by its numeric id, and any user's public profile from the official Firebase API, and it searches story text through the Algolia HN Search API — the one capability the Firebase API does not have.

Story lists come back with the items already fetched, in ranked order, not just bare ids: the headline, author, score, and comment count are right there for each entry.

Install

npx @reneturcios/technews-port top --limit 10

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/technews-port

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

Every command prints 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

Exit codes: 0 on success, 1 when the lookup fails (an unknown item or user, or an upstream error, named in the message), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/technews-port mcp

MCP client configuration:

{
  "mcpServers": {
    "technews-port": {
      "command": "npx",
      "args": ["-y", "@reneturcios/technews-port", "mcp"]
    }
  }
}
Tools
ToolInputWhat it returns
get_top_storieslimit (integer, optional)The current top stories: the ranked item ids plus each story parsed — title, author, score, comment count, URL, and timestamp.
get_new_storieslimit (integer, optional)The newest stories, same shape as get_top_stories.
get_best_storieslimit (integer, optional)The best stories, same shape as get_top_stories.
get_itemitem_id (integer, required)One item of any kind (story, comment, job, poll): its type, author, text or title, score, child comment ids, and deleted/dead flags.
get_userusername (string, required)The user's public profile: creation time, karma, about text, and submitted item ids.
search_storiesquery (string, required), limit (integer, optional)Stories matching the query, from Algolia: title, URL, author, points, comment count, and posting time per hit.

If an id in a ranked list disappears between reading the list and fetching the item — it happens on a live site — the id stays in item_ids and the item is simply absent from items.

Development

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

The core takes an injectable fetch function, and the test suite routes a fake fetch by URL to hand-written payloads shaped like real Firebase and Algolia responses — the tests never touch the network.

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.