Google Search Console

io.github.PixFrixSystems由 GitHub 帳號 PixFrixSystems 發布v0.1.0更新於 Nov 14, 2026

Google Search Console data and SEO analysis: performance, quick wins, indexing and sitemaps.

概覽

AI 產生的概覽

將 AI 助理連接到 Google Search Console,取得搜尋成效、索引與網站地圖資料,並附帶內建 SEO 分析。

可以做什麼
  • 列出資源並取得成效總覽、自訂搜尋分析查詢、期間比較、流量異常與品牌流量拆分
  • 找出優化機會:快速提升關鍵字、低點擊率頁面、關鍵字自我競爭、下滑頁面、內容缺口及單一 URL 分析
  • 檢查索引與網站地圖:檢查單一或最多 50 個 URL、稽核網站地圖索引狀況、列出網站地圖
  • 在明確開啟寫入後可提交或移除網站地圖
  • 執行六個預設提示工作流程,例如每週 SEO 報告、流量下滑診斷與內容更新計畫
適用情境
適合對自己在 Search Console 中擁有的網站進行 SEO 工作:診斷流量變化、排出優先改善的關鍵字與頁面、檢查索引與網站地圖健康度。適合代理商、企業內部 SEO 或希望直接取得分析而非原始匯出的開發者。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 22 或更新版本。需要可存取目標 Search Console 資源的 Google 帳號,並提供服務帳戶 JSON 金鑰(路徑放在 GSC_SERVICE_ACCOUNT_KEY,或金鑰本身放在 GSC_SERVICE_ACCOUNT_JSON),或使用 OAuth 桌面用戶端登入。需在 Google Cloud 中啟用 Google Search Console API,並需要連線至 Google API 的網路。
安裝前請注意
服務帳戶 JSON 金鑰屬於憑證,請勿放入共用設定或對話中。預設為唯讀;設定 GSC_ALLOW_WRITE=true 會啟用網站地圖提交與移除,並要求讀寫權限範圍。回傳的搜尋資料會成為與助理對話的一部分,受該助理的隱私條款約束。瀏覽器登入會以更新權杖形式存放在 GSC_CONFIG_DIR,可用 auth logout 刪除。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

Search Console MCP

[npm] [CI] [License: MIT]

An MCP server that connects Claude, Cursor and other AI assistants to Google Search Console.

It gives the assistant the raw data (search performance, URL inspection, sitemaps) and does the analysis on top: which keywords are one push from page one, which pages rank but are not clicked, which pages compete with each other, what lost traffic and why, and how much of your sitemap is indexed.

It runs on your machine, talks only to Google's API, and is read-only unless you switch writing on.

What you can ask

  • "How did organic search do in the last 28 days compared with the month before?"
  • "Which keywords are we close to ranking on page one for?"
  • "Which pages rank in the top 10 but hardly get clicked? Suggest better titles."
  • "Traffic dropped last week. What happened?"
  • "Are any of our pages competing for the same keyword?"
  • "Is https://example.com/pricing indexed? If not, why not?"
  • "How much of our sitemap is indexed, and what is wrong with the rest?"
  • "Pick the five blog posts most worth refreshing and write a brief for each."

What to use it for goes through each of these: what runs, what comes back and what to do with it.

Why this one

  • It analyses, not only fetches. The opportunity tools return a ranked list of things to act on, with the numbers behind each.
  • Estimates come from your own site. Expected click-through is measured on your data, not taken from a generic table.
  • It says what the numbers do not show. Row caps, samples, hidden queries, incomplete days and empty comparison periods are stated in every result.
  • Forgiving inputs. Say example.com or paste a page URL. Leave out the dates and you get the last 28 complete days.
  • Read-only by default, with errors that tell you how to fix them and a doctor command that checks the setup.

Quick start

You need Node.js 22 or newer and a Google account with access to the Search Console properties you want to use.

1. Get Google credentials

Both ways are free. The authentication guide has every click.

Service accountYour own Google account (OAuth)
Best forAgencies, servers, automationOne person with many properties
SeesOnly properties you add it toEverything your account can see
SetupCreate a key, add its email as a user on each propertyCreate a "Desktop app" client, sign in once in the browser

