Google News MCP
Google News MCP
Сервер Model Context Protocol (MCP), который предоставляет RSS-ленты Google News в качестве инструментов MCP, позволяя ИИ-ассистентам (Claude, GPT-4 и др.) получать доступ к новостным данным в реальном времени с автоматическим декодированием URL, параллельной обработкой и интеллектуальным кэшированием.
Основные возможности
Асинхронность и параллелизм — все операции выполняются асинхронно с параллельным декодированием URL для максимальной производительности Умное кэширование — LRU-кэш (1024 записи) для быстрого повторного декодирования URL Пакетное декодирование URL — декодирование нескольких URL Google News параллельно Чистые сводки — извлечение обычного текста из HTML-сводок с декодированными ссылками на статьи Token-Oriented Object Notation (TOON) — поддержка компактного, эффективного с точки зрения токенов формата ответа (сокращение на 30-60%) Поддержка нескольких языков — настройка для любой комбинации языка и страны Расширенный поиск — полная поддержка поисковых операторов Google News (site:, when:, intitle: и т. д.) Извлечение страниц — получение и обобщение полного содержания статьи с помощью Jina Reader и Groq
Обзор инструментов
Инструмент | Назначение | Параметры |
| Последние заголовки по стране |
|
| Новости по категориям (TECH, BUSINESS и т. д.) |
|
| Поиск новостей с расширенными операторами |
|
| Новости по местоположению |
|
| Трендовая тема по ID |
|
| Декодирование URL Google News |
|
| Доступные категории новостей | (нет) |
| Получение и обобщение контента страницы |
|
Всего: 8 инструментов
Быстрый старт
Установка
Вариант 1: Использование uv (рекомендуется)
# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp
# Install with uv
uv syncВариант 2: Использование pip с виртуальным окружением
# 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 .Для глобального использования (любой метод)
Чтобы использовать команду google-news-mcp глобально из любого места:
pip install -e .Это устанавливает точку входа командной строки в системе, позволяя запускать google-news-mcp из любой директории.
Конфигурация
Создайте файл .env на основе .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Запуск сервера
google-news-mcpИли напрямую:
python -m google_news_mcp.serverДокументация инструментов
get_top_headlines
Получение последних главных заголовков для страны.
Параметры:
language(строка, необязательно): Код языка (например,'en','fr','es'). По умолчанию используется переменная окруженияGOOGLE_NEWS_LANGUAGE.country(строка, необязательно): Код страны (например,'US','GB','JP'). По умолчанию используется переменная окруженияGOOGLE_NEWS_COUNTRY.
Возвращает:
{
"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"
}
]
}Примечания:
Статьи отсортированы по релевантности (по умолчанию в Google News)
URL-адреса автоматически декодируются из редиректов Google News
Сводки содержат извлеченные ссылки в формате обычного текста
get_category_feed
Получение заголовков новостей для конкретной категории.
Параметры:
category(строка, обязательно): Категория новостей. Допустимые значения:WORLD- Международные новостиNATION- Национальные/местные заголовкиBUSINESS- Бизнес и финансыTECHNOLOGY- Технологии и ИИENTERTAINMENT- Развлечения и поп-культураSPORTS- СпортSCIENCE- Наука и исследованияHEALTH- Здоровье и медицина
language(строка, необязательно): Код языка. По умолчанию берется из конфигурации.country(строка, необязательно): Код страны. По умолчанию берется из конфигурации.
Возвращает: То же, что и get_top_headlines
Примеры:
get_category_feed(category="TECHNOLOGY")
get_category_feed(category="BUSINESS", country="UK")get_search_feed
Поиск в Google News по ключевым словам и с использованием расширенных операторов.
Параметры:
query(строка, обязательно): Поисковый запрос с необязательными операторамиlanguage(строка, необязательно): Код языка. По умолчанию берется из конфигурации.country(строка, необязательно): Код страны. По умолчанию берется из конфигурации.
Поддерживаемые поисковые операторы:
Точная фраза:
"Artificial Intelligence"(должно совпадать в точности)Исключить термин:
-apple(исключить статьи со словом "apple")Поиск по сайту:
site:techcrunch.com(только с этого домена)Временной диапазон (относительный):
when:1h,when:24h,when:7d,when:30d,when:1y,when:1mВременной диапазон (абсолютный):
after:2026-01-01,before:2026-03-31Поиск в заголовке:
intitle:merger(термин появляется только в заголовке)Логическое ИЛИ:
Tesla OR SpaceX(любой из терминов)Комбинации:
"GPT-4" site:openai.com when:7d(все вместе)
Возвращает: То же, что и get_top_headlines (макс. ~100 статей)
Примеры запросов:
"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Важно: Фильтры даты работают на ежедневной основе (не с точностью до часа/минуты).
get_geo_feed
Получение новостей для конкретного географического местоположения.
Параметры:
location(строка, обязательно): Город, штат, регион или страна (например,'San Francisco','California','Japan')language(строка, необязательно): Код языка. По умолчанию берется из конфигурации.country(строка, необязательно): Код страны. По умолчанию берется из конфигурации.
Возвращает: То же, что и get_top_headlines
Примеры:
get_geo_feed(location="New York")
get_geo_feed(location="London", language="en")
get_geo_feed(location="Tokyo", country="JP")fetch_content
Получение чистого контента страницы по URL с использованием API Jina Reader, с опциональным обобщением через Groq.
Параметры:
url(строка, обязательно): Абсолютный URL для получения (должен начинаться с http:// или https://)summarize(логическое, необязательно): Еслиtrue, возвращает краткую сводку через Groq и опускает полный необработанный контент для экономии токенов. По умолчаниюfalse.
Возвращает:
{
"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"
}Примечания:
Эффективность токенов: Когда
summarizeравноtrue, полеcontentавтоматически удаляется из ответа, чтобы предотвратить переполнение контекстного окна.Переменные окружения:
JINA_API_KEY: Требуется для извлечения контента.GROQ_API_KEY: Требуется для обобщения.GROQ_MODEL: Необязательно. Конкретная модель для использования (по умолчаниюqwen/qwen3-32b).
decode_google_news_url
Декодирование нескольких URL Google News до их фактических адресов назначения параллельно.
Параметры:
urls(список строк, обязательно): Массив URL-адресов редиректов Google News для декодирования
Возвращает:
{
"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"
}
]
}Производительность:
Все URL декодируются одновременно (без последовательных задержек)
Результаты кэшируются для повторных запросов (мгновенно при попадании в кэш)
LRU-кэш с ограничением в 1024 записи
Примеры:
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
Получение новостей по конкретной трендовой теме по ее ID.
Google News отслеживает трендовые темы как хэши (например, компании, события, повторяющиеся темы).
Параметры:
topic_id(строка, обязательно): Хэш-идентификатор темы Google Newslanguage(строка, необязательно): Код языка. По умолчанию берется из конфигурации.country(строка, необязательно): Код страны. По умолчанию берется из конфигурации.
Возвращает: То же, что и get_top_headlines
Общие ID тем:
CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE- КриптовалютыНаходите больше, изучая Google News и проверяя параметр topic в URL
Примеры:
get_topic_feed(topic_id="CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE")list_categories
Получение списка доступных категорий новостей.
Параметры: Нет
Возвращает:
{
"categories": [
"WORLD",
"NATION",
"BUSINESS",
"TECHNOLOGY",
"ENTERTAINMENT",
"SPORTS",
"SCIENCE",
"HEALTH"
]
}Архитектура
Оптимизация производительности
Async/Await - Все операции ввода-вывода (HTTP, декодирование) не блокируют выполнение
Параллельная обработка - Несколько URL и записей обрабатываются параллельно через
asyncio.gather()LRU-кэш (1024 записи) - Декодированные URL кэшируются на уровне функции
Кэш словаря в памяти - Дополнительный быстрый кэш для декодированных URL
Пакетные операции -
decode_google_news_urlобрабатывает списки URL параллельно
Формат сводки
Сводки статей извлекаются из HTML и возвращаются в виде обычного текста с декодированными ссылками:
Article Title 1 (https://original-source.com/article1)
Image caption link (https://image-source.com/photo)
Article Title 2 (https://original-source.com/article2)HTML-теги, обертки CDATA и сущности удаляются для получения чистого, читаемого текста.
Примеры использования
1. Получение срочных новостей за последний час
get_search_feed(query="when:1h breaking", country="US")2. Декодирование нескольких URL статей одновременно
decode_google_news_url(urls=[
"https://news.google.com/articles/CBMi8wFAUU...",
"https://news.google.com/articles/CBMixAFAUU..."
])3. Технологические новости из конкретного источника
get_search_feed(query="site:techcrunch.com AI")4. Местные новости для города
get_geo_feed(location="San Francisco")5. Поиск с диапазоном дат
get_search_feed(query="SpaceX after:2026-03-01 before:2026-03-31")6. Получение новостей о здоровье
get_category_feed(category="HEALTH")7. Трендовые новости о криптовалютах
get_topic_feed(topic_id="CAAqJggKIiBDQkFTRWdvSUwyMHZNR3d5YldFeVpYVXVhVzV6U0FpQkFQAQ")8. Получение и обобщение полной статьи
fetch_content(url="https://techcrunch.com/article-url", summarize=true)Эффективность токенов и TOON
Этот сервер поддерживает Token-Oriented Object Notation (TOON), компактный формат данных, разработанный специально для LLM.
Зачем использовать TOON?
Стандартный JSON может быть громоздким для LLM из-за повторяющихся ключей и пунктуации. TOON сокращает использование токенов на 30-60% за счет:
Определения ключей один раз для массивов объектов (табличный формат).
Удаления лишних фигурных скобок, квадратных скобок и кавычек.
Использования отступов и простых разделителей.
Конфигурация
Чтобы включить TOON глобально для всех ответов инструментов, установите следующее в вашем .env:
RESPONSE_FORMAT=toonСравнение
JSON (Громоздкий) | TOON (Компактный) |
|
|
Ограничения
Лимит результатов: RSS Google News возвращает макс. ~100 статей на запрос
Сортировка: По умолчанию — релевантность. Используйте фильтры
when:для временной сортировкиТочность даты: Фильтры работают на ежедневной основе, а не по часам/минутам
Ограничение частоты запросов: Для RSS ключи API не нужны, но у Jina Reader и Groq есть свои лимиты/квоты
Извлечение контента:
fetch_contentзависит от способности Jina Reader парсить целевой сайтID тем: Должны быть найдены из URL Google News; API для поиска нет
Лицензия
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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