Перайсці да змесціва

Google Search Console MCP: як я падключыў GSC да Claude

У верасні 2026 года я падключыў Google Search Console свайго сайта да Claude праз MCP-сервер. Нагода была цалкам празаічная: у індэксе віселі смеццевыя адрасы, а высвятляць уручную, адкуль яны ўзяліся, не хацелася. Ніжэй увесь шлях — ад выбару спосабу аўтарызацыі праз дзве памылкі, якія давялося выпраўляць па дарозе, да таго, што знайшлося на жывым сайце.

Гэта не падборка «лепшых MCP-сервераў». Адзін сервер, адзін рабочы камп'ютар на Windows, сайт на чатырох мовах — і шчырыя ўражанні пасля першых дзён працы.


Search Console, MCP-сервер і ШІ-памочнік, злучаныя ў ланцужок на экране камп'ютара

MCP-сервер простымі словамі

MCP (Model Context Protocol) — адкрыты пратакол, праз які ШІ-памочнік выклікае знешнія інструменты. MCP-сервер — праграма-пасярэднік: з аднаго боку яна размаўляе з памочнікам, з другога — звяртаецца да API патрэбнага сэрвісу. У выпадку Search Console гэта значыць, што Claude сам запытвае справаздачу па запытах, правярае URL ці параўноўвае перыяды, а не просіць мяне выгрузіць CSV і ўставіць яго ў чат.

Сервер запускаецца лакальна, на тым жа камп'ютары, дзе працуе Claude Desktop або Claude Code, і абменьваецца з памочнікам данымі праз стандартны ўвод-вывад. Асобны хостынг для гэтага не патрэбны.

Які сервер я выбраў і што праверыў да ўстаноўкі

Я ўзяў Google Search Console MCP — Python-пакет gsc-mcp-tools. Вырашылі тры рэчы:

  • Ахоп. 61 інструмент: справаздачы Search Analytics, праверка URL, карты сайта, Indexing API, а зверху — GA4, даныя CrUX, PageSpeed і аўдыты разметкі, hreflang, загалоўкаў і ўнутраных спасылак.
  • Сэрвісны акаўнт. Можна абысціся без уваходу праз браўзер — для лакальнага сервера, які працуе тыднямі, гэта зручней.
  • Кансольны кліент у камплекце. Кожны інструмент даступны яшчэ і як каманда gsc-cli. Гэта спатрэбілася, калі Claude яшчэ не бачыў новы сервер.

Перад устаноўкай я прайшоўся па тым, што правяраю ў любога MCP-сервера: ці адкрыты код, якая ліцэнзія, якія залежнасці і куды праграма звяртаецца ў сеціве. Ліцэнзія MIT, запыты ідуць толькі ў API Google, у IndexNow і на старонкі сайта, які правяраецца, а токены захоўваюцца ў лакальных файлах. Чаму такую праверку не варта прапускаць, я разбіраў у артыкуле пра бяспеку ШІ-інструментаў.

Крок 1. Аўтарызацыя: сэрвісны акаўнт замест OAuth

У пакета два рэжымы. OAuth — звыклы ўваход праз браўзер пад сваім акаўнтам Google. Сэрвісны акаўнт — тэхнічны карыстальнік праекта Google Cloud з JSON-ключом: нікуды ўваходзіць не трэба, і сервер не залежыць ад тэрміну дзеяння OAuth-токенаў. Для лакальнага сервера я выбраў другое.

  1. У праекце Google Cloud уключыць Google Search Console API. Для адпраўкі URL і даных GA4 — яшчэ Web Search Indexing API і Google Analytics Data API.
  2. Стварыць сэрвісны акаўнт і спампаваць JSON-ключ.
  3. Выдаць доступ у самой Search Console: Налады → Карыстальнікі і дазволы → Дадаць карыстальніка, пазначыць адрас сэрвіснага акаўнта.

Галоўная неачавіднасць — трэці пункт. Ролі ў Google Cloud на Search Console не ўплываюць: пакуль адрас не дададзены ў карыстальнікі рэсурсу, любы выклік вяртае 403 пры ідэальна правільным ключы. API для гэтага кроку няма — толькі форма ў інтэрфейсе, рукамі ўладальніка сайта.

Узровень доступу я даў «Поўны»: яго хапае на чытанне справаздач і праверку URL. «Уладальнік» патрэбны толькі для Indexing API, і выдаваць яго без патрэбы не варта.

Час зэканоміла тое, што сэрвісны акаўнт у мяне ўжо быў — ствараў яго раней для Google Analytics. Адзін акаўнт можна выкарыстоўваць у некалькіх прадуктах Google, доступ у кожным выдаецца асобна. Ключ я трымаю па-за воблачнымі папкамі, якія сінхранізуюцца: па сутнасці гэта пароль да даных.

Крок 2. Устаноўка — і першая яма: скончылася месца

Стаўлю праз pipx, каб пакет жыў у ізаляваным асяроддзі:

python -m pipx install gsc-mcp-tools

Устаноўка ўпала з памылкай No space left on device. Сістэмны дыск C: аказаўся забіты амаль цалкам — вольна каля 200 МБ, а pipx па змаўчанні стварае асяроддзе менавіта там. Лечыцца пераносам каталогаў pipx на іншы дыск перад устаноўкай:

$env:PIPX_HOME = "D:\pipx"
$env:PIPX_BIN_DIR = "D:\pipx\bin"
python -m pipx install gsc-mcp-tools

Асяроддзе заняло каля 270 МБ. У каталогу bin з'явіліся тры праграмы: gsc-mcp — сам сервер, gsc-mcp-tools — ён жа пад імем пакета і gsc-cli — кансольны кліент.

Крок 3. Рэгістрацыя ў Claude Code

Ключ перадаецца праз пераменныя асяроддзя. У PowerShell:

$k = "C:\keys\gsc.json"
claude mcp add gsc -s user `
  -e GSC_SKIP_OAUTH=true `
  -e "GSC_SERVICE_ACCOUNT_PATH=$k" `
  -- D:\pipx\bin\gsc-mcp.exe

Сцяг -s user кладзе запіс у карыстальніцкую канфігурацыю, а не ў файл праекта. Для мяне гэта важна: папка праекта сінхранізуецца з воблакам, і шлях да ключа там свяціць няма чаго. Для інструментаў GA4 у тую ж каманду дадаецца -e GA4_PROPERTY_ID=….

claude mcp list

Насупраць gsc з'явілася «Connected». І другая неачавіднасць: у ўжо адкрытай сесіі новых інструментаў няма. Спіс падхопліваецца пры запуску сесіі, таму пасля дадання сервера яе трэба адкрыць нанова. Да таго ж «Connected» азначае толькі тое, што працэс стартуе і адказвае на поціск рукі, — а не тое, што правы ў Search Console выдадзены.

Крок 4. Праверка без Claude — і памылка ў кліенце

Каб не чакаць новай сесіі, я вырашыў праверыць доступ кансольным кліентам з таго ж пакета:

gsc-cli list

Ён упаў яшчэ да звароту да Google: ValueError: badly formed help string. Трасіроўка паказала, што кліент бярэ першы радок апісання кожнага інструмента і перадае яго ў argparse як тэкст даведкі. У адным з апісанняў ёсць знак %, а свежы argparse (у мяне Python 3.14) правярае такія радкі адразу пры стварэнні каманд і прымае працэнт за пачатак шаблону фарматавання.

Дапамагла адна праўка ў gsc_mcp/cli.py — экранаваць працэнт перад перадачай:

help=help_text.replace("%", "%%")

На сам MCP-сервер гэта не ўплывае, ламаўся толькі кліент. Але праўка жыве ва ўсталяваным пакеце і знікне пры абнаўленні — такое лепш адпраўляць аўтару.

Яшчэ дэталь: параметры-спісы перадаюцца паўторам сцяга, а не праз коску. Радок праз коску памылкі не выклікае — ён моўчкі ператвараецца ў адзін «адрас»:

gsc-cli batch-url-inspection `
  --site https://example.com/ `
  --urls https://example.com/a `
  --urls https://example.com/b

Пасля праўкі каманда gsc-cli list-properties вярнула мой сайт з узроўнем siteFullUser — доступ працуе.

Што знайшлося на жывым сайце

Смеццевыя адрасы. Google усё яшчэ трымаў восем лішніх URL: /ru?Itemid=232 і суседнія — рэшткі даўно выдаленых пунктаў меню, і два старыя адрасы выгляду /ru/component/content/article/2-…?catid=14 у двух даўно знятых з публікацыі артыкулаў 2019 і 2021 гадоў. Усе восем цяпер аддаюць 410 Gone.

Са старымі адрасамі выйшла павучальная гісторыя. Правіла перанакіравання на зыходны адрас не спрацоўвала ўвогуле. Аказалася, Joomla сама перахоплівае стары фармат /component/content/article/… і аддае 301 на прамежкавы ?view=article&id=… — і толькі гэты другі адрас насамрэч адказвае 404. Правіла давялося вешаць на яго. Заадно знайшлася памылка ў MCP-канектары для Joomla: інструмент стварэння перанакіраванняў запісваў код адказу не ў тое поле.

Праверка URL. Для такіх адрасоў з параметрамі інструмент праверкі вярнуў NEUTRAL і пустыя палі. Гэта не памылка выкліку: у Google проста няма асобных даных праверкі па гэтых URL. Пакет жа ставіць ім катэгорыю fetch_error — цэтлік уводзіць у зман, глядзець варта на самі палі. Для звычайнай старонкі той жа інструмент аддаў «PASS», дату апошняга абыходу і кананічны адрас.

Хуткія перамогі. Інструмент quick_wins паказаў, што галоўная старонка ў сярэднім на 8-й пазіцыі, але за чатыры тыдні пры 295 паказах атрымала адзін клік. Чаканая клікабельнасць для такой пазіцыі — каля 3 %, фактычная — 0,3 %. Бліжэйшая задача відавочная: загаловак і апісанне ў выніках пошуку.

Што аказалася карысным, а што не

  • Працуе адразу: параўнанне перыядаў, пошук запытаў, што праселі, хуткія перамогі, пакетная праверка URL, аўдыт карты сайта, тэхнічны аўдыт старонкі. Адказ прыходзіць за секунды, і Claude сам выбірае, які інструмент выклікаць пад пытанне.
  • Патрабуе падрыхтоўкі: інструментам GA4 патрэбны доступ сэрвіснага акаўнта ў Google Analytics, даным CrUX — асобны API-ключ і дастатковы трафік.
  • З агаворкамі: Indexing API афіцыйна прызначаны толькі для старонак з вакансіямі і трансляцыямі, а квота — 200 запытаў за суткі. Для звычайных старонак разлічваць на яго не варта.
  • Памятаць заўсёды: даныя Search Console адстаюць на 2–3 дні, а ў невялікага сайта іх проста мала.

Кароткі чэк-ліст

  1. Уключыць Google Search Console API у праекце Google Cloud.
  2. Стварыць сэрвісны акаўнт, спампаваць JSON-ключ і захоўваць яго па-за воблачнымі папкамі.
  3. Дадаць адрас акаўнта ў Search Console з узроўнем «Поўны».
  4. Паставіць gsc-mcp-tools праз pipx; калі не хапае месца, перанесці PIPX_HOME.
  5. Зарэгістраваць сервер праз claude mcp add у карыстальніцкай вобласці.
  6. Праверыць доступ камандай gsc-cli list-properties і адкрыць новую сесію Claude.

Калі праходзіць гэты шлях самому не хочацца, мы можам падключыць Google Search Console да ШІ-памочніка за вас — на вашым камп'ютары ці ў вашым воблаку.

Victor Parhimchik, заснавальнік вэб-студыі IT Deweloper