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.0.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.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_news-1.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 328802ca9ab67d1dd17ec02c01c54a41389ab10ccd73ead8c80cc33e3e2f3c18
MD5 27afb28cf7e5327192a52b6d35f16ec4
BLAKE2b-256 cbf1136c2953395a71f98c7cac55e5a0c46e47f532fff13ce785d13691abb571

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_news-1.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6b273b432235d9f6407af4f6359f8aec0e5515042f7fbf3187b126eebbcb488
MD5 4c9e9b26bacf05ed117a083b10eed626
BLAKE2b-256 f4039dd1d58ba5c5ba2113487160be420595e4a91f1c801af04230e0c39a180c

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