Skip to main content
Glama

šŸ“° News MCP Server

License TypeScript MCP

A smart news search MCP (Model Context Protocol) server with automatic API switching for reliable news fetching. Never worry about API limits again!

✨ 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

Related MCP server: News MCP Server

šŸš€ Quick Start

1. Installation

# 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

šŸ„‡ Highest

NewsData.io

~200 requests

Get Key

🄈 High

NewsAPI.org

100 requests

Get Key

šŸ„‰ Medium

GNews

100 requests

Get Key

šŸ… Medium

Twingly

Trial available

Get Key

šŸŽ–ļø Low

*Claimed unlimited for free tier

3. Configure Environment

Edit .env file and add your API keys:

# 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

# 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):

{
  "mcpServers": {
    "news-mcp": {
      "command": "node",
      "args": ["path/to/news-mcp/build/index.js"]
    }
  }
}

SSE Mode (Web Access):

# Start SSE server
npm run sse
{
  "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:

// 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

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 file for details.

šŸ‘Øā€šŸ’» Author

Xingyu Chen

šŸ™ Acknowledgments

  • Model Context Protocol 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!

Available Tools

1 tool
search_newsB

Search for news articles using multiple news APIs with automatic failover. The system intelligently switches between different news APIs when one reaches its limit or fails.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for news articles (keywords, topics, etc.)
languageNoLanguage code for news articles (e.g., 'en', 'zh', 'es')en
limitNoMaximum number of articles to return (1-10)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool uses multiple APIs and includes automatic failover when limits are reached or failures occur. However, it lacks details on rate limits, authentication needs, error handling, or response format. This provides some context but is incomplete for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, consisting of two sentences that directly explain the tool's function and key feature (failover). Every sentence adds value, but it could be slightly more structured by separating purpose from behavioral details for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (search with failover), no annotations, and no output schema, the description is partially complete. It covers the core functionality and failover behavior but misses details like response format, error cases, or API specifics. This leaves gaps for an agent to use the tool effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, documenting all three parameters (query, language, limit) with details like defaults and constraints. The description adds no parameter-specific information beyond what the schema provides, such as query examples or language code specifics. With high schema coverage, the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for news articles using multiple news APIs with automatic failover.' It specifies the verb ('Search') and resource ('news articles'), and mentions the mechanism ('multiple news APIs with automatic failover'). However, since there are no sibling tools, it cannot differentiate from alternatives, preventing a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions the failover feature but does not specify scenarios where this is beneficial (e.g., high-volume searches, reliability needs) or any prerequisites. Without sibling tools, explicit alternatives aren't needed, but general usage context is lacking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as searching for news articles, and no other tools exist to cause confusion.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The tool name 'search_news' follows a clear verb_noun pattern, which is appropriate for its function.

Tool Count2/5

A single tool is too few for a server named 'News MCP Server', which implies a broader scope for news-related operations. While the tool is well-described, the server lacks basic operations like fetching headlines, categories, or article details, making it feel incomplete and under-scoped.

Completeness2/5

The server is severely incomplete for a news domain. It only provides search functionality, missing essential operations such as retrieving top headlines, filtering by category or source, or accessing full article content. This will likely cause agent failures when trying to perform common news-related tasks.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Aggregates news from 7 APIs and unlimited RSS feeds with AI-powered bias removal and synthesis. Provides over 7,300 free daily requests with conversation-aware caching and 25 comprehensive news analysis tools.
    1
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that provides real-time news intelligence using NewsAPI.ai. This server enables LLMs to search articles, track events, and analyze news through natural conversation.
    42
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides access to global news articles through the News API. It implements a standardized interface for searching news articles, retrieving top headlines, and listing available news sources.
    3
    12
    MIT

Latest Blog Posts

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