Skip to main content
Glama
jmanek

google-news-trends-mcp

by jmanek

Google News Trends MCP

An MCP server that slurps data from Google News and Google Trends RSS endpoints, optionally distills it with LLM/NLP, and barfs out structured results.

Features

  • Trawl Google News RSS feeds for articles based on keyword, location, topic

  • Ingest top news stories from Google News

  • Snag trending search terms from Google Trends based on geographic input

  • Plug in LLM/NLP pipelines to condense article payloads and extract key concepts

Related MCP server: Google News13 MCP Server

Installation

When using uv no specific installation is needed. We will use uvx to directly run google-news-trends-mcp.

Using PIP

pip install google-news-trends-mcp

After installation, you can run it as a script using:

python -m google_news_trends_mcp

Configuration

Configure for Claude.app

Add to your Claude settings:

{
  "mcpServers": {
    "google-news-trends": {
      "command": "uvx",
      "args": ["google-news-trends-mcp@latest"]
    }
  }
}
{
  "mcpServers": {
    "google-news-trends": {
      "command": "python",
      "args": ["-m", "google_news_trends_mcp"]
    }
  }
}

Configure for VS Code

{
  "mcp": {
    "servers": {
      "google-news-trends": {
        "command": "uvx",
        "args": ["google-news-trends-mcp@latest"]
      }
    }
  }
}
{
  "mcp": {
    "servers": {
      "google-news-trends": {
        "command": "python",
        "args": ["-m", "google_news_trends_mcp"]
      }
    }
  }
}

Tools

The following MCP tools are available:

Tool Name

Description

get_news_by_keyword

Search for news using specific keywords.

get_news_by_location

Retrieve news relevant to a particular location.

get_news_by_topic

Get news based on a chosen topic.

get_top_news

Fetch the top news stories from Google News.

get_trending_terms

Return trending keywords from Google Trends for a specified location.

All of the news related tools have an option to summarize the text of the article using LLM Sampling (if supported) or NLP

CLI

All tools can be accessed from the command line using uv

uv run google-news-trends
Usage: google-news-trends [OPTIONS] COMMAND [ARGS]...

  Find and download news articles using Google News.

Options:
  --help  Show this message and exit.

Commands:
  keyword   Find articles by keyword using Google News.
  location  Find articles by location using Google News.
  top       Get top news stories from Google News.
  topic     Find articles by topic using Google News.
  trending  Returns google trends for a specific geo location.

Debugging

npx @modelcontextprotocol/inspector uvx google-news-trends-mcp

To run from within locally installed project

cd path/to/google-news-trends-mcp
npx @modelcontextprotocol/inspector uv run google-news-trends-mcp

Testing

cd path/to/google-news-trends-mcp
uv run pytest

Available Tools

5 tools
get_news_by_keywordC

Find articles by keyword using Google News.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for articles.
keywordYesSearch term to find articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior1/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 of behavioral disclosure. It only states 'Find articles by keyword using Google News' with no mention of default behavior, pagination, rate limits, result ordering, or what happens with empty results. This is critically insufficient.

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

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices completeness for brevity. It earns its place in terms of efficiency, but it lacks critical usage and behavioral information. A more informative but still concise description would be better.

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 5 parameters and an output schema, the description is far too minimal. It does not explain how to use the tool effectively (e.g., combining parameters, default values). The output schema reduces the need to describe return values, but the description still fails to provide adequate high-level 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?

Schema description coverage is 100% (all 5 parameters have descriptions), so baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides. It does not mention any parameter constraints or defaults.

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

Purpose5/5

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

The description 'Find articles by keyword using Google News' clearly states the specific verb (find), resource (articles), and method (by keyword). It distinguishes from sibling tools like get_news_by_location and get_news_by_topic through the keyword focus.

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 siblings (e.g., get_news_by_location, get_top_news). There is no mention of use cases, when not to use, or alternatives. The agent must infer from the name alone.

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

get_news_by_locationC

Find articles by location using Google News.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for articles.
locationYesName of city/state/country.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior3/5

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

