MCP server for Hacker News β feeds, threads, users, and search via Firebase and Algolia APIs
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Browse Hacker News feeds, threads, and user profiles with full-text search via MCP. STDIO or Streamable HTTP.
Public Hosted Server: https://hn.caseyjhand.com/mcp
Four read-only tools for accessing Hacker News data:
| Tool Name | Description |
|---|---|
hn_get_stories | Fetch stories from an HN feed (top, new, best, ask, show, jobs) with pagination. |
hn_get_thread | Get an item and its comment tree as a threaded discussion with depth/count controls. |
hn_get_user | Fetch a user profile with karma, about, and optionally a page of their submissions. |
hn_search_content | Search stories and comments via Algolia with type, author, date, and score filters. |
hn_get_storiesFetch stories from any HN feed with pagination support.
top, new, best, ask, show, jobshn_get_threadRetrieve an item and its full comment tree via ranked breadth-first traversal.
depth/parentId for tree reconstructionhn_get_userFetch a user profile with optional submission resolution.
submissionOffset pages through a long history; enrichment echoes the applied offset and the offset to request nexthn_search_contentFull-text search via the Algolia HN Search API.
story, comment, ask_hn, show_hn, front_pageview: "compact" drops the two body-text fields (text, highlights.text), which otherwise repeat a long comment twice per hit β pass a hit id to hn_get_thread to read the bodyBuilt on @cyanheads/mcp-ts-core:
HN-specific:
instructions orientation forwarded to LLM clients on initialize β item types, ID reuse across tools, case-sensitive usernames, and field sparsity expectationsA public instance is available at https://hn.caseyjhand.com/mcp β no installation required. Point any MCP client at it via Streamable HTTP:
Add to your MCP client configuration file:
Or with npx (no Bun required):
Or with Docker:
All configuration is via environment variables. No API keys required β HN APIs are public.
| Variable | Description | Default |
|---|---|---|
HN_CONCURRENCY_LIMIT | Max concurrent HTTP requests for batch item fetches (integer, 1β50). | 10 |
MCP_TRANSPORT_TYPE | Transport: stdio or http. | stdio |
MCP_HTTP_PORT | HTTP server port. | 3010 |
MCP_HTTP_HOST | HTTP server host. | localhost |
MCP_SESSION_MODE | HTTP session handling: auto, stateful, or stateless. auto resolves to stateful. The published Docker image and .env.example pin stateless. | auto |
MCP_LOG_LEVEL | Log level: debug, info, notice, warning, error. | info |
LOGS_DIR | Directory for log files (Node.js only). | <project-root>/logs |
| Directory | Purpose |
|---|---|
src/index.ts | createApp() entry point. |
src/config/ | Server-specific env var parsing with Zod. |
src/services/hn/ | HN Firebase + Algolia API client and domain types. |
src/mcp-server/tools/definitions/ | Tool definitions (*.tool.ts). |
See CLAUDE.md for development guidelines and architectural rules. The short version:
try/catch in tool logicctx.log for request-scoped loggingIssues and pull requests are welcome. Run checks before submitting:
Apache-2.0 β see LICENSE for details.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hn-mcp-server)<a href="https://allmcps.com/mcp/hn-mcp-server"><img src="https://allmcps.com/api/badge/hn-mcp-server?style=directory" alt="Hn MCP Server on AllMCPs" /></a>