Skip to main content
Glama
berlinbra

News API MCP Server

by berlinbra

News API MCP Server

A Model Context Protocol (MCP) server that provides access to global news articles through the News API. This server implements a standardized interface for searching news articles, retrieving top headlines, and listing available news sources.

Features

  • Search for news articles on any topic with advanced filtering options

  • Retrieve top headlines by country, category, or source

  • Get information about available news sources with filtering by category, language, and country

  • Built-in error handling and rate limit management

Related MCP server: gnews-mcp-server

Installation

Using Claude Desktop

Installing via Docker

  • Clone the repository and build a local image to be utilized by your Claude desktop client

cd news-api-mcp
docker build -t mcp/news-api .
  • Change your claude_desktop_config.json to match the following, replacing REPLACE_API_KEY with your actual News API key:

claude_desktop_config.json path

  • On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

  • On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "newsapi": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "NEWS_API_KEY",
        "mcp/news-api"
      ],
      "env": {
        "NEWS_API_KEY": "REPLACE_API_KEY"
      }
    }
  }
}

Installing via Smithery

To install News API MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @berlinbra/news-api-mcp --client claude

Development Setup

Install packages

uv install -e .

Running

After connecting Claude client with the MCP tool via json file and installing the packages, Claude should see the server's mcp tools.

You can run the server yourself via:

uv run src/news_api_mcp/server.py

with inspector:

npx @modelcontextprotocol/inspector uv --directory /Users/{INSERT_USER}/YOUR/PATH/TO/news-api-mcp run src/news_api_mcp/server.py

Available Tools

The server implements three tools:

search-news

Search for news articles on any topic.

Input Schema:

{
  "query": {
    "type": "string",
    "description": "Keywords or phrases to search for in the article title and body"
  },
  "from_date": {
    "type": "string",
    "description": "Start date for article search (YYYY-MM-DD format)"
  },
  "to_date": {
    "type": "string",
    "description": "End date for article search (YYYY-MM-DD format)"
  },
  "sources": {
    "type": "string",
    "description": "Comma-separated list of news sources to filter by (e.g., 'bbc-news,cnn')"
  },
  "language": {
    "type": "string",
    "description": "Language of the articles",
    "default": "en"
  },
  "sort_by": {
    "type": "string",
    "description": "Sort articles by relevancy, popularity, or publishedAt",
    "default": "publishedAt"
  },
  "page_size": {
    "type": "integer",
    "description": "Number of results to return per page (max 100)",
    "default": 20
  },
  "page": {
    "type": "integer",
    "description": "Page number for pagination",
    "default": 1
  }
}

Example Response:

Search results for 'artificial intelligence' (Found 28156 articles):

Article 1:
Title: OpenAI announces breakthrough in artificial intelligence reasoning
Source: TechCrunch
Author: John Smith
Published: 2025-03-25 14:30 UTC
Description: The AI research lab has developed a new model that demonstrates advanced reasoning capabilities...
URL: https://techcrunch.com/2025/03/25/openai-announces-new-ai-model/
---

Article 2:
...

get-top-headlines

Retrieve breaking news headlines for countries, categories, and singular publishers.

Input Schema:

{
  "country": {
    "type": "string",
    "description": "2-letter ISO 3166-1 country code"
  },
  "category": {
    "type": "string",
    "description": "Category to get headlines for"
  },
  "sources": {
    "type": "string",
    "description": "Comma-separated list of news source IDs (e.g., 'bbc-news,cnn')"
  },
  "query": {
    "type": "string",
    "description": "Keywords or phrases to search for in headlines"
  },
  "page_size": {
    "type": "integer",
    "description": "Number of results to return per page (max 100)",
    "default": 20
  },
  "page": {
    "type": "integer",
    "description": "Page number for pagination",
    "default": 1
  }
}

Example Response:

Top headlines for country: US, category: technology (Found 20 articles):

Article 1:
Title: Apple announces new MacBook Pro with M3 chip
Source: The Verge
Author: Alice Johnson
Published: 2025-03-28 13:45 UTC
Description: Apple has unveiled its latest MacBook Pro lineup featuring the new M3 chip...
URL: https://theverge.com/2025/03/28/apple-new-macbook-pro-m3
---

Article 2:
...

get-news-sources

Retrieve information about the most notable news sources available.

Input Schema:

{
  "category": {
    "type": "string",
    "description": "Find sources that display news of this category"
  },
  "language": {
    "type": "string",
    "description": "Find sources that display news in a specific language"
  },
  "country": {
    "type": "string",
    "description": "Find sources that display news in a specific country"
  }
}

Example Response:

Available news sources for category: technology, language: en (Found 22 sources):

Source 1:
Name: TechCrunch
ID: techcrunch
Description: TechCrunch is a leading technology media property, dedicated to obsessively profiling startups, reviewing new Internet products, and breaking tech news.
Category: technology
Language: en
Country: US
URL: https://techcrunch.com
---

Source 2:
...

Error Handling

The server includes comprehensive error handling for various scenarios:

  • Rate limit exceeded (News API free tier is limited to 100 requests per day)

  • Invalid API key

  • Network connectivity issues

  • Timeout handling

  • Malformed responses