Annotations are not provided, so the description carries the full burden. It discloses that the source is Google News, which is useful. However, it does not mention behavioral traits such as rate limits, pagination, or how the location parameter is resolved (e.g., API moderation or geocoding). The description is minimal but not misleading.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It does not provide an overview, usage notes, or output hints. Every word is not earning its place because it could be more informative without much length.

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 that there are 5 parameters and an output schema exists, the description is incomplete. It does not mention what the tool returns (e.g., article titles, links, metadata) or how the output schema is structured. The tool is moderately complex, and the description fails to provide enough context for an agent to invoke it correctly.

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 baseline is 3. The description does not add any parameter-level semantics beyond the schema. For example, it does not explain what 'full_data' means in practice or the relationship between 'full_data' and 'summarize'. The schema already covers the parameters adequately, so the description adds no extra value.

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

Purpose2/5

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

The description 'Find articles by location using Google News' is vague. It does not specify the verb 'get' or 'list' and fails to differentiate from siblings like get_news_by_keyword or get_top_news. The purpose is implied but not clearly defined.

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. The description does not mention that this tool should be used for location-based queries, nor does it exclude cases where other tools (e.g., get_news_by_keyword) are more appropriate.

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

get_news_by_topicA

Find articles by topic using Google News. topic is one of WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH, POLITICS, CELEBRITIES, TV, MUSIC, MOVIES, THEATER, SOCCER, CYCLING, MOTOR SPORTS, TENNIS, COMBAT SPORTS, BASKETBALL, BASEBALL, FOOTBALL, SPORTS BETTING, WATER SPORTS, HOCKEY, GOLF, CRICKET, RUGBY, ECONOMY, PERSONAL FINANCE, FINANCE, DIGITAL CURRENCIES, MOBILE, ENERGY, GAMING, INTERNET SECURITY, GADGETS, VIRTUAL REALITY, ROBOTICS, NUTRITION, PUBLIC HEALTH, MENTAL HEALTH, MEDICINE, SPACE, WILDLIFE, ENVIRONMENT, NEUROSCIENCE, PHYSICS, GEOLOGY, PALEONTOLOGY, SOCIAL SCIENCES, EDUCATION, JOBS, ONLINE EDUCATION, HIGHER EDUCATION, VEHICLES, ARTS-DESIGN, BEAUTY, FOOD, TRAVEL, SHOPPING, HOME, OUTDOORS, FASHION.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic to search for articles.
periodNoNumber of days to look back for articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states articles are found via Google News but does not disclose behavioral traits such as rate limits, pagination, response format, or how parameters like full_data and summarize affect results. The description is too minimal to inform safe and effective invocation.

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

Conciseness5/5

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

Two-line description with no fluff: first line states purpose, second line lists topic options. Efficient and front-loaded. Every sentence serves a purpose.

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 5 parameters, an output schema, and no annotations, the description is adequate but not comprehensive. It explains the topic parameter well but offers no guidance on interpreting period, full_data, summarize, or max_results behavior. The output schema likely covers return format, so overall completeness is moderate.

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

Parameters4/5

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

Schema description coverage is 100%, baseline 3. Description adds significant value for the topic parameter by enumerating 50+ valid values from the underlying source (Google News categories), which the schema only vaguely describes as 'Topic to search for articles.' This extra context helps the agent select correct inputs beyond what the schema provides.

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

Purpose5/5

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

Description clearly states 'Find articles by topic using Google News' with a specific verb (Find), resource (articles by topic), and source (Google News). The list of valid topic values further clarifies scope and distinguishes from sibling tools like get_news_by_keyword, get_news_by_location, etc.

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 explicit guidance on when to use this tool versus alternatives. Does not mention when not to use it, prerequisites, or preferred scenarios compared to siblings like get_news_by_keyword or get_top_news. The description only lists topics, leaving the agent to infer usage context.

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

get_top_newsB

Get top news stories from Google News.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for top articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states that the tool 'gets' news stories, but fails to mention whether it is read-only, whether authentication is needed, any rate limits, or how the 'topness' is determined. This is a significant gap for a tool that retrieves external data.

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 with no fluff. It front-loads the core purpose. However, it could be slightly more informative without losing conciseness, such as mentioning that it returns a list of articles. It earns a 4 for being efficient but not maximally helpful.

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 tool has 4 parameters and an output schema, the description is too minimal. It does not explain how 'top' is defined, what regions or languages are covered, or any limitations. While the output schema exists and the rules state it need not describe return values, the description still lacks sufficient context for an agent to understand the tool's scope and behavior.

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?

