Skip to main content

MCP server that collects articles from 1100+ RSS feeds across 150+ countries

Project description

MCP News Feeds

An MCP server that collects articles from over 1100 RSS feeds distributed across 150+ countries, sourced from the community registry news-feed-list-of-countries.

Quick Start (uvx)

No installation needed — just configure your MCP client:

{
  "mcpServers": {
    "news-feeds": {
      "command": "uvx",
      "args": ["mcp-news"]
    }
  }
}

uvx will automatically download and run the server.

Installation from source

git clone https://github.com/benjaminmarchand/mcp-news.git
cd mcp-news
pip install -e .

Then configure your MCP client:

{
  "mcpServers": {
    "news-feeds": {
      "command": "mcp-news"
    }
  }
}

Usage

The server runs on stdio and exposes 6 tools:

Tool Description
news_feed Retrieves recent articles, filterable by country, time window, and limit
news_fetch_article Returns the full, untruncated description of a specific article
news_feed_countries Lists all available countries with the number of feeds per country
news_feed_health Shows feed reliability stats: healthy, unhealthy, and dead feeds
news_feed_invalidate_cache Clears the registry cache to force a reload

Example Calls

Retrieve French news from the last 12 hours:

{
  "name": "news_feed",
  "arguments": {
    "countries": ["France"],
    "hours": 12,
    "limit": 50
  }
}

Get the full description of an article:

{
  "name": "news_fetch_article",
  "arguments": {
    "url": "https://example.com/article/123"
  }
}

Check feed health for a country:

{
  "name": "news_feed_health",
  "arguments": {
    "country": "France"
  }
}

List available countries:

{
  "name": "news_feed_countries"
}

Response Truncation

Responses are automatically truncated to fit MCP client limits (~40,000 characters). When the payload is too large, descriptions are progressively shortened, then articles are dropped from the tail. Use news_fetch_article to retrieve the full description of a specific article.

Feed Health Tracking

The server tracks the success/failure history of each feed in ~/.mcp-news/feed_health.json. Feeds with 10 or more consecutive errors are automatically skipped during collection. Use the news_feed_health tool to inspect feed reliability.

Cache

The RSS feed registry is cached in ~/.mcp-news/cache/. The cache is valid for 24 hours and refreshes automatically when the remote registry changes (SHA-1 comparison).

To force a refresh:

export NEWS_FEED_BYPASS_CACHE=true

Command-Line Options

Option Description
--verbose Enable verbose logging and write fetched articles to ~/.mcp-news/logs/ as timestamped JSON files

Example with verbose mode:

{
  "mcpServers": {
    "news-feeds": {
      "command": "uvx",
      "args": ["mcp-news", "--verbose"]
    }
  }
}

Testing

pip install -e ".[dev]"
pytest tests/

Environment Variables

Variable Description
NEWS_FEEDS_JSON_URL Override the feeds registry URL (default: raw GitHub URL from cyberbobjr/news-feed-list-of-countries)
NEWS_FEED_BYPASS_CACHE Set to true to ignore cache and always re-download the registry
MCP_NEWS_DATA_DIR Override the data directory (default: ~/.mcp-news)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_news-1.1.2.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_news-1.1.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_news-1.1.2.tar.gz.

File metadata

  • Download URL: mcp_news-1.1.2.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for mcp_news-1.1.2.tar.gz
Algorithm Hash digest
SHA256 2073a7af48843e441f8d24926ca0a971111eca21ca8efc282f3dbef2891f4cd3
MD5 67ea278a56a6a80df0943417e5efbf7b
BLAKE2b-256 43d51fd9f910449f21c9a8ded7a3dc1715a332a435164162de6407716fedc10a

See more details on using hashes here.

File details

Details for the file mcp_news-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: mcp_news-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for mcp_news-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7469d51e582850bd0b7c51d55658f4b03993691cc1b7481f0de6a1e9a676587c
MD5 76042fdaebdf13bc686132c28e307a29
BLAKE2b-256 fdf9bcddb5d1b33db84e5234f6f74da7bf13f9da10fcd7de51d3d0ba6672a2a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page