๐ Mediastack News MCP Server
A FastMCP server that exposes the Mediastack News API as MCP (Model Context Protocol) tools. It can be used as a plug-and-play backend for Smithery.ai or any other MCP-compatible agent platform.
๐ Quick Start
This is a FastMCP server that exposes the Mediastack News API as MCP tools. It can serve as a plug - and - play backend for Smithery.ai or other MCP - compatible agent platforms.
โจ Features
get_latest_news: Fetches the most recent news stories with various filtering options.get_sources: Lists available news sources with filtering capabilities.
๐ฆ Installation
- Clone this repository:
git clone <repository-url>
cd NewsMCP_with_MediastackAPI
- Install the required Python packages:
pip install -r requirements.txt
๐ Documentation
โ๏ธ Configuration
This server requires a Mediastack API key to function.
- Get a free API key from mediastack.com.
- Create a file named
.envin the project's root directory. - Add your API key to this file in the following format:
MEDIASTACK_API_KEY=your_api_key_here
The server will automatically load this environment variable when a tool is called.
๐ป Running Locally
To start the MCP server, run the following command:
python server.py
By default, the server will start on http://0.0.0.0:8080.
๐ ๏ธ Available Tools
1. get_latest_news
Fetches the most recent news stories from Mediastack. Parameters:
keywords(Optional): Search terms to filter news.sources(Optional): News sources, comma - separated (e.g., "cnn,bbc").countries(Optional): Country codes, comma - separated (e.g., "us,gb").languages(Optional): Language codes, comma - separated (e.g., "en,fr").categories(Optional): News categories, comma - separated.date(Optional): A specific date or date range (YYYY - MM - DD).sort(Optional): Sort order (published_desc,published_asc,popularity).limit(Optional): Maximum number of results to return (default: 25, max: 100).offset(Optional): Pagination offset.
2. get_sources
Lists available news sources from Mediastack. Parameters:
search(Optional): A search term to filter sources.sources(Optional): Specific sources, comma - separated.countries(Optional): Country codes, comma - separated.languages(Optional): Language codes, comma - separated.categories(Optional): News categories, comma - separated.limit(Optional): Maximum number of results to return (default: 25, max: 100).offset(Optional): Pagination offset.
โ๏ธ Deployment on Smithery.ai
- Push this repository to GitHub.
- Connect your GitHub repository to Smithery.ai.
- Smithery will automatically detect the
smithery.yamlconfiguration. - Set your
MEDIASTACK_API_KEYin Smithery's environment variables. - Deploy and start using the MCP tools. For more information, visit the Smithery.ai Documentation.
๐ Project Structure
.
โโโ app.py # MCP tool definitions
โโโ server.py # FastMCP server setup
โโโ requirements.txt # Python dependencies
โโโ smithery.yaml # Smithery deployment configuration
โโโ Dockerfile # Instructions for building a Docker image
โโโ LICENSE # Project license
โโโ .env # (Local) Environment variables
โโโ README.md # This file
๐ License
This project is licensed under the MIT License.












