
hackernews
from Vaishnavi-2506
A simple MCP server that brings Hacker News into your AI workflows. It exposes a set of tools to fetch top stories, individual posts with comments, and the latest Ask HN / Show HN discussions β all in a clean, structured format thatβs easy for agents
News Hub MCP
An MCP (Model Context Protocol) server that gives AI assistants real-time news fetching, search, NLP analysis, and personalized news preferences β all accessible through natural language.
Works with VS Code Copilot, Claude Desktop, Cursor, Windsurf, and any other MCP-compatible AI client.
What It Does
Ask your AI assistant things like:
- "What's happening in the world today?" β fetches, scrapes, and summarizes top stories
- "How are different outlets covering the Fed rate decision?" β side-by-side source comparison
- "Search for Tesla news and analyze the sentiment" β tool chaining across search + NLP
- "Set my preferences to technology news from India" β saved, applied to all future requests
Available Tools
| Tool | Description |
|---|---|
get_news_digest | Primary tool. Fetches, scrapes, and summarizes news in one call. Use for any general news question. |
get_latest_news | Returns raw article metadata (titles, URLs, sources). Use when the user wants a list of links. |
search_news | Searches articles by keyword or phrase. Use for specific names, events, or topics. |
compare_news_sources | Fetches the same topic from 3 sources and returns a side-by-side summary of each. |
analyze_sentiment | Scores text as positive, negative, or neutral using AFINN scoring. |
extract_entities | Extracts people, organizations, and topics from text. |
get_my_preferences | Returns your currently saved news preferences. |
set_my_preferences | Updates your preferences (topics, country, language). Changes apply immediately. |
Tool Chaining
The AI client can call tools in sequence. Example chains:
Sentiment analysis on news:
"Get me AI news and analyze the overall sentiment"
get_latest_news(topic: AI) β returns article descriptionsanalyze_sentiment(text: combined descriptions) β returns score
Entity extraction from search:
"Search for Tesla news and extract key people and organizations"
search_news(query: Tesla) β returns articlesextract_entities(text: combined descriptions) β returns entities
User Preferences
Preferences are stored at ~/.news-hub-mcp/preferences.json and persist across sessions.
To set via wizard:
npm run setupTo set via AI:
"Set my news preferences to technology and science, country US, language English"
Preference fields:
| Field | Description | Example |
|---|---|---|
topics | Preferred topics, auto-applied when no topic given | ["technology", "science"] |
country | ISO 3166-1 alpha-2 country code | "US", "GB", "IN" |
language | ISO 639-1 language code | "en", "fr", "de" |
Development
npm start # Run the server
npm run dev # Run with hot reload (nodemon)
npm run setup # Re-run the setup wizardArchitecture
AI Client (Copilot / Claude Desktop / Cursor)
β
β MCP Protocol over stdio
βΌ
server/index.js β Entry point: validates env, registers tools, routes requests
β
βββ server/tools/ β One file per MCP tool
β βββ getNewsDigest.js Primary: fetch + scrape + summarize
β βββ getLatestNews.js Raw article list
β βββ searchNews.js Keyword search
β βββ compareNewsSources.js Multi-source comparison
β βββ analyzeSentiment.js NLP sentiment
β βββ extractEntities.js NLP entity extraction
β βββ getMyPreferences.js Read preferences
β βββ setMyPreferences.js Write preferences
β
βββ server/services/ β Reusable modules (no MCP coupling)
βββ newsService.js RapidAPI HTTP calls + response normalization
βββ nlpService.js sentiment + compromise NLP libraries
βββ scraper.js axios + cheerio article scraping
βββ preferencesService.js ~/.news-hub-mcp/preferences.json read/writeLicense
MIT
Prerequisites
- Node.js 18 or higher
- A free RapidAPI account with the Real-Time News Data API subscribed
- Sign up at rapidapi.com
- Search for "Real-Time News Data" and subscribe to the free tier (150 req/month)
- Copy your
x-rapidapi-keyfrom the Endpoints tab
Installation
git clone https://github.com/your-username/news-hub-mcp.git
cd news-hub-mcp
npm install
npm run setupnpm run setup is an interactive wizard that:
- Saves your RapidAPI key to
.envand.vscode/mcp.json - Asks for your preferred topics, country, and language
- Stores preferences at
~/.news-hub-mcp/preferences.json
MCP Client Configuration
VS Code Copilot
Add to .vscode/mcp.json in your workspace (created automatically by npm run setup):
{
"servers": {
"news-hub-mcp": {
"type": "stdio",
"command": "node",
"args": ["server/index.js"],
"cwd": "/absolute/path/to/news-hub-mcp",
"env": {
"RAPIDAPI_KEY": "your_key_here"
}
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"news-hub-mcp": {
"command": "node",
"args": ["/absolute/path/to/news-hub-mcp/server/index.js"],
"env": {
"RAPIDAPI_KEY": "your_key_here"
}
}
}
}No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.