Labsco
MCP SERVER

News MCP

by eluc1a

Pull the latest articles from your own RSS-fed Postgres store, filtered by category, and let the model summarise them.

News, Feeds & Trend Monitoring
Summary
Your feeds, your database, no third-party news API.

Because the corpus is whatever RSS feeds you point the gatherer at, the categories mean what you decide they mean and nothing leaves your machine to a news vendor. The split is worth understanding before you install: the MCP server only reads, so if the gatherer has not run, there is nothing to summarise. The tool returns article dictionaries rather than a pre-written summary, which keeps the summarising in the model you chose.

What it is

An MCP server over a local news database. A separate gatherer script populates PostgreSQL from RSS feeds on whatever schedule you set; the server hands the stored articles to the model, which does the summarising itself rather than a hidden LLM call doing it first.

What you get
  • `summarize_news` — returns raw articles for the client to summarise, taking an optional `category` and a `limit` that defaults to 20; each article carries `id`, `title`, `link`, `published`, `source` and `content`
  • A resource form of the same data at `news://{category}/{limit}`, with the limit defaulting to 10
  • Eleven categories to filter on: `tech`, `data_science`, `llm_tools`, `cybersecurity`, `linux`, `audio_dsp`, `startups`, `news`, `science`, `research`, `policy`
  • A separate gatherer, `news_gatherer.py`, that fills the database from RSS feeds and looks back a configurable number of hours
Requirements

PostgreSQL, addressed through `DATABASE_URL` and defaulting to `postgresql://localhost/mcp_news`. You also have to run `news_gatherer.py` yourself — the server reads the database, it does not fetch feeds. `LOOKBACK_HOURS` controls how far back the gatherer looks, defaulting to 6. `OPENAI_API_KEY` is only used by internal summarization logic that is not exposed over MCP, so the server itself needs no model key. The pyproject names the project `news-mcp` at 0.1.0, which PyPI does not have; from a checkout it runs through `uv run`.