Global News MCP Server
by kevin-arock
README.md
# š Global News MCP Server




A **Model Context Protocol (MCP) powered global news application** that collects news from multiple countries and categories using RSS feeds and exposes them as reusable MCP tools.
The project contains:
- š§ MCP Server for news intelligence
- š Streamlit web interface
- š° RSS-based news aggregation
- š Global news search
- š Country-based filtering
- š» Technology and science news categories
No API keys are required.
---
# ⨠Features
## š Global News
Fetch worldwide news from trusted RSS sources:
- BBC World
- The Guardian
## š Country News
Get news by country:
| Country | Sources |
|---|---|
| š®š³ India | The Hindu, Times of India |
| šŗšø USA | CNN |
| š¬š§ UK | BBC UK |
| šØš¦ Canada | CBC |
| š¦šŗ Australia | ABC Australia |
| š©šŖ Germany | DW |
| š«š· France | France24 |
## š» Technology News
Technology updates from:
- TechCrunch
- The Verge
## š Science News
Science and space updates from:
- NASA
- Science Daily
## š Global Search
Search news articles across multiple RSS feeds.
Examples:
```
Artificial Intelligence
Space
Climate Change
Robotics
Technology
```
---
# šļø Architecture
```
User
|
|
Streamlit UI
|
|
MCP Client
|
|
MCP Server
|
-----------------------
| |
News Service MCP Tools
|
|
RSS Feed Sources
|
|
Structured JSON Response
```
---
# š MCP Tools
The MCP Server exposes these tools:
---
## `get_global_news()`
Returns latest worldwide news.
Example response:
```json
[
{
"source": "BBC World",
"title": "Latest World News",
"summary": "News summary",
"link": "article url"
}
]
```
---
## `get_country_news(country)`
Fetch news from a specific country.
Example:
```
get_country_news("India")
```
Returns:
```json
[
{
"source": "The Hindu",
"title": "India News",
"summary": "...",
"link": "..."
}
]
```
---
## `get_technology_news()`
Returns technology-related articles.
Sources:
- TechCrunch
- The Verge
---
## `get_science_news()`
Returns science-related articles.
Sources:
- NASA
- Science Daily
---
## `search_news(keyword)`
Searches across available RSS feeds.
Example:
```
search_news("AI")
```
---
# š Project Structure
```
news-mcp/
ā
āāā app.py # Streamlit frontend
ā
āāā requirements.txt # Dependencies
ā
āāā mcp_server/
ā ā
ā āāā __init__.py
ā āāā server.py # MCP server and tools
ā āāā news_service.py # RSS processing logic
ā
āāā components/
ā
āāā __init__.py
āāā cards.py # News UI components
```
---
# š ļø Tech Stack
## Backend
- Python 3.11
- Model Context Protocol (MCP)
- FastMCP
- Feedparser
## Frontend
- Streamlit
## Data Sources
RSS feeds from:
- BBC
- The Guardian
- The Hindu
- CNN
- CBC
- DW
- France24
- TechCrunch
- NASA
- Science Daily
---
# āļø Installation
## Clone Repository
```bash
git clone https://github.com/kevin-arock/news-mcp.git
```
Navigate:
```bash
cd news-mcp
```
---
## Create Virtual Environment
```bash
python -m venv venv
```
Activate environment.
### Windows
```bash
venv\Scripts\activate
```
### Linux / Mac
```bash
source venv/bin/activate
```
---
## Install Dependencies
```bash
pip install -r requirements.txt
```
---
# ā¶ļø Run Application
Start Streamlit:
```bash
streamlit run app.py
```
Application opens at:
```
http://localhost:8501
```
---
# š Application Flow
```
User selects news category
|
|
Streamlit Interface
|
|
MCP Client
|
|
MCP Server
|
|
News MCP Tools
|
|
RSS News Sources
|
|
JSON News Response
|
|
UI Cards
```
---
# š” Why MCP?
Instead of directly connecting the UI to data sources, MCP creates a reusable tool layer.
Advantages:
ā
AI agents can discover and call tools
ā
Backend capabilities are separated from UI
ā
Multiple AI clients can use the same tools
ā
External data sources can be integrated easily
---
# šÆ Interview Overview
> "I built a Global News MCP Server that exposes news retrieval capabilities as MCP tools. The server collects RSS feeds from different countries, processes them into structured JSON responses, and allows a Streamlit MCP client to consume those tools. This demonstrates how AI applications can use MCP as a standard way to connect with external capabilities."
---
# š Future Improvements
Planned enhancements:
- š¤ AI-powered article summarization
- š Multi-language translation
- š§ Semantic search using embeddings
- š News sentiment analysis
- š Personalized news recommendations
- š¬ Chat-based AI news assistant
- š Integration with AI clients supporting MCP
---
# šØāš» Author
## Arockia Kevin J
GitHub:
https://github.com/kevin-arock
---
# ā Support
If you like this project, consider giving it a ā on GitHub.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues