Skip to main content
Glama
HasData

Google Trends MCP Server

Google Trends MCP Server

Размещённый сервер Model Context Protocol (MCP), который даёт Claude, Cursor, Windsurf и любому другому MCP-клиенту один инструмент Google Trends. Получайте интерес с течением времени, интерес по регионам, а также растущие и популярные связанные запросы и темы для любого термина — всё в виде структурированного JSON, без библиотеки для скрапинга, которую нужно поддерживать, и без аккаунта Google.

https://mcp.hasdata.com/api/mcp?apis=google_trends

Glama score tool contract MCP Tools npm PyPI License

Contents

Related MCP server: google-search-trends-mcp

Что вам нужно

Вам понадобятся MCP-клиент и ключ API HasData из панели управления, который можно создать бесплатно без карты; пробный период покрывает около 200 вызовов по тарифу 5 кредитов. Это удалённый сервер, поэтому самый простой путь — URL-адрес и заголовок x-api-key, без контейнера для запуска и без аккаунта Google в процессе. Клиент, который говорит только на stdio, подключается к нему через тонкий лаунчер, опубликованный как @hasdata/google-trends-mcp на npm и hasdata-google-trends-mcp на PyPI, как показано ниже.

Быстрый старт

URL сервера одинаков для всех клиентов. Мы запускаем его вживую в Claude Code и Claude Desktop. Остальные блоки следуют задокументированному формату каждого клиента для удалённого сервера.

Поле

Значение

URL

https://mcp.hasdata.com/api/mcp?apis=google_trends

Транспорт

HTTP, потоковый

Заголовок авторизации

x-api-key: HASDATA_API_KEY

Клиенты с поддержкой OAuth могут добавить тот же URL как коннектор и войти, не помещая ключ в конфигурационный файл.

claude mcp add --transport http google-trends "https://mcp.hasdata.com/api/mcp?apis=google_trends" \
  --header "x-api-key: HASDATA_API_KEY"

Настройки, затем Коннекторы, затем Добавить пользовательский коннектор, затем вставьте https://mcp.hasdata.com/api/mcp?apis=google_trends и войдите.

Для пути через конфигурационный файл: Claude Desktop загружает только локальные (stdio) серверы, поэтому он обращается к удалённому серверу через stdio-лаунчер. Пакет @hasdata/google-trends-mcp и есть этот лаунчер, и он читает ключ из окружения. Добавьте это в claude_desktop_config.json:

{
  "mcpServers": {
    "google-trends": {
      "command": "npx",
      "args": ["-y", "@hasdata/google-trends-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Для Python вместо Node замените лаунчер на пакет PyPI, который uvx запускает без ручной установки:

{
  "mcpServers": {
    "google-trends": {
      "command": "uvx",
      "args": ["hasdata-google-trends-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

~/.cursor/mcp.json для всех проектов или .cursor/mcp.json для одного:

{
  "mcpServers": {
    "google-trends": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json. Windsurf называет поле serverUrl, а не url:

{
  "mcpServers": {
    "google-trends": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

.vscode/mcp.json в рабочей области:

{
  "servers": {
    "google-trends": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Примеры промптов

Промпты, а не код. Вставьте один — и агент сам выберет инструмент. Каждый снабжён пометкой о том, сколько вызовов он требует, потому что каждый успешный вызов стоит 5 кредитов.

Постройте график интереса к "cold brew coffee" в США за последние 12 месяцев и скажите, на каких неделях он достиг пика.

Один вызов, 5 кредитов. Недельный ряд возвращается одним запросом.

Для "cold brew coffee" в США покажите растущие связанные запросы и отметьте те, что помечены как Breakout.

Один вызов, 5 кредитов.

Сравните интерес к "cold brew" и "iced coffee" по всему миру за пять лет и скажите, какой из них растёт.

Один вызов, 5 кредитов. Инструмент принимает несколько терминов в одном запросе timeseries.

Покажите интерес к "sunscreen" по штатам США за последние 90 дней, чтобы я увидел, где спрос самый высокий.

Один вызов, 5 кредитов. Это представление интереса по регионам с детализацией до штата.

Сравнение нескольких терминов проходит в одном вызове timeseries. Разбивка по регионам, связанные запросы и связанные темы — каждый свой dataType, поэтому промпт, которому нужны и график, и растущие запросы, — это два вызова.

Инструменты

Один инструмент, только чтение. Пример ниже сокращён из реального вызова, и числа меняются вместе с трендом. Воспринимайте его как форму. Имя инструмента ведёт на справочник по эндпоинту, в котором есть полный список параметров.

Пример — это полезная нагрузка, а не весь ответ. Результат tools/call содержит один текстовый блок, и этот текст сам является JSON с полями url, status, text и json, а данные, полученные скрапингом, лежат в json. В сыром ответе JSON-RPC путь такой: result.content[0].text, затем парсинг, затем .json. Чат-клиент разворачивает это за вас, а код, обращающийся к эндпоинту напрямую, — нет.

hasdata_google_trends_search_getTrendsData

Интерес с течением времени, по регионам или связанные запросы и темы для термина.

Параметр

Тип

Обязателен

Примечания

q

string

да

Искомый термин. timeseries и geoMap принимают до 5 терминов через запятую для сравнения; шестой отклоняется с ошибкой 400

dataType

string

По умолчанию timeseries, плюс geoMap, relatedTopics и relatedQueries. Два типа related принимают только один термин

date

string

Окно вроде now 7-d, today 12-m, today 5-y или all, либо произвольный диапазон yyyy-mm-dd yyyy-mm-dd

geo

string

Код местоположения, например US или US-CA. По всему миру, если пусто

region

string

Детализация только для geoMap: country, region (субрегион), dma (метро) или city. По умолчанию зависит от geo: country по всему миру и мельче, когда задан geo

cat

string

Идентификатор категории для уточнения термина. 0 — все категории

gprop

string

Свойство Google: images, news, froogle (Покупки) или youtube. Если пусто — веб-поиск

tz

number

Смещение часового пояса в минутах, по умолчанию 420 (PDT). Изменяет группировку часовых диапазонов

Ключ ответа зависит от dataType. timeseries возвращает interestOverTime.timelineData, geoMap возвращает интерес по регионам, а типы related возвращают relatedQueries или relatedTopics, каждый из которых разделён на rising и top. Читайте ключ, соответствующий запрошенному типу.

timeseries (по умолчанию) возвращает значение от 0 до 100 для каждой точки — и строкой, и уже разобранным в extractedValue. Самая последняя точка часто содержит isPartial: true, то есть неделя ещё заполняется. Отбрасывайте её перед вычислением тренда, иначе последний столбец будет выглядеть как спад, которого на самом деле нет.

{
  "interestOverTime": {
    "timelineData": [
      { "date": "Apr 12 – 18, 2026", "timestamp": "1775952000", "isPartial": false,
        "values": [{ "query": "cold brew coffee", "value": "100", "extractedValue": 100, "hasData": true }] },
      { "date": "Aug 23 – 29, 2026", "timestamp": "1787443200", "isPartial": true,
        "values": [{ "query": "cold brew coffee", "value": "44", "extractedValue": 44, "hasData": true }] }
    ]
  }
}

relatedQueries разделяется на rising и top. Растущая запись выглядит как процент, например +300%, или как Breakout для скачка, слишком большого для оценки, а extractedValue даёт число за ней. Breakout возвращается со сторожевым extractedValue, значительно превышающим любой реальный процент, поэтому сортируйте по строковой метке, а не по сырому числу.

{
  "relatedQueries": {
    "rising": [
      { "query": "organic cold brew coffee", "value": "+300%", "extractedValue": 300, "link": "https://trends.google.com/trends/explore?q=organic+cold+brew+coffee&date=today+12-m&geo=US" }
    ],
    "top": [
      { "query": "how to cold brew coffee", "value": "100", "extractedValue": 100, "link": "https://trends.google.com/trends/explore?q=how+to+cold+brew+coffee&date=today+12-m&geo=US" }
    ]
  }
}

В справочнике эндпоинта перечислены все форматы geo, cat и дат, которые принимает инструмент.

Ошибки и сценарии сбоев

Ваш клиент почти никогда не видит HTTP-код ошибки от вызова инструмента. Слой MCP отвечает кодом 200 и помещает сбой внутрь результата, с isError, установленным в true, и причиной в виде текста. Агент читает сообщение там, где вы могли бы ожидать строку статуса.

Неверный ключ проявляется как вывод инструмента, а не как неудачное подключение. tools/list принимает любой непустой ключ и возвращает инструмент, поэтому клиент завершает рукопожатие и показывает зелёный индикатор. Тогда первый вызов инструмента возвращается с isError: true и текстом HasData API error: 401 Unauthorized. Следите за этой строкой, потому что ничто раньше в процессе не сообщает о проблеме.

Отсутствующий ключ — это единственная настоящая HTTP-ошибка. Авторизация выполняется перед любым инструментом, и само подключение завершается с кодом 401. Заголовки CORS присутствуют, и браузерный клиент видит статус, а не непрозрачный сетевой сбой.

Аргумент, нарушающий схему инструмента, отклоняется до того, как превратится в скрапинг. Сервер отвечает isError: true и текстом MCP error -32602: Input validation error, называя поле, вызвавшее ошибку. Ничего не загружается и не списывается.

Термин со слишком малым объёмом поиска возвращает успешный результат с пустыми массивами данных, а не ошибку. Google Trends нечего показать для редкого термина, и requestMetadata.status по-прежнему равен ok. Проверяйте наличие точек перед построением графика.

Идентификатор, отклонённый платформой, возвращает 400 с requestMetadata.status, установленным в error. Обычно это происходит при неизвестном значении geo или cat.

Результаты с данными также содержат requestMetadata.id, который стоит указать в обращении в поддержку.

Цены, бесплатный тариф и лимиты

Каждый вызов Google Trends стоит 5 кредитов за успешный вызов. Размер ответа не меняет цену. Недельный ряд за пять лет стоит столько же, сколько одна неделя.

Бесплатный пробный период — 1 000 кредитов на 30 дней без карты, это 200 вызовов Google Trends. После этого активный аккаунт продолжает получать пополнение на 100 кредитов каждый день, когда его баланс опускается ниже 100, так что агент с низким объёмом работает на бесплатном тарифе бесконечно.

Платные тарифы начинаются с $49 в месяц за 200 000 кредитов, то есть 40 000 вызовов. Цена за единицу снижается с объёмом: от $1.23 за 1 000 вызовов на начальном тарифе до $0.50 на Business, $0.42 на Growth и $0.37 на самых крупных высокообъёмных тарифах.

Ваш тариф также задаёт уровень параллелизма. Бесплатная пробная версия допускает 1 запрос одновременно, Startup — 15, Business — 30, Growth — 50, а высокообъёмные тарифы — от 200 до 1,500. В любом автоматическом сценарии обрабатывайте случай превышения лимита защитным образом.

Запрос, вернувшийся с кодом не 200, не тарифицируется. Успешный вызов, который ничего не нашёл, всё равно считается вызовом.

Выбор инструментов

Параметр запроса apis определяет, какие инструменты видит ваш агент. Чем меньше инструментов, тем меньше контекста тратится на определения инструментов и тем меньше шансов, что модель выберет не тот.

?apis=google_trends              the one tool in this repo
?apis=google_trends,google_serp  add Google search
?apis=google_trends,youtube      trends plus YouTube

Параметр принимает имена провайдеров, такие как google_trends, и отдельные имена API. Имена с опечатками игнорируются. Если все имена указаны неверно, запрос завершается ошибкой 400, а в теле ответа перечислены и то, что не удалось распознать, и все допустимые значения. Если опустить параметр, тот же эндпоинт откроет доступ ко всем 57 инструментам HasData.

Сравнение

Google не публикует публичного API Trends. Два распространённых пути — неофициальная библиотека pytrends, которая на основе реверс-инжиниринга использует те же внутренние эндпоинты и ломается, когда Google их меняет или ограничивает частоту запросов, а также собственный скрейпер. Этот сервер выполняет эту работу за стабильной схемой.

pytrends / DIY

Этот сервер

Официальная поддержка

Нет, Google не предоставляет API Trends

Поддерживаемая схема поверх тех же данных

Ограничения частоты и 429

Частые, и разбираться с ними приходится вам

Обрабатываются за эндпоинтом

Вывод

Фреймы Pandas или сырые ответы, требующие преобразования

Структурированный JSON, значения уже разобраны

Настройка

Среда Python и поддержка при поломках

Один ключ и один URL

Стоимость

Бесплатно, пока работает

Платно после пробного периода, 5 кредитов за вызов

Если вы уже используете pytrends при низких объёмах и не против чинить его, когда он ломается, это остаётся бесплатным решением. Этот сервер — для агентов и пайплайнов, которым нужно, чтобы данные всегда приходили в одном и том же виде.

FAQ

Нет. Google никогда не выпускал публичного API Trends. Все варианты используют те же внутренние эндпоинты, что и сайт trends.google.com. Этот вариант поддерживается HasData и возвращает результат в виде структурированного JSON.

Это сервер, который предоставляет Google Trends как инструмент, вызываемый ИИ-клиентом. Клиент отправляет вызов инструмента по протоколу Model Context Protocol, сервер получает данные и возвращает структурированный JSON, а клиент работает с результатом. Этот сервер предоставляет один инструмент и работает удалённо, поэтому клиент подключается по URL и не запускает никаких локальных процессов.

Означают ли числа абсолютный объём поиска?

Нет, и в самом Google Trends тоже. Значения — это относительный интерес по шкале от 0 до 100 в пределах запрошенных вами запроса, периода и региона. Используйте их для оценки формы и сравнения, а не как количество поисков.

Почему последняя точка данных ниже остальных?

Самый свежий сегмент обычно ещё заполняется и возвращается с isPartial: true. Отбросьте его перед вычислением тренда.

Можно ли сравнивать несколько запросов одновременно?

Да, в timeseries и geoMap. Передайте запросы через запятую в q. Типы related-query и related-topic принимают один запрос.

Можно ли использовать это вместе с другими API HasData?

Да. Параметр apis принимает список, а ?apis=google_trends,google_serp даёт вашему агенту Trends плюс поиск Google. Уберите параметр — и вы получите всё.

Соответствие требованиям и персональные данные

HasData обращается только к общедоступным данным. Условия платформы могут ограничивать автоматический доступ, и вы сами отвечаете за соблюдение требований.

Ссылки HasData

Страница продукта и конструктор запросов

Google Trends API

Документация сервера

Документация MCP-сервера

Все 57 инструментов в одном сервере

HasData/hasdata-mcp

Инструкции для клиентов

MCP-клиенты и интеграции

Всё остальное, что мы парсим

Google Trends API и ещё 54

Тарифы и стоимость кредитов

Тарифы и стоимость кредитов

Ключи и использование

Панель управления HasData

Лаунчер для Node на npm

@hasdata/google-trends-mcp

Лаунчер для Python на PyPI

hasdata-google-trends-mcp

Разработка

Этот репозиторий — конфигурация и документация для удалённого сервера. Здесь нет шага сборки и нечего контейнеризировать.

Тесты в test/ проверяют контракт инструмента — ту часть, которая может сломаться без коммита здесь. Они проверяют, что ?apis=google_trends возвращает ровно один инструмент, что он по-прежнему объявляет свой обязательный параметр, что имя не изменилось и что используемый ключ действительно принимается. Последняя проверка по-настоящему вызывает инструмент и стоит 5 кредитов — это цена канарейки, которая может упасть по правильной причине.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

Тот же набор тестов запускается в CI при каждом пуше и раз в неделю по расписанию, потому что исходный список инструментов может измениться, даже если никто не трогает этот репозиторий. Сбой означает, что список инструментов изменился, ключ перестал работать или эндпоинт был недоступен, и в сообщении проверки указано, что именно.

Участие в разработке

Наиболее полезный вклад — исправления таблицы параметров и примера ответа, потому что именно эти части расходятся с реальностью. Приложите выполненный вами вызов и полученный ответ. Pull request из форков запускает набор тестов без ключа, и «живые» проверки пропускаются, а не становятся красными.

Лицензия

MIT. См. LICENSE.

A
license - permissive license
A
quality
A
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
1dRelease cycle
3Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides Google Search trend data as an MCP tool, with historical series, growth percentages, and live trending searches, no scraping or rate limits.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that exposes Google Trends data via BigQuery, enabling LLMs to query top search terms, rising terms, and compare term interest over time for different countries.
  • A
    license
    A
    quality
    D
    maintenance
    Provides free Google Trends data (interest over time, term comparison, related queries, trending now, regional breakdown) to MCP-compatible AI clients without needing an API key.
    5
    98
    MIT

View all related MCP servers

Related MCP Connectors

  • Trend data from Google, TikTok, Amazon, Reddit, YouTube, Steam, npm and more as JSON

  • Trend data from Google Trends, YouTube, TikTok, Reddit, Amazon, Wikipedia, npm, Steam and more

  • Cross-platform social media intelligence. Trend volume and growth signals. Free key at trendsmcp.ai

View all MCP Connectors

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/HasData/google-trends-mcp'

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