Error messages are returned in a clear, human-readable format.

Prerequisites

  • Python 3.12 or higher

  • httpx

  • mcp

Contributors

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

3 tools
get-news-sourcesC

Get available news sources

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFind sources that display news of this category
languageNoFind sources that display news in a specific language
countryNoFind sources that display news in a specific country

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Get available news sources', implying a read-only operation, but does not confirm safety, rate limits, or any side effects. The lack of explicit read-only or idempotent declaration leaves room for uncertainty.

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 one short sentence, achieving conciseness with no wasted words. However, it could include additional useful context (e.g., output format) without becoming verbose. It is efficient but minimal.

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

Completeness2/5

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

Given the three optional filter parameters and absence of output schema, the description does not inform the agent about return values (e.g., list of source objects with names, URLs). This lack of output context makes the tool less complete for an agent deciding whether to use it.

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?

Since schema coverage is 100% and all parameters have clear descriptions with enums, the description adds no extra meaning. The baseline is 3, and the description does not compensate beyond the schema.

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 verb 'Get' and resource 'available news sources', indicating the tool retrieves a list of sources. However, it does not differentiate from sibling tools like get-top-headlines or search-news, which could be clearer by specifying that it returns metadata about sources rather than articles.

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 does not mention that filters (category, language, country) are available, nor does it explain that this tool is for listing sources rather than fetching headlines or articles.

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

get-top-headlinesC

Get top headlines by country, category, or source

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNo2-letter ISO 3166-1 country code
categoryNoCategory to get headlines for
sourcesNoComma-separated list of news source IDs (e.g., 'bbc-news,cnn')
queryNoKeywords or phrases to search for in headlines
page_sizeNoNumber of results to return per page (max 100)
pageNoPage number for pagination

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description bears full responsibility. It does not disclose pagination behavior, result limits, or output structure. The return format (articles) is implied but not stated.

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?

Extremely concise single sentence. No wasted words, but lacks structural elements like bullet points or section breaks. Efficient but borderline terse.

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

Completeness2/5

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

With 6 parameters, no output schema, and no annotations, the description is insufficient. It does not explain how parameters interact (e.g., mutually exclusive constraints), pagination defaults, or the nature of results (headline objects).

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?

Schema coverage is 100%, so parameters are well-described in the schema. The tool description adds no additional semantics beyond listing the filtering dimensions already captured by the schema. Baseline 3 is appropriate.

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 retrieves top headlines and identifies filtering dimensions (country, category, source). It distinguishes from siblings as it focuses on top headlines, while get-news-sources lists sources and search-news likely returns broader results. However, it does not explicitly contrast with search-news.

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?

No guidance on when to use this tool versus siblings (get-news-sources, search-news). No information about prerequisites, limitations, or when not to use it.

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

search-newsC

Search for news articles on any topic

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKeywords or phrases to search for in the article title and body
from_dateNoStart date for article search (YYYY-MM-DD format)
to_dateNoEnd date for article search (YYYY-MM-DD format)
sourcesNoComma-separated list of news sources to filter by (e.g., 'bbc-news,cnn')
languageNoLanguage of the articlesen
sort_byNoSort articles by relevancy, popularity, or publishedAtpublishedAt
page_sizeNoNumber of results to return per page (max 100)
pageNoPage number for pagination

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only states the purpose without disclosing behavioral details such as rate limits, authentication requirements, or full return format. The description is insufficient for an agent to understand side effects or constraints.

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 a single concise sentence that efficiently conveys the core purpose. Every word is purposeful, but it may be overly brief for the tool's complexity.

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

Completeness2/5

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

With 8 parameters and no output schema, the description should explain the return format and pagination behavior. It only provides a high-level purpose, leaving the agent without key operational details.

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?

Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds no additional meaning beyond the schema, meeting the baseline expectation for high-coverage scenarios.

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?

Description states 'Search for news articles on any topic', clearly indicating the tool's function as a search tool. The sibling tools 'get-news-sources' and 'get-top-headlines' are implicitly differentiated by their purposes, but no explicit contrast is made.

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 its siblings (e.g., top headlines, sources). An agent would have to infer usage from the tool name and parameters alone.

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

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: retrieving sources, top headlines by criteria, and searching articles. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get-news-sources, get-top-headlines, search-news), using snake_case.

Tool Count4/5

3 tools is slightly minimal but appropriate for a focused news API server. Could include more endpoints but not excessive.

Completeness4/5

Covers core news retrieval tasks (sources, headlines, search). Missing explicit article retrieval by ID, but still functional for typical use cases.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A remote MCP server that enables searching for news articles on specific topics through the Tavily API without requiring authentication.
  • F
    license
    Not graded
    quality
    F
    maintenance
    MCP server providing access to the GNews API for fetching news articles and headlines. Supports search and top headlines with advanced filtering by language, country, category, and date.
    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
  • F
    license
    Not graded
    quality
    D
    maintenance
    A FastAPI MCP server that provides access to NewsAPI.org for fetching top headlines, searching articles, trending stories, and listing news sources.

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/berlinbra/news-api-mcp'

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