Skip to main content
Glama

News MCP Server

README.md•5.93 kB
# šŸ“° News MCP Server [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-blue.svg)](https://www.typescriptlang.org/) [![MCP](https://img.shields.io/badge/MCP-0.6.0-green.svg)](https://modelcontextprotocol.io/) A smart news search MCP (Model Context Protocol) server with **automatic API switching** for reliable news fetching. Never worry about API limits again! <a href="https://glama.ai/mcp/servers/@guangxiangdebizi/news-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@guangxiangdebizi/news-mcp/badge" alt="News Server MCP server" /> </a> ## ✨ Features - šŸ”„ **Smart API Switching**: Automatically switches between multiple news APIs when one reaches its limit - šŸ†“ **Multiple Free APIs**: Supports 5+ free news APIs with generous daily quotas - šŸ“Š **Quota Management**: Intelligent tracking of daily API usage limits - šŸŒ **Multi-language Support**: Search news in 20+ languages - ⚔ **Fast & Reliable**: Failover mechanism ensures you always get results - šŸ› ļø **Easy Setup**: Simple configuration with environment variables ## šŸš€ Quick Start ### 1. Installation ```bash # Clone the repository git clone https://github.com/guangxiangdebizi/news-mcp.git cd news-mcp # Install dependencies npm install # Copy environment template cp .env.example .env ``` ### 2. API Configuration Get free API keys from any of these services (you only need one, but more = better reliability): | Service | Daily Limit | Sign Up Link | Priority | |---------|-------------|--------------|----------| | **TheNewsAPI** | Unlimited* | [Get Key](https://www.thenewsapi.com/) | šŸ„‡ Highest | | **NewsData.io** | ~200 requests | [Get Key](https://newsdata.io/) | 🄈 High | | **NewsAPI.org** | 100 requests | [Get Key](https://newsapi.org/register) | šŸ„‰ Medium | | **GNews** | 100 requests | [Get Key](https://gnews.io/) | šŸ… Medium | | **Twingly** | Trial available | [Get Key](https://www.twingly.com/news-api/) | šŸŽ–ļø Low | *\*Claimed unlimited for free tier* ### 3. Configure Environment Edit `.env` file and add your API keys: ```env # Add at least one API key (more is better for reliability) THE_NEWS_API_KEY=your_api_key_here NEWSDATA_IO_KEY=your_api_key_here NEWSAPI_ORG_KEY=your_api_key_here GNEWS_API_KEY=your_api_key_here TWINGLY_API_KEY=your_api_key_here ``` ### 4. Build & Run ```bash # Build the project npm run build # Start the MCP server npm start # Or run in development mode npm run dev ``` ## šŸ”§ Usage ### With Claude Desktop Add to your Claude Desktop configuration: **Stdio Mode** (Local Development): ```json { "mcpServers": { "news-mcp": { "command": "node", "args": ["path/to/news-mcp/build/index.js"] } } } ``` **SSE Mode** (Web Access): ```bash # Start SSE server npm run sse ``` ```json { "mcpServers": { "news-mcp": { "type": "sse", "url": "http://localhost:3100/sse", "timeout": 600 } } } ``` ### Available Tools #### `search_news` Search for news articles with automatic API switching. **Parameters:** - `query` (required): Search keywords or topics - `language` (optional): Language code (default: "en") - `limit` (optional): Number of articles (1-10, default: 5) **Example:** ```typescript // Search for technology news { "query": "artificial intelligence", "language": "en", "limit": 5 } // Search for Chinese news { "query": "ē§‘ęŠ€ę–°é—»", "language": "zh", "limit": 3 } ``` ## 🧠 How Smart Switching Works 1. **Priority Order**: APIs are tried in order of reliability and quota limits 2. **Quota Tracking**: System tracks daily usage for each API 3. **Automatic Failover**: When an API fails or reaches limit, automatically tries the next one 4. **Success Guarantee**: Continues until successful response or all APIs exhausted ``` TheNewsAPI (āˆž) → NewsData.io (200) → NewsAPI.org (100) → GNews (100) → Twingly (50) ``` ## šŸ“Š Supported Languages - **English** (en) - All APIs - **Chinese** (zh) - Most APIs - **Spanish** (es) - Most APIs - **French** (fr) - Most APIs - **German** (de) - Most APIs - **And 15+ more languages** ## šŸ› ļø Development ### Project Structure ``` src/ ā”œā”€ā”€ index.ts # MCP server entry point ā”œā”€ā”€ config.ts # API configuration management └── tools/ └── newsSearch.ts # Smart news search tool ``` ### Scripts ```bash npm run build # Build TypeScript npm run dev # Development mode with watch npm start # Start built server npm run sse # Start SSE server on port 3100 ``` ### Adding New APIs 1. Add API configuration to `src/config.ts` 2. Implement API-specific request logic in `src/tools/newsSearch.ts` 3. Add environment variable to `.env.example` ## šŸ¤ Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## šŸ“ License This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details. ## šŸ‘Øā€šŸ’» Author **Xingyu Chen** - 🌐 Website: [GitHub Profile](https://github.com/guangxiangdebizi/) - šŸ“§ Email: guangxiangdebizi@gmail.com - šŸ’¼ LinkedIn: [Xingyu Chen](https://www.linkedin.com/in/xingyu-chen-b5b3b0313/) - šŸ“¦ NPM: [@xingyuchen](https://www.npmjs.com/~xingyuchen) ## šŸ™ Acknowledgments - [Model Context Protocol](https://modelcontextprotocol.io/) for the amazing MCP framework - All the news API providers for their generous free tiers - The open-source community for inspiration and support --- **⭐ If this project helped you, please give it a star!**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guangxiangdebizi/news-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server