With 100% schema description coverage, all four parameters (period, full_data, summarize, max_results) already have meaningful descriptions in the schema. The tool description adds no additional parameter semantics beyond what the schema provides, which is acceptable per baseline guidelines.

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

Purpose5/5

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

The description 'Get top news stories from Google News' clearly states the verb 'Get' and the resource 'top news stories from Google News'. It distinguishes from sibling tools like get_news_by_keyword, get_news_by_location, get_news_by_topic, and get_trending_terms by focusing specifically on top stories from Google News, which is a distinct and well-understood category.

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 the sibling tools. It does not mention any scenarios, prerequisites, or exclusions. The usage context is only implied by the tool name and description, which is insufficient for an agent to make optimal selection decisions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.2.10
    • Changedget_news_by_keyword1 field changed
      • addedInput schema / properties / max_results / maximum
        Added value: +25
    • Changedget_news_by_location1 field changed
      • addedInput schema / properties / max_results / maximum
        Added value: +25
    • Changedget_news_by_topic1 field changed
      • addedInput schema / properties / max_results / maximum
        Added value: +25
    • Changedget_top_news1 field changed
      • addedInput schema / properties / max_results / maximum
        Added value: +25
  2. 5 tool updatesv0.2.6
    • Changedget_news_by_keyword7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / full_data / title
        Removed value: -"Full Data"
      • removedInput schema / properties / keyword / title
        Removed value: -"Keyword"
      • removedInput schema / properties / max_results / title
        Removed value: -"Max Results"
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / summarize / title
        Removed value: -"Summarize"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedget_news_by_location7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / full_data / title
        Removed value: -"Full Data"
      • removedInput schema / properties / location / title
        Removed value: -"Location"
      • removedInput schema / properties / max_results / title
        Removed value: -"Max Results"
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / summarize / title
        Removed value: -"Summarize"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedget_news_by_topic7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / full_data / title
        Removed value: -"Full Data"
      • removedInput schema / properties / max_results / title
        Removed value: -"Max Results"
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / summarize / title
        Removed value: -"Summarize"
      • removedInput schema / properties / topic / title
        Removed value: -"Topic"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedget_top_news6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / full_data / title
        Removed value: -"Full Data"
      • removedInput schema / properties / max_results / title
        Removed value: -"Max Results"
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / summarize / title
        Removed value: -"Summarize"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedget_trending_terms6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / full_data / description
        Previous value: -"Return full data for each trend. Should be False for most use cases."New value: +"Return full data for each trend including related news stories."
      • removedInput schema / properties / full_data / title
        Removed value: -"Full Data"
      • changedInput schema / properties / geo / description
        Previous value: -"Country code, e.g. 'US', 'GB', 'IN', etc."New value: +"Geographic target for trending terms. Supports four levels of granularity:\n- Worldwide: empty string ''\n- Country: ISO 3166-1 alpha-2 code, e.g. 'US', 'GB', 'CA'\n- Subdivision (state/province/region): ISO 3166-2 format 'CC-XX' or 'CC-XXX', e.g. 'US-CA' (California), 'BE-BRU' (Brussels)\n- US metro area: bare Nielsen DMA code (numeric string), e.g. '807' (San Francisco Bay Area), '501' (New York City)"
      • removedInput schema / properties / geo / title
        Removed value: -"Geo"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
  3. 5 tool updatesv1.0.0
    • First observedget_news_by_keyword
    • First observedget_news_by_location
    • First observedget_news_by_topic
    • First observedget_top_news
    • First observedget_trending_terms

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: keyword search, location search, topic-filtered search, top stories, and trending terms. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_news_by_keyword, get_trending_terms), making the set predictable and easy to navigate.

Tool Count5/5

Five tools cover the core news and trends functionality without being too sparse or excessive. Each tool contributes a unique capability.

Completeness4/5

The surface covers major news access patterns (keyword, location, topic, top stories) and adds trending terms. Minor gaps exist, like time-range filtering or source-specific searches, but the set feels complete for most common use cases.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables access to Google News articles through search by keywords, topics, geolocation, and top headlines with filtering by country, language, source, and date.
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides tools to search and retrieve news across various categories including business, technology, science, and sports via the Google News API. It supports keyword searches, autocomplete suggestions, and region-specific news across multiple languages.
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to global news articles from over 60,000 sources through the GNews API. Supports keyword search, category browsing, and language customization.
    2
    3 npm
    MIT