Service account: in Google Cloud enable the Google Search Console API, create a service account, download a JSON key, then in Search Console add the service account's email under Settings > Users and permissions for each property.

Your own account: in Google Cloud enable the Google Search Console API, create an OAuth client of type Desktop app, download its JSON, then run:

bash
GSC_OAUTH_CLIENT_FILE=/path/to/client_secret.json npx -y @pixfrix/search-console-mcp auth login

2. Add the server to your assistant

Claude Code
bash
claude mcp add search-console \  --env GSC_SERVICE_ACCOUNT_KEY=/path/to/service-account.json \  -- npx -y @pixfrix/search-console-mcp

If you signed in with auth login, leave out the --env line.

Claude Desktop

Open Settings > Developer > Edit Config and add:

json
{  "mcpServers": {    "search-console": {      "command": "npx",      "args": ["-y", "@pixfrix/search-console-mcp"],      "env": {        "GSC_SERVICE_ACCOUNT_KEY": "/path/to/service-account.json"      }    }  }}

Restart Claude Desktop afterwards.

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

json
{  "mcpServers": {    "search-console": {      "command": "npx",      "args": ["-y", "@pixfrix/search-console-mcp"],      "env": {        "GSC_SERVICE_ACCOUNT_KEY": "/path/to/service-account.json"      }    }  }}
VS Code

Add to .vscode/mcp.json:

