npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-google-search-console

v1.2.0

Published

MCP server for the Google Search Console API — search analytics, sitemaps, URL inspection and site management. For Claude, Cursor, Codex and other AI clients.

Readme

Google Search Console MCP

English | Русский

npm CI Glama License: MIT

A1 Google Search Console MCP подключает AI-приложение к Google Search Console. Он помогает исследовать поисковую эффективность, проверить индексацию URL, посмотреть sitemap и осознанно отправить или удалить sitemap.

Сервер работает со свойствами, к которым есть доступ у вашего Google-аккаунта. Важная особенность: он использует точное значение свойства Search Console — domain property и URL-prefix property являются разными объектами.

  • 18 инструментов. Семь инструментов читают свойства, поисковые данные, sitemap и статус индексации; два добавляют свойство или отправляют sitemap; три могут удалить данные или вызвать произвольный метод API.
  • Подключение из диалога. Скажите «подключи Google Search Console»: сервер проведёт через создание OAuth-клиента, поймает редирект Google на 127.0.0.1 с PKCE и сам сохранит токены — без конфигов и перезапуска.
  • Точные ID свойств. https://example.com/, https://www.example.com/ и sc-domain:example.com различаются. list_sites показывает значение, которое нужно использовать.
  • Поисковые данные с контекстом. Можно получить клики, показы, CTR и позицию по дате, странице, запросу, стране, устройству или search appearance.
  • Индексация, а не публикация. Проверка URL показывает текущий статус Google, но не заставляет страницу попасть в индекс.

Начните с запроса, который только читает данные:

Покажи 20 самых популярных поисковых запросов для моего свойства за последние 28 дней, с кликами и CTR.

Подключить сервер · Посмотреть сценарии · Открыть техническую документацию


Увидеть работу за минуту

Вы: Проиндексирован ли https://example.com/pricing? Если нет, почему?

Ассистент: Проверяет URL и показывает вердикт индексации, покрытие, данные обхода и canonical URLs. Ничего не меняется.

Вы: Проверь мои sitemap и подготовь повторную отправку того, где есть ошибки.

Ассистент: Показывает sitemap, его предупреждения и ошибки, затем запрашивает подтверждение перед повторной отправкой.

Вы: Подтверждаю.

Ассистент: Повторно отправляет выбранный sitemap. Он не меняет содержимое страницы и не гарантирует индексацию.

Содержание

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

Нужны Node.js 20+ и Google-аккаунт. Учётные данные при установке не нужны: сервер подключается прямо в диалоге.

  1. Добавьте сервер в AI-приложение.
  2. Скажите «подключи Google Search Console» — ассистент проведёт создание OAuth-клиента и выдачу доступа, не трогая конфиги.
  3. Начните с запроса, который только читает данные.

<<<<<<< Updated upstream В приложении: откройте Settings → MCP servers, нажмите Add server, выберите STDIO, укажите команду npx -y mcp-google-search-console@latest и переменные окружения GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET, GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN, затем нажмите Save, потом Restart. ||||||| Stash base В приложении: откройте Settings → Plugins → MCP servers, выберите Add server, затем добавьте npx -y mcp-google-search-console@latest с GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET и GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN.

В приложении: откройте Settings → Plugins → MCP servers, выберите Add server, затем добавьте npx -y mcp-google-search-console@latest.

Stashed changes

codex mcp add google-search-console \
  -- npx -y mcp-google-search-console@latest
codex mcp list

Документация Codex MCP

claude mcp add \
  --transport stdio --scope user google-search-console \
  -- npx -y mcp-google-search-console@latest
claude mcp list

Документация Claude Code MCP

Актуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.

Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:

