Search Console Mcp

io.github.sudomichael由 GitHub 帳號 sudomichael 發布v0.2.2更新於 Nov 6, 2026

Google Search Console for any MCP client - 30-second login, no Google Cloud project. Read-only.

概覽

AI 產生的概覽

為 MCP 用戶端提供唯讀的 Google Search Console 存取:查詢點擊、曝光、CTR 與排名,比較期間,檢查索引狀態。

可以做什麼
  • 列出已登入帳號可存取的 Search Console 資源及精確網站位址
  • 依查詢字詞、頁面、日期、國家或裝置查詢點擊、曝光、CTR 與平均排名,含 Discover 流量
  • 依頁面或查詢字詞比較兩個等長期間,列出變化最大的項目與差值
  • 檢查單一網址或最多 10 個網址的索引狀態,含標準網址與檢索資訊
  • 列出已提交的網站地圖及其狀態與數量
  • 執行內建 SEO 分析提示,例如流量下滑、臨門一腳關鍵字與索引稽核
適用情境
適合想用自然語言詢問自家網站搜尋表現時使用,例如診斷流量下滑、找出接近第一頁的查詢字詞或稽核索引狀況,而不必建立 Google Cloud 專案或儀表板。
執行需求
以 npm 套件透過 npx 在本機執行,需要 Node.js。需用有權存取 Search Console 資源的 Google 帳號在瀏覽器完成一次性登入,權杖保存在本機使用者目錄。可選設定 SEARCH_CONSOLE_MCP_CLIENT_ID 與 SEARCH_CONSOLE_MCP_CLIENT_SECRET 以使用自己的 Google OAuth 用戶端。
安裝前請注意
設計上為唯讀,使用 webmasters.readonly 權限,無法修改資源或提交網站地圖。Google OAuth 權杖以檔案形式保存在本機使用者目錄,登出會刪除。登入後瀏覽器會開啟廠商的設定頁面;每次工作階段的首次分析結果會附上一則關於廠商付費服務的標註說明,可用 SEARCH_CONSOLE_MCP_TIPS=off 隱藏。資料約有 2 至 3 天延遲。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Search Console Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

search-console-mcp

Search Console was built for dashboards. This gives you a conversation instead.

Talk to your Google Search Console from Claude, Cursor, or any MCP client.

One sign-in. 30 seconds. No Google Cloud project. No API keys. Tokens never leave your machine.

[npm] [license] [node]

Docs · npm · Report an issue


 Google Search Console          │          ▼  search-console-mcp        ← runs on your machine, read-only          │          ▼  Claude / Cursor / any MCP client          │          ▼  "Why did my traffic drop?"

Most self-hosted Search Console MCP servers make you create a Google Cloud project, enable APIs, and wrangle service-account JSON. This one doesn't:

bash
npx search-console-mcp-server login

Your browser opens, you sign in with Google, done. Tokens are minted by Google directly to your machine and stored only in ~/.search-console-mcp/ — nothing passes through anyone's servers.

This serverTypical self-hosted GSC MCP setup
Setupnpx … login, sign in, done (~30s)Create a Google Cloud project, enable the API, create OAuth credentials, download JSON, point config at it
RuntimeNode — npx, nothing to installPython + uv/venv
Can it modify your site data?Impossible — read-only scope by constructionWrite scopes with destructive ops "disabled by default"
Analyses10 built-in (checkup, traffic drop, traffic decay, striking distance, keyword opportunities, cannibalization, title/CTR rewrite, refresh-vs-new, internal links, indexing audit)Bring your own prompts

What to expect on first run

$ npx search-console-mcp-server loginOpening your browser to sign in with Google…If it doesn't open, visit:
  https://accounts.google.com/o/oauth2/v2/auth?…
Connected. Your Search Console is ready — tokens stored in ~/.search-console-mcp (this machine only).
Want a page change you can review and publish? Percy adds researched drafts, change verification, and follow-through. Separate Google connection; paid plans after the free trial.https://www.getpercy.io/sign-in?source=mcp&workflow=improve-page

