Skip to main content
Glama
moltrus

Google News MCP

by moltrus

Google News MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que expone los feeds RSS de Google News como herramientas MCP, permitiendo a los asistentes de IA (Claude, GPT-4, etc.) acceder a datos de noticias en tiempo real con decodificación automática de URL, procesamiento concurrente y almacenamiento en caché inteligente.

Características principales

Asíncrono y concurrente - Todas las operaciones se ejecutan de forma asíncrona con decodificación de URL concurrente para un rendimiento máximo Caché inteligente - Caché LRU (1024 entradas) para decodificaciones de URL repetidas rápidamente Decodificación de URL por lotes - Decodifica múltiples URL de Google News en paralelo Resúmenes limpios - Extrae texto plano de resúmenes HTML con enlaces de artículos decodificados Notación Orientada a Tokens (TOON) - Soporte para un formato de respuesta compacto y eficiente en tokens (reducción del 30-60%) Soporte multilingüe - Configurable para cualquier combinación de idioma/país Búsqueda avanzada - Soporte completo para operadores de búsqueda de Google News (site:, when:, intitle:, etc.) Extracción de páginas - Obtiene y resume el contenido completo del artículo usando Jina Reader y Groq


Descripción general de las herramientas

Herramienta

Propósito

Parámetros

get_top_headlines

Últimos titulares por país

language, country

get_category_feed

Noticias por categoría (TECH, BUSINESS, etc.)

category, language, country

get_search_feed

Buscar noticias con operadores avanzados

query, language, country

get_geo_feed

Noticias específicas de una ubicación

location, language, country

get_topic_feed

Tema de tendencia por ID

topic_id, language, country

decode_google_news_url

Decodificar URL de Google News

urls (lista)

list_categories

Categorías de noticias disponibles

(ninguno)

fetch_content

Obtener y resumir contenido de página

url, summarize

Total: 8 herramientas


Inicio rápido

Instalación

Opción 1: Usando uv (recomendado)

# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp

# Install with uv
uv sync

Opción 2: Usando pip con entorno virtual

# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
pip install -e .

Para uso global (cualquier método)

Para usar el comando google-news-mcp globalmente desde cualquier lugar:

pip install -e .

Esto instala el punto de entrada de la línea de comandos en todo el sistema, permitiéndole ejecutar google-news-mcp desde cualquier directorio.

Configuración

Cree un archivo .env basado en .env.example:

# RSS Preferences
GOOGLE_NEWS_LANGUAGE=en
GOOGLE_NEWS_COUNTRY=US

# Response Optimization
# Options: "json" (standard) or "toon" (token-optimized)
RESPONSE_FORMAT=json

# Fetching & Summarization
JINA_API_KEY=your_jina_key
GROQ_API_KEY=your_groq_key
GROQ_MODEL=qwen/qwen3-32b

Ejecución del servidor

google-news-mcp

O directamente:

python -m google_news_mcp.server

Documentación de herramientas

get_top_headlines

Obtenga los últimos titulares principales de un país.

Parámetros:

  • language (cadena, opcional): Código de idioma (ej. 'en', 'fr', 'es'). Por defecto usa la variable de entorno GOOGLE_NEWS_LANGUAGE.

  • country (cadena, opcional): Código de país (ej. 'US', 'GB', 'JP'). Por defecto usa la variable de entorno GOOGLE_NEWS_COUNTRY.

Retorna:

{
  "title": "Google News",
  "link": "https://news.google.com",
  "description": "Latest news",
  "entries": [
    {
      "title": "Article Title",
      "link": "https://source.com/article",
      "published": "2026-03-31T10:00:00Z",
      "summary": "Article Title (https://source.com/article)\nAnother Article (https://another.com/news)",
      "source": "Source Name"
    }
  ]
}

Notas:

  • Los artículos están ordenados por relevancia (predeterminado de Google News)

  • Las URL se decodifican automáticamente de las redirecciones de Google News

  • Los resúmenes contienen enlaces extraídos en formato de texto plano


get_category_feed

Obtenga titulares de noticias para una categoría específica.

Parámetros:

  • category (cadena, requerido): Categoría de noticias. Valores válidos:

    • WORLD - Noticias internacionales

    • NATION - Titulares nacionales/locales

    • BUSINESS - Negocios y finanzas

    • TECHNOLOGY - Tecnología e IA

    • ENTERTAINMENT - Entretenimiento y cultura pop

    • SPORTS - Deportes

    • SCIENCE - Ciencia e investigación

    • HEALTH - Salud y medicina

  • language (cadena, opcional): Código de idioma. Por defecto usa la configuración.

  • country (cadena, opcional): Código de país. Por defecto usa la configuración.