{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"]}}}

В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.

Документация Claude Desktop MCP

Добавьте в ~/.cursor/mcp.json на macOS/Linux или %USERPROFILE%\.cursor\mcp.json на Windows:

{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"]}}}

Документация Cursor MCP

Запустите MCP: Open User Configuration и добавьте:

{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"]}}}

Проверьте сервер командой MCP: List Servers. Документация VS Code MCP

Что можно поручить

Найти поисковые возможности

  • Какие запросы и страницы принесли больше всего кликов в этом месяце?
  • Какие страницы потеряли клики по сравнению с прошлым периодом?
  • Покажи запросы с mcp, где средняя позиция ниже 10.

Проверить индексацию и sitemap

  • Проиндексирован ли этот URL? Покажи покрытие, обход и canonical information.
  • В каких отправленных sitemap есть ошибки или предупреждения?
  • Повторно отправь этот sitemap, сначала показав его текущий статус.

Аккуратно управлять свойствами

  • Покажи свойства Search Console, к которым у меня есть доступ.
  • Добавь это точное значение свойства; подтверждение владения я пройду отдельно.
  • Удали это свойство из аккаунта после подтверждения.

Как устроены свойства Search Console

URL-prefix property должен содержать протокол и завершающий слеш: например, https://example.com/. Domain property записывается как sc-domain:example.com. Почти совпадающее значение вернёт 403 или 404, поэтому используйте точное значение от list_sites.

add_site только регистрирует свойство. Подтверждение владения остаётся в интерфейсе Search Console или Site Verification API. Поисковые данные используют тихоокеанское время; end_date включительно, а финальные данные обычно отстают на два–три дня. data_state: "all" может включить более свежие, но меняющиеся строки.

Что может измениться

| Операция | Что происходит | Граница подтверждения | |---|---|---| | Просмотр свойств, аналитики, sitemap и статуса URL | Читает данные Search Console | Ничего не меняет | | Добавление свойства | Добавляет запись свойства, но не подтверждает его | Меняет доступ аккаунта | | Отправка или повторная отправка sitemap | Запрашивает обработку sitemap | Меняет состояние Search Console | | Удаление свойства | Отвязывает свойство от аккаунта; данные Google не удаляются | Разрушительно | | Удаление sitemap | Удаляет отправленный sitemap | Разрушительно | | Технический запрос API | Может вызвать endpoint записи или удаления | Потенциально разрушительно |

Как AI-приложение спрашивает подтверждение, определяет само приложение. Сервер помечает чтение, запись и удаление, чтобы оно отличило проверку от изменения.

Как получить доступ

Google Search Console требует OAuth 2.0: одного API-ключа недостаточно. Путей два, и первый не требует править конфигурационные файлы.

Подключение из диалога (рекомендуемый путь)

Скажите «подключи Google Search Console», и ассистент пройдёт флоу вместе с вами:

  1. setup_instructions выдаёт чек-лист: создать или выбрать проект Google Cloud, включить Google Search Console API, настроить consent screen и создать OAuth-клиент типа Desktop app.
  2. Скачайте JSON этого клиента («Download JSON») и передайте ассистенту путь к файлу — set_client сохранит его с правами только для владельца. Секрет через переписку не проходит.
  3. start_login возвращает ссылку на согласие Google. Откройте её на этой же машине и подтвердите доступ: код возвращается на одноразовый слушатель 127.0.0.1 (PKCE), а не в чат.
  4. finish_login меняет код на токены и кладёт их в ~/.config/mcp-google-search-console/credentials.json (права 0600) и проверяет их реальным вызовом Google Search Console API — так невключённый API ловится сразу.

Токены перечитываются на каждый вызов, поэтому подключение действует немедленно — перезапускать AI-приложение не нужно. auth_status показывает состояние, logout отзывает токен и удаляет его.

Переменные окружения (CI и автоматические установки)

  1. Создайте или выберите проект Google Cloud и включите Google Search Console API.
  2. Настройте OAuth consent screen и создайте OAuth-клиент типа Desktop app.
  3. Через OAuth 2.0 Playground с включённым Use your own OAuth credentials авторизуйте Google-аккаунт с доступом к свойствам и получите refresh token.
  4. Используйте https://www.googleapis.com/auth/webmasters для sitemap и изменения свойств. https://www.googleapis.com/auth/webmasters.readonly подходит, только если нужен намеренно read-only доступ.

Refresh token OAuth-приложения в режиме Testing может истечь через семь дней. Для долгого доступа опубликуйте приложение или используйте Internal-приложение Workspace. Храните client secret и refresh token как пароли.

Конфигурация

Все переменные необязательные — без единой из них сервер подключается из диалога.

| Переменная | Обязательна | Описание | |---|---|---| | GOOGLE_SEARCH_CONSOLE_CLIENT_ID | Нет* | OAuth client ID. | | GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET | Нет* | OAuth client secret. | | GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN | Нет* | OAuth refresh token. | | GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN | Нет* | Короткоживущая альтернатива OAuth-тройке. | | GOOGLE_SEARCH_CONSOLE_OAUTH_PORT | Нет | Фиксированный порт loopback-слушателя для входа из диалога; нужен при пробросе портов по SSH. | | GOOGLE_SEARCH_CONSOLE_API_BASE | Нет | Переопределяет базовый URL API. | | GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS | Нет | Тайм-аут запроса; по умолчанию 60000 мс. | | GOOGLE_SEARCH_CONSOLE_MAX_RETRIES | Нет | Повторы временных ошибок; по умолчанию 3. |

* Передайте OAuth-тройку или access token.

Данные, лимиты и работа в фоне

  • Приватность. Локальный сервер вызывает Google и отправляет анонимную телеметрию с ID установки, версиями и именами инструментов — но не OAuth-токены, данные свойств, аргументы или промпты. Чтобы отключить её, задайте ASKADS_TELEMETRY=0.
  • Лимиты API. URL inspection разрешает 2 000 проверок на свойство в сутки и 600 в минуту. Analytics возвращает максимум 25 000 строк за вызов; анонимизированные long-tail запросы никогда не возвращаются. Используйте пагинацию и не проверяйте сайт URL за URL.
  • Постоянного наблюдения нет. Сервер работает только при вызове. Если AI-приложение поддерживает задания по расписанию, оно может периодически проверять sitemap или важный URL.

Техническая документация

Поддержка

Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.