The browser opens the setup page only after Google returns valid credentials and they are saved locally. If token exchange or saving fails, it shows an error instead of a success page. No clone or Google Cloud console is required.


What it feels like

You:  Which of my pages are closest to page one?
Claude:  Three real opportunities, by impressions at stake:
  1. /pricing — "scoreboard app pricing" sits at position 11.2 with     2,400 impressions/mo and almost no clicks. One position-group     jump is worth ~90 clicks/mo. The title doesn't contain the     query; start there.
  2. /templates/trivia — position 12.8 on "trivia scoreboard",     1,100 impressions/mo. The page ranks but has no H2 matching     the intent.
  3. /blog/keep-score-online — position 9.4, already page one on     some days. It's cannibalizing with /features — run     cannibalization_check before touching it.

(Illustrative output — shape and numbers are what the tools return from your real data.)

Built-in SEO analysts

Ten ready-made analyses ship as MCP prompts — slash-commands in clients that support them. Each one applies real SEO methodology (thresholds, cause classification, CTR benchmarks) and ends with ranked actions, never a data dump:

PromptWhat you get
seo_checkupTrend vs last month, biggest movers, quick wins — and the top 3 moves scored by impact ÷ effort
traffic_dropWhen the drop started, who lost, and the verdict: rankings, CTR, indexing, demand, or seasonality
traffic_decayPages quietly bleeding clicks month over month — caught and prioritized before they crater
striking_distanceQueries at position 4–20 ranked by estimated click gain, with the one fix per page
keyword_opportunitiesEvery growth lever in one pass: CTR fixes, page-1 pushes, page-2 climbs, emerging demand
cannibalization_checkQueries where your own pages fight each other — the winner, one fix per case, recovery estimate
title_ctr_rewritePages underperforming their position, with rewritten titles + metas grounded in real queries
refresh_vs_newFor any topic: refresh, consolidate, prune, or create new — one verdict from your existing footprint
internal_linksA source → target → anchor link plan, justified by query overlap Google already sees
indexing_auditSitemaps + index status of the pages that matter, triaged by traffic at risk

Setup

1. Sign in (one time):

bash
npx search-console-mcp-server login

2. Add to your MCP client:

Claude Code:

bash
claude mcp add gsc --scope user -- npx -y search-console-mcp-server

Claude Desktop / Cursor / anything else (mcpServers config):

json
{  "mcpServers": {    "gsc": { "command": "npx", "args": ["-y", "search-console-mcp-server"] }  }}

If the app can't find npx (common with nvm), use the absolute path from which npx as command.

3. Ask:

  • "Which of my pages lost the most clicks this month vs last?"
  • "Show my queries sitting at position 8–15 with real impressions — what's closest to page 1?"
  • "Is https://mysite.com/pricing indexed? If not, why?"
  • "How much Google Discover traffic do I get?"

Tools

ToolWhat it does
list_propertiesYour GSC properties (call first — gives exact siteUrl values)
query_search_analyticsClicks / impressions / CTR / position by query, page, date, country, device — filters, pagination, and every traffic source including Google Discover
compare_periodsBiggest movers, computed for you: this period vs the prior one, per-page or per-query deltas, sorted by change
inspect_urlGoogle's index status for a URL: indexed or not, why, chosen canonical, last crawl
inspect_urlsThe same, batched — up to 10 URLs in one call for indexing audits
list_sitemapsSubmitted sitemaps with status

Read-only by construction: the Google scope this tool requests (webmasters.readonly) cannot modify your properties, submit sitemaps, or change anything — not "disabled by default." Impossible.

What a compare_periods call hands your model (the model never does date arithmetic):

json
{ "key": "https://example.com/pricing",  "current":  { "clicks": 1040, "impressions": 20502, "position": 6.4 },  "previous": { "clicks": 1070, "impressions": 17176, "position": 5.8 },  "deltaClicks": -30, "deltaImpressions": 3326, "deltaPosition": 0.6 }