Retorna: Igual que get_top_headlines

Ejemplos:

get_category_feed(category="TECHNOLOGY")
get_category_feed(category="BUSINESS", country="UK")

get_search_feed

Busque en Google News con consultas de palabras clave y operadores avanzados.

Parámetros:

  • query (cadena, requerido): Consulta de búsqueda con operadores opcionales

  • language (cadena, opcional): Código de idioma. Por defecto usa la configuración.

  • country (cadena, opcional): Código de país. Por defecto usa la configuración.

Operadores de búsqueda soportados:

  • Frase exacta: "Artificial Intelligence" (debe coincidir exactamente)

  • Excluir término: -apple (excluye artículos con "apple")

  • Específico del sitio: site:techcrunch.com (solo desde el dominio)

  • Rango de tiempo (relativo): when:1h, when:24h, when:7d, when:30d, when:1y, when:1m

  • Rango de tiempo (absoluto): after:2026-01-01, before:2026-03-31

  • Búsqueda en título: intitle:merger (el término aparece solo en el titular)

  • Booleano O: Tesla OR SpaceX (cualquiera de los términos)

  • Combinaciones: "GPT-4" site:openai.com when:7d (todo junto)

Retorna: Igual que get_top_headlines (máximo ~100 artículos)

Ejemplos de consulta:

"OpenAI Sora"                                # Exact phrase
AI -hype                                     # Include AI, exclude hype
site:arxiv.org quantum computing             # From academic site
when:1h breaking                             # Last hour
when:24h -rumor Bitcoin                      # Last 24h, exclude rumors
after:2026-03-01 before:2026-03-31 merger    # Date range
intitle:IPO tech companies                   # IPO in headline
SpaceX OR Blue Origin                        # Either company OR other

Importante: Los filtros de fecha funcionan sobre una base diaria (no con precisión de horas/minutos).


get_geo_feed

Obtenga noticias para una ubicación geográfica específica.

Parámetros:

  • location (cadena, requerido): Ciudad, estado, región o país (ej. 'San Francisco', 'California', 'Japan')

  • language (cadena, opcional): Código de idioma. Por defecto usa la configuración.

  • country (cadena, opcional): Código de país. Por defecto usa la configuración.

Retorna: Igual que get_top_headlines

Ejemplos:

get_geo_feed(location="New York")
get_geo_feed(location="London", language="en")
get_geo_feed(location="Tokyo", country="JP")

fetch_content

Obtenga contenido de página limpio desde una URL usando la API de Jina Reader, con resumen opcional a través de Groq.

