Labsco
Vaishnavi-2506 logo

Google Search

from Vaishnavi-2506

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.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys

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

ToolDescription
get_news_digestPrimary tool. Fetches, scrapes, and summarizes news in one call. Use for any general news question.
get_latest_newsReturns raw article metadata (titles, URLs, sources). Use when the user wants a list of links.
search_newsSearches articles by keyword or phrase. Use for specific names, events, or topics.
compare_news_sourcesFetches the same topic from 3 sources and returns a side-by-side summary of each.
analyze_sentimentScores text as positive, negative, or neutral using AFINN scoring.
extract_entitiesExtracts people, organizations, and topics from text.
get_my_preferencesReturns your currently saved news preferences.
set_my_preferencesUpdates 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"

  1. get_latest_news (topic: AI) β†’ returns article descriptions
  2. analyze_sentiment (text: combined descriptions) β†’ returns score

Entity extraction from search:

"Search for Tesla news and extract key people and organizations"

  1. search_news (query: Tesla) β†’ returns articles
  2. extract_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 setup

To set via AI:

"Set my news preferences to technology and science, country US, language English"

Preference fields:

FieldDescriptionExample
topicsPreferred topics, auto-applied when no topic given["technology", "science"]
countryISO 3166-1 alpha-2 country code"US", "GB", "IN"
languageISO 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 wizard

Architecture

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/write

License

MIT