hn-mcp
Provides tools to search and retrieve Hacker News stories and comments via the Algolia API, including full comment trees with depth control and smart pruning.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hn-mcpget the top 10 stories from Hacker News"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hn-mcp
HN threads have 500+ comments nested 10 levels deep. Your AI agent needs to read them without blowing its context window.
hn-mcp is an MCP server that gives AI agents full access to Hacker News — complete comment trees, search, and user profiles — with depth control so they can explore progressively instead of fetching everything at once.
Features
Full comment trees — no depth limits, no truncation
Depth control — fetch just top-level comments or the entire tree
Smart pruning —
reply_countat cut-off points so agents decide what to expandSearch — full-text search across stories and comments with filters
No API keys — uses the public Algolia HN API
100% test coverage — tested with VCR cassettes, no network calls needed
Typical agent workflow
1. get_thread(42123456, depth=1) → story + 85 top-level comments with reply_counts
2. Agent picks Comment A (47 replies)
3. get_comment_tree(comment_a_id) → full 47-reply subtree
4. Agent summarizes branch, picks nextOr for smaller threads, just get_thread(id, depth=-1) to get the entire tree at once.
Getting started
Standard config works in most tools:
{
"mcpServers": {
"hn": {
"command": "uvx",
"args": ["hn-mcp"]
}
}
}claude mcp add hn -- uvx hn-mcpAdd --scope user to make it available in all projects.
Follow the MCP install guide, use the standard config above.
Add to your Cursor MCP config (~/.cursor/mcp.json):
{
"mcpServers": {
"hn": {
"command": "uvx",
"args": ["hn-mcp"]
}
}
}Follow the Windsurf MCP documentation, use the standard config above.
Add to your VS Code MCP config (.vscode/mcp.json):
{
"mcpServers": {
"hn": {
"command": "uvx",
"args": ["hn-mcp"]
}
}
}If you want to run from a local clone instead:
claude mcp add hn -- uv run --directory /absolute/path/to/news-ycombinator-mcp hn-mcpPrerequisites
Python 3.12+
uv (provides
uvx)
Related MCP server: MCP Hacker News
Tools
Tool | Description | Key Inputs | Returns |
| Fetch a story and its comment tree |
| Story metadata + pruned comment tree |
| Dive into a specific comment's reply subtree |
| Comment + nested replies |
| Browse HN by category |
| List of story summaries |
| Full-text search for stories |
| Paginated story results |
| Full-text search for comments |
| Paginated comment results |
| Fetch a user profile |
| Username, karma, about, created date |
Depth parameter
The depth parameter on get_thread and get_comment_tree controls how much of the tree you get:
depth=0 (no comments — story metadata only)
depth=1 Comment A (reply_count=3) ← just the comment + count
depth=2 Comment A ← comment + direct replies
├── Reply A1 (reply_count=2)
├── Reply A2 (reply_count=0)
└── Reply A3 (reply_count=1)
depth=-1 Full tree, no pruningDevelopment
git clone https://github.com/tomwojcik/news-ycombinator-mcp
cd news-ycombinator-mcp
make venv
make installRun tests
make testTests use vcrpy cassettes — no network calls needed. Coverage is reported automatically.
Re-record cassettes
If the Algolia API response format changes:
# In tests/conftest.py, temporarily change record_mode to "new_episodes"
uv run pytest
# Then change it back to "none"Project structure
src/hn_mcp/
├── app.py # FastMCP instance + tree pruning helpers
├── client.py # HNClient — async Algolia API client
├── server.py # Entrypoint
├── types.py # TypedDict definitions for all responses
└── tools/
├── get_thread.py
├── get_comment_tree.py
├── get_stories.py
├── search_stories.py
├── search_comments.py
└── get_user.pyLicense
MIT — see LICENSE.
Contributing
Contributions welcome. Please open an issue first to discuss what you'd like to change.
When submitting a PR:
Add tests for new functionality
Record VCR cassettes for any new API calls
Ensure
uv run pytestpasses with 100% coverage
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomwojcik/news-ycombinator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server