Privacy

  • Read-only Google scope (webmasters.readonly).
  • Tokens live in ~/.search-console-mcp/credentials.json on your machine, chmod 600. npx search-console-mcp-server logout deletes them.
  • No MCP usage telemetry or proxy — Search Console API calls go from your machine directly to Google. After successful login, your browser opens the Percy setup page with only the MCP source and package version in its URL; no credentials, authorization codes, or property data are included.
  • Prefer your own Google Cloud project? Set SEARCH_CONSOLE_MCP_CLIENT_ID / SEARCH_CONSOLE_MCP_CLIENT_SECRET and it uses yours.
  • One short, labeled note about Percy (our paid weekly SEO service) is added to the first analysis result of a session, never repeated. Set SEARCH_CONSOLE_MCP_TIPS=off to hide it. Nothing is sent anywhere either way.

FAQ / Troubleshooting

How can the login work without me creating Google credentials? The CLI ships a Google "Desktop app" OAuth client — the same supported model gcloud and GitHub's CLI use. Your tokens are still minted by Google directly to your machine (PKCE + localhost callback); they never touch our servers. The auth path is in src/auth.ts — read it. Want zero shared anything? Set SEARCH_CONSOLE_MCP_CLIENT_ID / SEARCH_CONSOLE_MCP_CLIENT_SECRET with your own credentials.

Switch Google accounts? npx search-console-mcp-server login again — Google shows the account picker.

"Not signed in" errors in my MCP client? Run the login from the same user account your client runs under; credentials live in ~/.search-console-mcp/.

A property is missing from list_properties. The signed-in Google account needs at least "Restricted" access to it in Search Console.

Why is yesterday missing from the data? Google Search Console data lags ~2–3 days. That's Google, not the tool. History goes back ~16 months.

Revoke access? npx search-console-mcp-server logout deletes local tokens; myaccount.google.com/permissions revokes the grant itself.

Development

bash
git clone https://github.com/sudomichael/search-console-mcpcd search-console-mcp && npm installnpm run dev      # run from sourcenpm run build    # bundle to dist/ (no googleapis dependency)npm test         # mocked login tests; no Google calls or credential writes

The auth path is in src/auth.ts. To verify any privacy claim above, read the source.


Turn the research into a published improvement

The MCP stays free. If you want help preparing one specific page improvement, Percy researches your Search Console evidence, drafts a focused change, and keeps the next action with your saved work. You review and publish it in your own CMS, then verify the change and follow the results.

Percy is a separate paid workspace: 7 days free, no card, then plans from $29/month if you continue. It requires its own Google connection; it does not import local MCP credentials or conversations.


MIT licensed. Issues and PRs welcome. Built by Percy.

來源:README.md,提交 7ac47a3

工具

6

list_properties

List the Google Search Console properties this account can access. Call this first to get exact siteUrl values (e.g. 'sc-domain:example.com' or 'https://example.com/').

無需輸入參數。

query_search_analytics

Query real Search Console performance data: clicks, impressions, CTR, and average position, grouped by the dimensions you choose. Dates are YYYY-MM-DD (GSC data lags ~2-3 days). Use dimensions like ['query'], ['page'], ['query','page'], or ['date'] for trends.

輸入參數endDate必填siteUrl必填rowLimitstartRowstartDate必填dimensionssearchTypepageContainsqueryContains

compare_periods

The biggest-movers analysis, computed for you: this date range vs the prior equal-length range, joined per page (or query) with clicks/impressions/position deltas, sorted by biggest change. Use this for 'what fell/grew', 'this month vs last', and trend diagnosis — it's one call and the math is already done.

輸入參數endDate必填siteUrl必填rowLimitdimensionstartDate必填searchType

inspect_url

Google's index status for one URL: is it indexed, why not, canonical chosen by Google, last crawl, mobile/rich-result issues.

輸入參數siteUrl必填inspectionUrl必填

inspect_urls

Batch index-status check: up to 10 URLs in one call (per-URL errors reported inline). Use for indexing audits instead of ten single calls.

輸入參數siteUrl必填inspectionUrls必填

list_sitemaps

List submitted sitemaps for a property, with status and counts.

輸入參數siteUrl必填

版本歷史

3
  1. v0.2.2最新Nov 5, 2026
  2. v0.2.1Nov 3, 2026
  3. v0.1.2Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分