json
{  "servers": {    "search-console": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@pixfrix/search-console-mcp"],      "env": {        "GSC_SERVICE_ACCOUNT_KEY": "/path/to/service-account.json"      }    }  }}
Any other MCP client

The server speaks MCP over stdio. Run npx -y @pixfrix/search-console-mcp as the command and pass the environment variables from Configuration.

On Windows, use forward slashes or doubled backslashes in JSON paths (C:/keys/gsc.json). If your client cannot start npx directly, use "command": "cmd" with "args": ["/c", "npx", "-y", "@pixfrix/search-console-mcp"].

3. Check that it works

bash
GSC_SERVICE_ACCOUNT_KEY=/path/to/service-account.json npx -y @pixfrix/search-console-mcp doctor
[ ok ] Credentials: service account ([email protected])[ ok ] Google sign-in[ ok ] Search Console API[ ok ] Properties (2):         sc-domain:example.com  [siteFullUser]         https://shop.example.com/  [siteRestrictedUser]

If a step fails, doctor says what to change. Then ask your assistant: "List my Search Console properties."

Documentation

GuideWhat is in it
What to use it forEach job with the question to ask, what comes back and what to do next
How it worksWhere the numbers come from, the rules behind each analysis, limits and safety
AuthenticationService account and browser sign-in, step by step
Tool referenceEvery tool and parameter

Tools

Performance

ToolWhat it answers
list_sitesWhich properties can this account read?
get_performance_overviewHow is the site doing? Totals against a comparison period, the trend, and the top queries, pages, countries, devices and search appearances, in one call
search_analyticsAny custom question: every dimension (including hourly data), regex filters, every search type, paging to any depth, sorting by any metric
compare_periodsWhat changed? Gainers, decliners, new and lost rows against the previous period, the previous year or a custom range
detect_traffic_anomaliesDid traffic drop or spike, and was it one day or a lasting shift?
get_brand_splitHow much of the traffic is people searching for the brand, and how is the rest doing?

Opportunities

ToolWhat it answers
find_quick_winsWhich keywords rank just below the top results and would pay off fastest?
find_ctr_opportunitiesWhich results rank well but get clicked far less than their position should earn?
find_keyword_cannibalizationWhich queries are split between several of my pages?
find_declining_pagesWhich pages or queries lost the most clicks, and was it rankings, impressions or click-through?
find_content_gapsWhere does the site show up without a page that serves the search, and which questions are people asking?
analyze_pageEverything about one URL: its queries, which to target, devices, countries, trend and index status

Indexing and sitemaps

ToolWhat it answers
inspect_urlIs this URL indexed, and if not, why?
inspect_urlsThe same for up to 50 URLs, as one table
audit_sitemap_indexingHow much of my sitemap is indexed, and what is wrong with the rest?
list_sitemapsWhich sitemaps are submitted, when were they last read, and do they have errors?
submit_sitemapSubmit or resubmit a sitemap. Only with GSC_ALLOW_WRITE=true
delete_sitemapRemove a sitemap from Search Console. Only with GSC_ALLOW_WRITE=true

Prompts

Clients that support MCP prompts (Claude Desktop and Claude Code show them as slash commands) get six ready-made workflows:

PromptWhat it produces
seo_weekly_reportWhat moved in the last seven days and why
seo_opportunity_auditA prioritised action plan across every opportunity tool
diagnose_traffic_dropWhen a drop started, where it is concentrated and the likely cause
content_refresh_planThe existing pages most worth updating, with what to change
indexing_health_checkSitemap and indexing problems, by importance
optimize_pageA data-backed brief for one URL

Configuration

Everything is set through environment variables. Only credentials are required.

VariablePurpose
GSC_SERVICE_ACCOUNT_KEYPath to a service account JSON key
GSC_SERVICE_ACCOUNT_JSONThe key itself as a JSON string, for hosts without a file system
GOOGLE_APPLICATION_CREDENTIALSGoogle's standard variable, honoured when the two above are not set
GSC_OAUTH_CLIENT_FILEPath to an OAuth "Desktop app" client secret file, used by auth login
GSC_SITE_URLDefault property, so you do not have to name it. Example: sc-domain:example.com
GSC_BRAND_TERMSComma-separated brand names, to keep brand searches out of opportunity lists and to split branded from non-branded traffic
GSC_ALLOW_WRITEtrue enables submit_sitemap and delete_sitemap and requests the read/write scope
GSC_CONFIG_DIRWhere the saved sign-in lives. Default: ~/.config/search-console-mcp, or %APPDATA%\search-console-mcp on Windows

Credentials are looked up in this order: GSC_SERVICE_ACCOUNT_JSON, GSC_SERVICE_ACCOUNT_KEY, GOOGLE_APPLICATION_CREDENTIALS, a saved auth login, then Google's Application Default Credentials.

search-console-mcp                 Start the MCP server (what your client runs)search-console-mcp doctor          Check credentials and list the properties you can readsearch-console-mcp auth login      Sign in with your own Google account (--write for sitemap changes)search-console-mcp auth logout     Forget the saved sign-in

Troubleshooting

Run doctor first: it tests credentials, sign-in, API access and property permissions in order and explains the first failure.

SymptomCause and fix
"The signed-in account cannot read this property"The account is not a user of the property. In Search Console open Settings > Users and permissions and add it. For a service account, add its client_email
"Enable the Google Search Console API"The API is off in your Google Cloud project. Enable it under APIs & Services > Library
Sign-in expires every weekYour OAuth consent screen is in Testing. Publish it under Google Auth Platform > Audience
"No Search Console property matches"Call list_sites, or pass the bare domain and let the server match it
No data for a pageSearch Console matches page URLs exactly, including www and the trailing slash. Use a contains filter to find the form it reports
Rows by query do not add up to the totalExpected. Google hides rare queries for privacy
Numbers differ from the Search Console websiteCompare the same dates. The website's default range runs up to today and includes incomplete days; the server's default stops at the last complete day
The server does not appear in the clientCheck the client's MCP log. On Windows try the cmd /c npx form shown above

Privacy and security

  • The server runs locally as a child process of your MCP client. It contacts googleapis.com, and your own site when audit_sitemap_indexing reads a sitemap. There is no telemetry.
  • Credentials stay on your machine. A browser sign-in is stored as a refresh token in GSC_CONFIG_DIR. Delete it with auth logout.
  • The default scope is read-only. Search data returned by the tools becomes part of your conversation with the AI assistant, under that assistant's own privacy terms.

See SECURITY.md to report a vulnerability.

Development

bash
git clone https://github.com/PixFrixSystems/search-console-mcp.gitcd search-console-mcpnpm installnpm run buildnpm test

The tests run against a stand-in for Google's API, so they need no credentials. With credentials, npm run live-check -- --site example.com runs every read-only tool against a real property and checks that the numbers agree with each other.

Contributions are welcome. See CONTRIBUTING.md.

License

MIT

Built and maintained by PixFrix. This project is not affiliated with or endorsed by Google. Google Search Console is a trademark of Google LLC.

來源:README.md,提交 04a70ca

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Nov 14, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分