Parámetros:

  • url (cadena, requerido): URL absoluta a obtener (debe comenzar con http:// o https://)

  • summarize (booleano, opcional): Si es true, devuelve un resumen conciso a través de Groq y omite el contenido sin procesar completo para ahorrar tokens. Por defecto es false.

Retorna:

{
  "url": "https://example.com/article",
  "reader_url": "https://r.jina.ai/https://example.com/article",
  "content": "Full article text...",
  "summary": "Concise summary points...",
  "summary_model": "qwen/qwen3-32b",
  "summary_error": "Error message if summarization fails"
}

Notas:

  • Eficiencia de tokens: Cuando summarize es true, el campo content se elimina automáticamente de la respuesta para evitar el exceso de la ventana de contexto.

  • Variables de entorno:

    • JINA_API_KEY: Requerido para la extracción de contenido.

    • GROQ_API_KEY: Requerido para el resumen.

    • GROQ_MODEL: Opcional. Modelo específico a usar (por defecto qwen/qwen3-32b).


decode_google_news_url

Decodifique múltiples URL de Google News a sus destinos de artículo reales en paralelo.

Parámetros:

  • urls (lista de cadenas, requerido): Matriz de URL de redirección de Google News para decodificar

Retorna:

{
  "decoded_urls": [
    {
      "original_url": "https://news.google.com/articles/CBMi8wFAUU...",
      "decoded_url": "https://techcrunch.com/2026/03/31/ai-news"
    },
    {
      "original_url": "https://news.google.com/articles/CBMixAFAUU...",
      "decoded_url": "https://theverge.com/2026/3/31/10987654"
    }
  ]
}

Rendimiento:

  • Todas las URL se decodifican concurrentemente (sin retrasos secuenciales)

  • Resultados almacenados en caché para búsquedas repetidas (instantáneo en caso de acierto de caché)

  • Caché LRU con límite de 1024 entradas

Ejemplos:

decode_google_news_url(urls=[
  "https://news.google.com/articles/CBMi8wFAUU...",
  "https://news.google.com/articles/CBMixAFAUU...",
  "https://news.google.com/articles/CBMi5gFAUU..."
])

get_topic_feed

Obtenga noticias para un tema de tendencia específico por su ID de tema.

Google News rastrea los temas de tendencia como hashes (ej. empresas, eventos, temas recurrentes).

Parámetros:

  • topic_id (cadena, requerido): Identificador hash del tema de Google News

  • language (cadena, opcional): Código de idioma. Por defecto usa la configuración.

  • country (cadena, opcional): Código de país. Por defecto usa la configuración.

Retorna: Igual que get_top_headlines

IDs de temas comunes:

  • CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE - Criptomonedas

  • Encuentre más explorando Google News y verificando el parámetro de tema en las URL

Ejemplos:

get_topic_feed(topic_id="CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE")

list_categories

Obtenga la lista de categorías de noticias disponibles.

Parámetros: Ninguno

Retorna:

{
  "categories": [
    "WORLD",
    "NATION",
    "BUSINESS",
    "TECHNOLOGY",
    "ENTERTAINMENT",
    "SPORTS",
    "SCIENCE",
    "HEALTH"
  ]
}

Arquitectura

Optimizaciones de rendimiento

  1. Async/Await - Todas las operaciones de E/S (HTTP, decodificación) no son bloqueantes

  2. Procesamiento concurrente - Múltiples URL y entradas procesadas en paralelo mediante asyncio.gather()

  3. Caché LRU (1024 entradas) - URL decodificadas almacenadas en caché a nivel de función

  4. Caché de diccionario en memoria - Caché de búsqueda rápida adicional para URL decodificadas

  5. Operaciones por lotes - decode_google_news_url procesa listas de URL concurrentemente

Formato de resumen

Los resúmenes de artículos se extraen de HTML y se devuelven como texto plano con enlaces decodificados:

Article Title 1 (https://original-source.com/article1)
Image caption link (https://image-source.com/photo)
Article Title 2 (https://original-source.com/article2)

Las etiquetas HTML, los contenedores CDATA y las entidades se eliminan para obtener un texto limpio y legible.


Ejemplos de uso

1. Obtener noticias de última hora en la última hora

get_search_feed(query="when:1h breaking", country="US")

2. Decodificar múltiples URL de artículos a la vez

decode_google_news_url(urls=[
  "https://news.google.com/articles/CBMi8wFAUU...",
  "https://news.google.com/articles/CBMixAFAUU..."
])

3. Noticias tecnológicas de una fuente específica

get_search_feed(query="site:techcrunch.com AI")

4. Noticias locales para una ciudad

get_geo_feed(location="San Francisco")

5. Búsqueda con rango de fechas

get_search_feed(query="SpaceX after:2026-03-01 before:2026-03-31")

6. Obtener noticias de salud

get_category_feed(category="HEALTH")

7. Noticias de criptomonedas en tendencia

get_topic_feed(topic_id="CAAqJggKIiBDQkFTRWdvSUwyMHZNR3d5YldFeVpYVXVhVzV6U0FpQkFQAQ")

8. Obtener y resumir un artículo completo

fetch_content(url="https://techcrunch.com/article-url", summarize=true)

Eficiencia de tokens y TOON

Este servidor admite Notación Orientada a Tokens (TOON), un formato de datos compacto diseñado específicamente para LLMs.

¿Por qué usar TOON?

El JSON estándar puede ser verboso para los LLMs debido a las claves y puntuación repetidas. TOON reduce el uso de tokens en un 30-60% mediante:

  • Definir claves una vez para matrices de objetos (formato tabular).

  • Eliminar llaves, corchetes y comillas innecesarias.

  • Usar sangría y delimitadores simples.

Configuración

Para habilitar TOON globalmente para todas las respuestas de herramientas, establezca lo siguiente en su .env:

RESPONSE_FORMAT=toon

Comparación

JSON (Verboso)

TOON (Compacto)

{"entries": [{"id": 1, "title": "A"}, {"id": 2, "title": "B"}]}

entries[2,]{id,title}:

  1,A

  2,B


Limitaciones

  1. Límite de resultados: El RSS de Google News devuelve un máximo de ~100 artículos por solicitud

  2. Ordenamiento: El predeterminado es relevancia. Use filtros when: para ordenamiento temporal

  3. Precisión de fecha: Los filtros funcionan sobre una base diaria, no por hora/minuto

  4. Limitación de tasa: No se necesitan claves API para RSS, pero Jina Reader y Groq tienen sus propios límites/cuotas

  5. Extracción de contenido: fetch_content depende de la capacidad de Jina Reader para analizar el sitio de destino

  6. IDs de temas: Deben descubrirse desde las URL de Google News; no hay API de búsqueda


Licencia

MIT

Install Server
F
license - not found
A
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/moltrus/google-news-mcp'

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