hn_get_thread walks the tree breadth-first in HN's own ranking order and returns depth and parentId per comment, so an agent can summarise a discussion rather than a heap of replies. Depth 0 doubles as a single-item lookup, which saves a separate tool for the same job.
A TypeScript server over the Hacker News Firebase API and Algolia search. Four read-only tools; no key, because both APIs are public.
- Stories from any of six feeds — top, new, best, ask, show and jobs — with a count from 1 to 100 and an offset for paging — hn_get_stories
- An item and its comment tree by ranked breadth-first traversal, depth 0 to 10 and up to 200 comments, flattened with depth and parentId so the tree can be rebuilt — hn_get_thread
- A user profile with karma, creation date and about text, optionally resolving up to 50 submissions per page — hn_get_user
- Full-text search over stories and comments through Algolia, filtered by type, author, date range and minimum points — hn_search_content
- A compact search view that drops the two body-text fields, which otherwise repeat a long comment twice per hit
- Server instructions delivered on initialize — item types, id reuse across tools, case-sensitive usernames and field sparsity
Nothing to authenticate. Run npx -y @cyanheads/hn-mcp-server over stdio, use the published Docker image, or point a Streamable HTTP client at the public instance at https://hn.caseyjhand.com/mcp. A local install wants Bun v1.3.0 or Node.js 24 and above; HN_CONCURRENCY_LIMIT defaults to 10 and caps batch item fetches.
One command — npx -y @cyanheads/hn-mcp-server
