Skip to main content
Glama
kevin-arock

Global News MCP Server

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

![Python](https://img.shields.io/badge/Python-3.11-blue)
![MCP](https://img.shields.io/badge/Model_Context_Protocol-MCP-green)
![Streamlit](https://img.shields.io/badge/UI-Streamlit-red)
![RSS](https://img.shields.io/badge/Data-RSS_Feeds-orange)

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues