API ВЕГА

mcp-trendpulse

TrendPulse — это сервер на Python, реализующий Model Context Protocol (MCP) и предназначенный для изучения актуальных новостей и поисковых трендов. Он объединяет поиск в Google News и извлечение содержимого статей с анализом Google Trends. С его помощью MCP-клиенты могут отслеживать популярные темы, сравнивать динамику ключевых слов, изучать связанный спрос и дополнять исследовательские процессы контекстом актуальных новостей.

Сейчас проект распространяется как общественный сервер MCP для самостоятельного размещения. В репозитории также есть реализация отдельного размещаемого сервиса TrendPulse by DigestSEO для удалённых MCP-клиентов, например ChatGPT и Codex. В размещаемой версии используется более компактный набор инструментов, ориентированный на конкретные задачи, а общественный сервер предоставляет разработчикам полный низкоуровневый инструментарий для исследований.

Статус проекта: локальный общественный сервер уже можно использовать. Размещаемый DigestSEO MCP и общедоступный плагин OpenAI пока не выпущены и не являются доступными конечными точками.

Контекст разработки: TrendPulse входит в экосистему MCP DigestSEO. Он дополняет mcp-gsc для работы с данными Google Search Console, mcp-geo для анализа видимости в AI и mcp-web-validator для технической проверки сайтов. Более широкая архитектура описана в инженерном кейсе DigestSEO MCP Suite.

Сводка спроса TrendPulse

Нужно быстро проверить факты перед тем, как выбрать тему, ключевое слово, рынок, позиционирование продукта или направление для контента? Tomi предлагает подготовленную специалистом сводку спроса TrendPulse за 49 EUR.

Для одного решения сводка охватывает до пяти ключевых слов или фраз и два географических рынка. В ней используются открытые исследовательские возможности TrendPulse и актуальные общедоступные источники: направление изменения поискового интереса, относительная динамика, связанный спрос, полезный новостной контекст и три конкретных вывода. Планируемый срок подготовки — до 24 часов после подтверждения оплаты и получения исходных данных.

Посмотрите точный объём работ и формат запроса, ознакомьтесь с общедоступным примером сводки или отправьте письмо на info@tomiseregi.si с темой TrendPulse Demand Brief [TP-RS1].

Платная сводка необязательна. Community MCP остаётся бесплатным и не меняется, а маркер TP-RS1 используется только для атрибуции входящего запроса; скрытая телеметрия в MCP не добавляется.

Возможности TrendPulse

Исследование новостей

  • Поиск в Google News по ключевым словам, местоположению, теме или домену издателя.

  • Получение наиболее популярных новостных материалов.

  • Обработка ссылок Google News и извлечение содержимого статей.

  • Переход от обычного получения данных по HTTP к Playwright/Chromium, если страницы трудно обработать.

  • При необходимости — краткий пересказ текста статьи с помощью функции семплирования MCP-клиента; в качестве запасного варианта используется локальная обработка естественного языка (NLP).

Исследование трендов

  • Получение актуальных трендовых запросов для выбранного географического рынка.

  • Получение данных Google Trends об изменении интереса к одному или нескольким ключевым словам с течением времени.

  • Расчёт роста интереса к ключевым словам за заданные периоды, например 3M или 1Y.

  • Ранжирование текущих трендов по объёму или темпам роста.

  • Анализ интереса по странам, регионам, городам или DMA, если это поддерживается.

  • Изучение связанных запросов, связанных тем, предложений и идентификаторов категорий.

  • Сравнение трендов в Google Search, YouTube Search, News Search, Image Search и Google Shopping, если такие варианты поддерживает используемый поставщик данных.

Архитектура общественной и размещаемой версий

TrendPulse разрабатывается с двумя отдельными вариантами использования:

ВариантНазначениеСтатус
Community MCPПолнофункциональный сервер MCP на Python для локальной работы, разработки, самостоятельного размещения и интеграции с MCP-совместимыми клиентами.Доступен в этом репозитории
TrendPulse by DigestSEOУправляемый удалённый MCP для ChatGPT/Codex и будущий общедоступный плагин OpenAI с более компактным набором инструментов, ориентированным на задачи.В разработке

Общественный сервер полезен и сам по себе. Размещаемая версия будет использовать те же основные подходы к исследованию трендов, дополняя их инфраструктурой развёртывания, надёжностью, аутентификацией, наблюдаемостью и интеграцией с продуктами, необходимыми для управляемого сервиса.

Реализованный набор инструментов размещаемой версии намеренно сделан более высокоуровневым, чем API общественного сервера. Он ориентирован на такие задачи, как:

  • discover_trends

  • analyze_keyword_trend

  • compare_keyword_trends

  • discover_related_demand

  • get_trend_context

  • find_seo_opportunities

Эти названия относятся к интерфейсу ChatGPT Apps/MCP размещаемой версии и отличаются от названий инструментов текущего Community MCP.

Установка

Запуск из PyPI с помощью uvx (рекомендуется)

TrendPulse опубликован в PyPI, поэтому самый быстрый способ запуска:

uvx mcp-trendpulse

Чтобы запустить текущую версию репозитория, а не опубликованный пакет:

uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

Установка через pip из клонированного репозитория

git clone https://github.com/AKzar1el/mcp-trendpulse.git
cd mcp-trendpulse
python -m pip install .
python -m mcp_trendpulse

Использование браузера в качестве запасного варианта

Инструменты для работы с новостями и статьями могут переключаться на Playwright, если обычным способом не удаётся извлечь пригодное для использования содержимое статьи. Установка пакета Python playwright не устанавливает Chromium автоматически.

Для локального использования:

playwright install chromium

Для сред Linux, которым также нужны системные зависимости браузера:

playwright install --with-deps chromium

Для операций только с трендами Chromium не требуется.

Настройка клиентов

Claude Desktop и Claude Code

Конфигурация плагина Claude Code находится в .claude-plugin/plugin.json, а описание MCP — в .mcp.json. Community MCP работает локально через stdin и запускается командой uvx mcp-trendpulse.

Claude Desktop

Использование опубликованного в PyPI пакета через uvx:

{
  "mcpServers": {
    "mcp-trendpulse": {
      "command": "uvx",
      "args": ["mcp-trendpulse"]
    }
  }
}

VS Code

Установить TrendPulse в VS Code

Требуется uv/uvx. Установка запускает опубликованный в PyPI пакет Community MCP через локальный stdio.

Чтобы настроить сервер для рабочей области, добавьте этот фрагмент в .vscode/mcp.json. Для глобальной настройки в mcp.json профиля пользователя VS Code используется такая же структура с верхнеуровневым ключом servers.

{
  "servers": {
    "mcp-trendpulse": {
      "command": "uvx",
      "args": ["mcp-trendpulse"]
    }
  }
}

ChatGPT для настольных компьютеров, Codex CLI и расширение для IDE

Локальные клиенты OpenAI ChatGPT и Codex поддерживают локальные MCP-серверы через stdio и используют общую конфигурацию MCP на хосте Codex. Добавьте опубликованный пакет TrendPulse одной командой:

codex mcp add mcp-trendpulse -- uvx mcp-trendpulse

После этого один и тот же локальный сервер будет доступен в приложении ChatGPT для настольных компьютеров, Codex CLI и расширении Codex для IDE. В ChatGPT для настольных компьютеров сервер также можно добавить через Settings -> MCP Servers: выберите сервер типа STDIO, укажите команду uvx mcp-trendpulse, а затем перезапустите приложение. При этом запускается опубликованный в PyPI пакет Community MCP, а не ещё не выпущенная конечная точка размещаемого TrendPulse. ChatGPT в браузере работает отдельно и не использует локальную конфигурацию Codex MCP.

Cursor и переносимые Agent Plugins

В корне репозитория находится манифест Agent Plugins 1.0. Совместимые клиенты, такие как Cursor и GitHub Copilot, могут загружать тот же переносимый пакет plugin.json + mcp.json.

Cursor также поддерживает глобальную конфигурацию MCP и настройки для отдельных проектов. Добавьте сервер в соответствующий файл конфигурации mcp.json:

{
  "mcpServers": {
    "mcp-trendpulse": {
      "command": "uvx",
      "args": ["mcp-trendpulse"]
    }
  }
}

Devin CLI и Devin Desktop

Плагины Devin CLI могут загружать пакеты плагинов Claude и Agent Plugins 1.0 напрямую с GitHub. TrendPulse уже включает оба совместимых варианта структуры (.claude-plugin/plugin.json + .mcp.json и корневые plugin.json + mcp.json). Установите плагин командой:

devin plugins install AKzar1el/mcp-trendpulse

Для управления плагинами в Devin требуется войти в CLI. Установленный плагин TrendPulse запускает опубликованный Community MCP локально через stdio командой uvx mcp-trendpulse; он не использует ещё не выпущенную конечную точку размещаемого TrendPulse. После установки плагин также станет доступен в Devin Desktop.

Kiro

Требуется uv/uvx. При установке запускается опубликованный пакет Community MCP из PyPI; неиспущенная hosted-версия не используется.

Конфиденциальность: Уведомление о конфиденциальности TrendPulse Community MCP · Поддержка: info@tomiseregi.si

LM Studio

Добавить TrendPulse в LM Studio

Требуется uv/uvx. LM Studio локально запускает опубликованный пакет Community MCP через stdio; для этого не требуется hosted-сервис TrendPulse.

ChatGPT в браузере и другие облачные MCP-клиенты

В репозитории появилась отдельная stateless ASGI-точка входа Streamable HTTP: mcp_trendpulse.asgi:app. Она не связана с точкой входа Community через stdio, которая остаётся без изменений.

Для контролируемого локального тестирования или тестирования в приватной среде можно запустить ASGI-приложение с помощью Uvicorn либо использовать предоставленный контейнер. В deploy/README.md описаны усиленная защита контейнера, списки разрешённых Host/Origin, требования к песочнице Chromium, конечные точки проверки работоспособности и готовности, а также настройки обратного прокси.

Размещённая на DigestSEO конечная точка и общедоступное приложение ChatGPT ещё не выпущены. Hosted-развёртывания теперь поддерживают аутентификацию Clerk OAuth с отказом при невозможности подтвердить доступ. Не открывайте удалённый транспорт для публичного доступа, пока для конкретного развёртывания не настроены issuer/JWKS/audience Clerk, общедоступный базовый URL и списки разрешённых Host/Origin.

Настройка

TrendPulse загружает переменные среды из окружения процесса и из локального файла .env, если он существует.

Полезные переменные:

HTTP_PROXY=http://your-proxy-address:port
HTTPS_PROXY=http://your-proxy-address:port
GOOGLE_NEWS_LANGUAGE=en
GOOGLE_NEWS_COUNTRY=US
GOOGLE_TRENDS_DELAY=2.0

GOOGLE_NEWS_LANGUAGE и GOOGLE_NEWS_COUNTRY задают язык и регион Google News для всех инструментов поиска новостей; значения по умолчанию — en и US. GOOGLE_TRENDS_DELAY задаёт задержку между запросами для текущего провайдера Trends. Переменные прокси могут пригодиться, если upstream-сервис ограничивает частоту запросов или блокирует определённую сеть.

Удалённые развёртывания также поддерживают TRENDPULSE_HTTP_PATH, TRENDPULSE_HTTP_ALLOWED_HOSTS, TRENDPULSE_HTTP_ALLOWED_ORIGINS и TRENDPULSE_BROWSER_SANDBOX. В контейнере песочница Chromium включена явно; при локальном запуске Community сохраняется значение по умолчанию, совместимое с Playwright, если вы не включите её самостоятельно.

Не добавляйте в репозиторий секреты, учётные данные для приватных прокси и файлы .env, предназначенные для конкретной машины.

Инструменты MCP

Сервер Community MCP предоставляет 16 инструментов.

Инструменты для работы с новостями

ИнструментНазначение
get_news_by_keywordНаходит свежие новости по ключевому слову.
get_news_by_locationНаходит свежие новости, связанные с указанным местом.
get_news_by_topicНаходит свежие новости по поддерживаемой теме Google News.
get_top_newsПолучает самые популярные новости Google News.
get_news_by_siteНаходит свежие новости на сайте конкретного издателя.
get_article_contentЗагружает, проверяет и извлекает содержимое одной статьи по URL, а также при необходимости составляет краткое изложение.

Инструменты для работы с трендами

ИнструментНазначение
get_trending_termsПолучает актуальные популярные запросы для указанного региона.
get_trendsПолучает данные об интересе к одному или нескольким ключевым словам за определённый период.
get_growthРассчитывает рост поискового интереса за заданные периоды.
get_ranked_trendsСоставляет рейтинг актуальных трендов по темпам роста или объёму.
get_top_trendsПолучает список наиболее популярных трендов без указания ключевого слова.
get_interest_by_regionСравнивает интерес к ключевому слову в разных регионах.
get_related_queriesПолучает популярные и быстро растущие связанные поисковые запросы.
get_related_topicsПолучает популярные и быстро растущие связанные темы Google Trends.
get_suggestionsПодбирает варианты автодополнения и тем для запроса.
get_categoriesИщет или постранично выводит идентификаторы и названия категорий Google Trends, чтобы затем использовать параметр cat.

Пример: явное указание периода тренда

get_trends принимает явный параметр timeframe. Рекомендуется указывать его, если нужны воспроизводимые сравнения.

{
  "keyword": ["technical SEO audit", "AI SEO audit"],
  "geo": "US",
  "source": "google search",
  "timeframe": "today 12-m",
  "cat": 0
}

Среди поддерживаемых провайдером периодов — стандартные интервалы, например today 12-m и today 5-y, относительные периоды, например today 90-d, период all и точные диапазоны дат, например 2021-01-01 2026-01-01.

Значения Google Trends — это нормализованные показатели интереса. Не следует интерпретировать ряд значений от 0 до 100 как абсолютный объём поиска.

CLI

Отдельный Click CLI предоставляет меньше команд для работы с новостями, чем сервер MCP:

uv run mcp-trendpulse-cli --help

Доступные команды CLI:

brief-pack
keyword
location
top
topic
trending

brief-pack формирует детерминированную таблицу данных о трендах и темпах роста для подготовки Demand Brief. Итоговую интерпретацию и рекомендации намеренно оставляет для включения в подготовленный специалистом brief.

CLI и MCP описаны отдельно, поскольку наборы доступных в них команд различаются.

Разработка

Установите проект вместе с зависимостями для разработки в предпочитаемом окружении Python, затем запустите набор модульных тестов:

python -m pytest

По умолчанию конфигурация pytest исключает интеграционные тесты с обращением к реальным сервисам.

Чтобы явно запустить тесты провайдеров с реальными запросами, выполните:

python -m pytest tests/integration -m integration

Для интеграционных тестов с отметкой browser необходимо установить Playwright Chromium.

Проверка с помощью Ruff:

ruff check .

MCP Inspector

Чтобы запустить сервер, опубликованный из GitHub, через MCP Inspector, выполните:

npx @modelcontextprotocol/inspector uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

Для локальной копии репозитория:

npx @modelcontextprotocol/inspector uv run mcp-trendpulse

Сборка и публикация пакета

При публикации релиза GitHub Actions собирает дистрибутивы Python и публикует их в PyPI с помощью Trusted Publishing. Текущую стабильную версию пакета можно запустить командой uvx mcp-trendpulse. Используйте вариант GitHub uvx --from ..., только если вам намеренно нужна версия из текущего состояния репозитория.

Примечания по безопасности

Получение содержимого статей выполняет исходящие сетевые запросы, а получаемые данные считаются недоверенными. Реализация проверяет HTTP(S)-адреса, отклоняет частные и недоступные для маршрутизации назначения, проверяет адреса переадресации, ограничивает размер ответа и проверяет маршруты браузера при использовании Playwright.

При удалённом развёртывании TrendPulse сохраните эти меры защиты и дополните их ограничением частоты запросов на уровне развёртывания, тайм-аутами запросов, наблюдаемостью и ограничениями ресурсов. Не полагайтесь только на настройки приложения по умолчанию.

Инструкции по ответственному раскрытию уязвимостей приведены в SECURITY.md.

План развития

К текущим приоритетам подготовки к промышленной эксплуатации относятся:

  • Поддерживать согласованность документации, метаданных пакета и сгенерированных манифестов MCP с фактически доступными инструментами.

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

  • Сохранять границы между провайдерами, чтобы менять upstream-источники без переработки уровня MCP.

  • Усиливать защиту и обеспечивать работу существующего stateless-транспорта Streamable HTTP, сохраняя локальную работу через stdio.

  • Дорабатывать существующий, более компактный набор hosted-инструментов для ChatGPT/Codex с учётом реальных данных о развёртывании и потребностях заказчиков.

  • Завершить настройку авторизации провайдеров и интегрировать hosted-сервис с приложением DigestSEO и операционным стеком.

  • Упаковать hosted MCP в виде плагина OpenAI и протестировать его только после подготовки управляемого сервиса к промышленной эксплуатации.

Лицензия

MIT. См. LICENSE.