get_itemLABSCO SUMMARY
Fetching the article, not just the discussion, is what makes it useful.
Most Hacker News integrations stop at the comment thread. Pulling the content from the story's own URL and returning it as markdown means an agent can compare what an article says with what the thread says about it — which is the actual question most people have. The prompt library leans into that: multi-source analysis and content filtering are compositions, not extra API surface. The licence is the thing to check first: AGPLv3 with an explicit commercial-use restriction naming hosted MCP directories.
What it is
A FastMCP server over the Hacker News API with an unusual emphasis: you do not need item ids. Stories can be found by title or keywords, and the server will fetch the story, its comments, and the content behind its URL. It runs over stdio or SSE and also exposes the same surface as a REST API with OpenAPI docs.
What you get
- Story listings —
get_top_stories,get_best_stories,get_new_stories,get_ask_stories,get_show_stories,get_job_stories, each taking a limit - Title-based retrieval, which is the part that matters:
find_stories_by_titlesearches by keywords andget_story_by_titlereturns the matching story with its comments get_story_with_commentsfor a story and its top comments by id, with a comment limit- The linked article's actual text through
get_story_contentandget_story_content_by_title, in markdown or json - Basics —
get_item,get_user,get_max_item_id,get_updates, andsearch_by_datefor stories from roughly N days ago - Resources mirroring the listings at
hn://top/{limit},hn://ask/{limit},hn://item/{id}and so on - Prompt templates that compose the tools:
hn_routerpicks an approach for any HN question, plushn_story_comment_analysis,hn_content_filterfor extracting only the technical or code parts,hn_advanced_search,hn_compare_stories,hn_multi_source_analysis,hn_trend_analysisandhn_user_profile_analysis
Requirements
No account and no key for the Hacker News data itself. Installation is a clone plus pip install -r requirements.txt; launch with python run.py --transport stdio for a local client or --transport sse --host 127.0.0.1 --port 8000 for the HTTP form. LOG_LEVEL controls verbosity. Older models that mishandle tool arguments may need FASTMCP_TOOL_ATTEMPT_PARSE_JSON_ARGS=1. Docker and Docker Compose files are included, along with Cloud Run and Lambda deployment notes. Licensed AGPLv3, and the author requires a paid licence for any monetised service built on it — read that section before deploying it commercially.
Setup effort
Build from source — git clone https://github.com/rawveg/hacker-news-mcp.git
USE CASES
Catching up on a story you half-remember
Find it by keywords rather than id, and get the story with its top comments in one step.
Reading the article and the reaction together
Pull the linked page's text as markdown alongside the comment thread, then compare the claims with the criticism.
Extracting only the technical substance
Filter a story's content down to code examples or technical detail instead of reading the whole piece.
Seeing what is gaining traction
Compare current listings against stories from several days ago to spot topics rising rather than just topics present.
Understanding a commenter
Look up the user and analyse their activity and interests before weighing what they said.
16 tools
Listed in project docs. Your client may show a different list.
get_userget_max_item_idget_top_storiesget_best_storiesget_new_storiesget_ask_storiesget_show_storiesget_job_storiesget_story_contentget_story_content_by_titleget_story_with_commentsfind_stories_by_titleget_story_by_titleget_updatessearch_by_dateBEFORE YOU INSTALL
What to know first
Tools you get
16 tools named in the project's documentation.
Requires
Python with pip
INSTALLATION
Connect your client
Server setup
git clone https://github.com/rawveg/hacker-news-mcp.git
cd hacker-news-mcp
pip install -r requirements.txtMCP Clients
Claude Desktop, Windsurf, Cursor
{
"mcpServers": {
"hackerNews": {
"command": "python",
"args": [
"<YOUR_PATH_TO_HACKER_NEWS_MCP>/run.py",
"--transport",
"stdio"
],
"env": {
"LOG_LEVEL": "info"
}
}
}
}<YOUR_PATH_TO_HACKER_NEWS_MCP> is the full path of your clone. python must be the interpreter you ran pip install -r requirements.txt with. If that was a virtualenv, give the full path of its python instead.
Windsurf — SSE
From your clone, start the server over SSE:
python run.py --transport sse --host 127.0.0.1 --port 8000Add this entry:
{
"mcpServers": {
"hackerNews": {
"serverUrl": "http://localhost:8000/sse"
}
}
}If you deploy the server instead (the README covers Docker, Google Cloud Run and AWS Lambda), use that deployment's address ending in /sse.
Cursor — SSE
From your clone, start the server over SSE:
python run.py --transport sse --host 127.0.0.1 --port 8000Add this entry:
{
"mcpServers": {
"hackerNews": {
"url": "http://localhost:8000/sse"
}
}
}If you deploy the server instead (the README covers Docker, Google Cloud Run and AWS Lambda), use that deployment's address ending in /sse.