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.0.0.tar.gz (16.9 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.0.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_news-1.0.0.tar.gz
  • Upload date:
  • Size: 16.9 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.0.0.tar.gz
Algorithm Hash digest
SHA256 8f89b8ac5e00a9cca042ea993d3b54054f781a30c9e4029bb74f7cb01d80fbb7
MD5 9c8d25ba8616e40aa0bd9a012faf6f55
BLAKE2b-256 f27bd8775751a67832e68c87164ed8bf541e14fc1fd14346667d39001e7166dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_news-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2535f3f0c5648b9571eb449d5192430c103386fbceb8e0ec639fc497412c8b15
MD5 9bec1247a44703b32f9ec7111cafb068
BLAKE2b-256 ce5b9932e8307db489d703aaa84962a6448521ca3215b6c858df1f8690fb981b

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