Как подключить Wordstat к ChatGPT
Суть
Коннектим Wordstat к ChatGPT
Для этого используем сайт коннектор - mcp-kv.ru
Сначала двигайтесь по инструкции - https://mcp-kv.ru/docs/wordstat-mcp-setup
Когда закончите — возвращайтесь сюда.
Что не работает после официальной настройки
MCP KV предлагает пять инструментов:
wordstat_get_user_info wordstat_get_regions_tree wordstat_get_top_requests wordstat_get_dynamics wordstat_get_regions
В нашей конфигурации стабильно работают только три.
wordstat_get_user_info
Используется как диагностический запрос: проверяет API Key, Folder ID и доступность Yandex Search API.
Частотность этот метод не возвращает.
wordstat_get_top_requests
Официальный метод GetTop получает данные за последние 30 дней. Основное значение исходной фразы находится в поле totalCount. Yandex AI Studio
wordstat_get_dynamics
Работает только после исправления OpenAPI-схемы.
В исходной конфигурации даты были необязательными. Из-за этого MCP KV мог подставлять неподходящую дату начала периода.
Для месячной динамики Яндекс возвращал:
The from field value should be the first day of the month
The from field value should be Monday
Поэтому в рабочей схеме fromDate и toDate обязательны, а GPT получает чёткое правило:
Официальный GetDynamics принимает фразу, период, даты, список регионов и устройства. Yandex AI Studio
wordstat_get_regions_tree
Инструмент возвращает полное дерево регионов Яндекса. Ответ оказывается слишком большим для GPT Actions и завершается ошибкой:
ResponseTooLargeError
Просьба «найди только Москву» не помогает: сначала MCP KV передаёт в ChatGPT полное дерево и только после получения ответа модель могла бы его отфильтровать.
wordstat_get_regions
Даже после исправления входных параметров backend MCP KV возвращал:
Yandex Search API ошибка 404
Это не проблема API Key, Folder ID или роли: с теми же учётными данными успешно работают GetTop и GetDynamics.
Официальный Wordstat действительно предоставляет отдельный метод распределения по регионам, но текущая реализация этого вызова в MCP KV у нас не заработала. Yandex AI Studio
Исправить backend стороннего сервиса через OpenAPI JSON невозможно.
Какие инструменты оставить в MCP KV
Откройте кабинет MCP KV и перейдите в раздел выбора GPT Actions.
wordstat_get_user_info wordstat_get_top_requests wordstat_get_dynamics
wordstat_get_regions_tree wordstat_get_regions
Сохранить выбор
Создание кастомного GPT
Откройте редактор собственных GPT в ChatGPT.
Название
WordStat
Описание
Получает точную частотность и динамику поисковых фраз из Яндекс Wordstat по известным ID регионов и формирует таблицы для анализа спроса.
Возможности
Интерпретатор кода и анализ данных
Он пригодится для работы с Excel и CSV.
Частотность должна поступать только из Wordstat, а не оцениваться по материалам из интернета.
Модель
Для обычных запросов достаточно доступной модели Instant с включённым автоматическим переходом в Thinking.
Работа с Actions поддерживается только моделями, доступными для пользовательских действий; Pro-режим для них не используется. OpenAI Help Center
Настройка действия GPT
Действия → Создать новое действие
OpenAI позволяет вставить OpenAPI-схему непосредственно в редактор или импортировать её по URL. В нашем случае после первоначального подключения схему нужно вставить вручную, иначе URL MCP KV снова загрузит исходную версию. OpenAI Help Center
Аутентификация
Тип аутентификации: API-ключ Тип авторизации: Пользовательский Имя пользовательского заголовка: X-API-Key
В поле API-ключа вставьте персональный ключ GPT Actions из кабинета MCP KV.
Не вставляйте сюда Yandex Cloud API Key.
Получается две разные пары доступов:
Yandex Cloud API Key MCP KV → Yandex Wordstat
MCP KV GPT Actions API Key ChatGPT → MCP KV
Рабочая OpenAPI-схема
Полностью удалите автоматически импортированный JSON и вставьте этот:
{
"openapi": "3.1.0",
"info": {
"title": "WordStat через MCP KV",
"description": "Получение частотности и динамики поисковых запросов через Yandex Cloud Search API Wordstat.",
"version": "3.0.0"
},
"servers": [
{
"url": "https://mcp-kv.ru",
"description": "MCP KV production server"
}
],
"security": [
{
"ApiKeyAuth": []
}
],
"paths": {
"/api/gpt-actions/wordstat_get_user_info": {
"post": {
"operationId": "wordstat_get_user_info",
"summary": "Проверить подключение Wordstat",
"description": "Проверяет доступность Yandex Cloud Search API, наличие API Key и Folder ID. Не возвращает частотность поисковых фраз.",
"security": [
{
"ApiKeyAuth": []
}
],
"responses": {
"200": {
"description": "Результат проверки подключения",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success",
"message"
]
}
}
}
}
}
}
},
"/api/gpt-actions/wordstat_get_top_requests": {
"post": {
"operationId": "wordstat_get_top_requests",
"summary": "Получить частотность и топ запросов",
"description": "Получает общую частотность одной исходной фразы за последние 30 дней, а также дополнительные и связанные запросы. Для списка фраз необходимо выполнять отдельный вызов для каждой фразы.",
"security": [
{
"ApiKeyAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"phrase": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"description": "Одна исходная поисковая фраза. Несколько фраз нельзя объединять в одно значение."
},
"numPhrases": {
"type": "integer",
"minimum": 1,
"maximum": 2000,
"default": 1,
"description": "Количество дополнительных запросов в ответе. Для получения только частотности исходной фразы использовать 1."
},
"regions": {
"type": "array",
"maxItems": 100,
"description": "Массив известных ID регионов Wordstat. Например, 213 — Москва, 225 — Россия.",
"items": {
"type": "string",
"pattern": "^[0-9]+quot;
}
},
"devices": {
"type": "array",
"maxItems": 3,
"default": [
"DEVICE_ALL"
],
"description": "Типы устройств. Если пользователь не указал устройства, использовать DEVICE_ALL.",
"items": {
"type": "string",
"enum": [
"DEVICE_ALL",
"DEVICE_DESKTOP",
"DEVICE_PHONE",
"DEVICE_TABLET"
]
}
}
},
"required": [
"phrase"
]
}
}
}
},
"responses": {
"200": {
"description": "Частотность исходной фразы и топ запросов",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success",
"message"
]
}
}
}
}
}
}
},
"/api/gpt-actions/wordstat_get_dynamics": {
"post": {
"operationId": "wordstat_get_dynamics",
"summary": "Получить динамику частотности",
"description": "Получает изменение частотности одной поисковой фразы по дням, неделям или месяцам. Даты необходимо передавать явно и выравнивать по границам выбранного периода.",
"security": [
{
"ApiKeyAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"phrase": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"description": "Одна поисковая фраза."
},
"period": {
"type": "string",
"description": "Период агрегации.",
"enum": [
"PERIOD_DAILY",
"PERIOD_WEEKLY",
"PERIOD_MONTHLY"
]
},
"fromDate": {
"type": "string",
"format": "date-time",
"description": "Начало периода в RFC3339. Для PERIOD_WEEKLY дата должна быть понедельником. Для PERIOD_MONTHLY — первым числом месяца. Пример: 2026-01-01T00:00:00Z."
},
"toDate": {
"type": "string",
"format": "date-time",
"description": "Конец периода в RFC3339. Для PERIOD_WEEKLY дата должна быть воскресеньем. Для PERIOD_MONTHLY — последним днём месяца. Пример: 2026-06-30T23:59:59Z."
},
"regions": {
"type": "array",
"maxItems": 100,
"description": "Массив известных ID регионов Wordstat.",
"items": {
"type": "string",
"pattern": "^[0-9]+quot;
}
},
"devices": {
"type": "array",
"maxItems": 3,
"default": [
"DEVICE_ALL"
],
"description": "Типы устройств. Если пользователь не указал устройства, использовать DEVICE_ALL.",
"items": {
"type": "string",
"enum": [
"DEVICE_ALL",
"DEVICE_DESKTOP",
"DEVICE_PHONE",
"DEVICE_TABLET"
]
}
}
},
"required": [
"phrase",
"period",
"fromDate",
"toDate"
]
}
}
}
},
"responses": {
"200": {
"description": "Динамика частотности",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success",
"message"
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {},
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key",
"description": "Персональный API-ключ GPT Actions из кабинета mcp-kv.ru."
}
}
}
}Импортировать из URL-адреса
Иначе MCP KV повторно загрузит исходную схему и перезапишет исправления.
Политика конфиденциальности
https://mcp-kv.ru/privacy
Системный промпт GPT
Вставьте следующий текст в поле «Инструкции»:
Ты — специализированный клиент официального Yandex Cloud Search API Wordstat. ДОСТУПНЫЕ ИНСТРУМЕНТЫ - wordstat_get_user_info — проверка подключения. - wordstat_get_top_requests — текущая частотность и топ запросов за последние 30 дней. - wordstat_get_dynamics — динамика частотности по дням, неделям или месяцам. Других инструментов Wordstat нет. Не пытайся вызывать дерево регионов или распределение по регионам. ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА 1. Любую частотность получай только через подключённые инструменты Wordstat. 2. Никогда не придумывай, не оценивай и не округляй частотность. 3. Если инструмент не был вызван или вернул ошибку, напиши «нет данных» и кратко укажи техническую причину. 4. Не заменяй данные Wordstat информацией из интернета или своими знаниями. 5. Сохраняй исходное написание, порядок строк и повторяющиеся фразы пользователя. 6. Не добавляй операторы Wordstat, если пользователь явно этого не попросил. ТЕКУЩАЯ ЧАСТОТНОСТЬ 7. Для текущей частотности используй wordstat_get_top_requests. 8. Одна исходная фраза всегда передаётся одним отдельным вызовом. 9. По умолчанию используй numPhrases: 1. 10. Если пользователь попросил топ запросов или связанные запросы, увеличь numPhrases до указанного количества. 11. Основной частотностью исходной фразы считай значение «всего показов» из ответа сервиса. 12. Не суммируй дополнительные и связанные запросы. 13. Не заменяй исходную фразу первым похожим запросом из списка. 14. Дополнительные и связанные запросы не показывай без отдельной просьбы пользователя. СПИСКИ ФРАЗ 15. Если пользователь передал несколько фраз, выполни отдельный вызов wordstat_get_top_requests для каждой фразы. 16. Обрабатывай фразы последовательно, в исходном порядке. 17. После завершения одного вызова автоматически переходи к следующей фразе. 18. Не останавливайся после первой успешно обработанной фразы. 19. Не объединяй несколько фраз в одно поле phrase. 20. После завершения всех вызовов объедини результаты в одну таблицу. 21. Если платформа прервала длинную последовательность, сообщи количество обработанных строк и продолжи с первой необработанной строки после команды пользователя «Продолжай». РАБОТА С РЕГИОНАМИ 22. Инструменты принимают только известные числовые ID регионов. 23. Известные ID: - Москва — 213. - Россия — 225. 24. Если пользователь передал ID числом, используй его напрямую. 25. Если пользователь указал несколько ID, передай их одним массивом regions во все вызовы задания. 26. Не выполняй отдельные вызовы для каждого региона и не складывай частотности вручную. 27. Если пользователь назвал регион, ID которого отсутствует в инструкции, попроси указать его ID. 28. Не придумывай ID региона. 29. Если регион не указан, уточни его перед вызовом Wordstat. 30. Не используй автоматически Россию или Москву без указания пользователя. ДИНАМИКА ЧАСТОТНОСТИ 31. Для динамики используй wordstat_get_dynamics. 32. Допустимые значения period: - PERIOD_DAILY - PERIOD_WEEKLY - PERIOD_MONTHLY 33. Всегда передавай fromDate и toDate. 34. Даты передавай в формате RFC3339: YYYY-MM-DDT00:00:00Z 35. Для PERIOD_MONTHLY: - fromDate должен быть первым числом первого месяца; - toDate должен быть последним днём последнего месяца; - используй полные календарные месяцы. 36. Для PERIOD_WEEKLY: - fromDate должен быть понедельником; - toDate должен быть воскресеньем; - используй полные календарные недели. 37. Для PERIOD_DAILY используй точные календарные даты. 38. Если пользователь просит «последние N полных месяцев»: - не включай текущий незавершённый месяц; - начни с первого числа самого раннего месяца; - закончи последним днём предыдущего месяца. 39. Если пользователь просит «последние N полных недель»: - не включай текущую незавершённую неделю; - начни с понедельника самой ранней недели; - закончи воскресеньем последней полной недели. 40. Для месячной и недельной динамики не добавляй операторы Wordstat, кроме явно указанного пользователем оператора +. ПРОВЕРКА ПОДКЛЮЧЕНИЯ 41. wordstat_get_user_info вызывай только для проверки: - доступности Yandex Cloud Search API; - наличия API Key; - наличия Folder ID; - общего состояния подключения. 42. Этот инструмент не возвращает частотность. ЗАГРУЖЕННЫЕ ТАБЛИЦЫ 43. Если пользователь загрузил Excel или CSV: - возьми поисковые фразы из указанного пользователем столбца; - если столбец не указан, используй первый столбец; - сохрани порядок строк и повторяющиеся значения; - вызови wordstat_get_top_requests отдельно для каждой непустой фразы; - добавь колонку «Частота запроса»; - для ошибок и пустых строк поставь «—»; - не изменяй остальные колонки. ФОРМАТ ОТВЕТА 44. Для списка фраз по умолчанию возвращай таблицу: Поисковый запрос | Частота запроса 45. Под таблицей кратко укажи: - Регион; - ID региона или список ID; - Метод: Wordstat GetTop; - Период: последние 30 дней. 46. Для динамики возвращай таблицу: Период | Показы | Доля 47. Отвечай по-русски и кратко. 48. Не показывай технический JSON, отладочные данные и связанные запросы, если пользователь их не запросил.
Кнопки начала обсуждения
Частотность списка
Проверь частотность списка запросов по Москве, ID 213, и верни таблицу
Динамика
Покажи динамику поискового запроса за последние 6 полных месяцев по Москве
Диагностика
Проверь подключение к Yandex Wordstat и кратко покажи результат
Сохранение
Обновить
Не закрывайте редактор без сохранения.
Контрольные тесты
1. Проверка подключения
Вызови только wordstat_get_user_info. Не используй другие инструменты. Кратко покажи статус подключения.
Подключение работает. API Key установлен. Folder ID установлен.
2. Проверка одной фразы
Вызови только wordstat_get_top_requests. Фраза: массаж спины Количество результатов: 1 Регион: 213 Покажи только исходную фразу и её общую частотность.
3. Проверка списка фраз
Проверь частотность запросов: массаж шеи массаж спины массаж ног Регион: Москва, ID 213. Для каждой фразы выполни отдельный вызов wordstat_get_top_requests. Сохрани исходный порядок и верни одну таблицу.
Поисковый запрос | Частота запроса массаж шеи | 3740 массаж спины | 9670 массаж ног | 7151
4. Проверка динамики
Вызови только wordstat_get_dynamics. Фраза: массаж спины Период: PERIOD_MONTHLY Дата начала: 2026-01-01T00:00:00Z Дата окончания: 2026-06-30T23:59:59Z Регион: 213 Верни таблицу по месяцам.
Что получится в итоге
- проверять одну поисковую фразу;
- последовательно обрабатывать списки фраз;
- сохранять исходный порядок;
- работать с известными ID регионов;
- получать дневную, недельную и месячную динамику;
- формировать готовые таблицы;
- переносить результаты в Excel или CSV.
- поиск ID региона по названию;
- автоматическое распределение запроса по всем регионам;
- полноценное дерево регионов внутри ChatGPT.
Для основной задачи — массового сбора частотности по заранее известному региону — эти ограничения не мешают.
📱 Telegram канал: NaitLAB | Что-то на умном – @NaitLAB
💡 Ковыряюсь в сложном, рассказываю на простом