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.1.tar.gz (17.2 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.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_news-1.1.1.tar.gz
  • Upload date:
  • Size: 17.2 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.1.tar.gz
Algorithm Hash digest
SHA256 c9e75ba00b02d48e123a104ec884cf45a4ed8a3b143df8f17372fb9238eaa2cf
MD5 de6f50290091b8e088021be16ec7264b
BLAKE2b-256 18885f4cdb5b94f373cd31fec71352ce476de6aaa4ffa369c2f007d4eeb2a094

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_news-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a9d0124df9c5ce7a5b227992d07bf847ddf1e61a5603d2dd7e0d9e5739dd337
MD5 135d008c500b3b8c4db9fa47b87df0b0
BLAKE2b-256 762167ec579ee0744ac1ad5a39089b9816ecfba909408fbee208d12e48d96d46

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