Skip to main content
Glama
gsc-mcp

gsc-mcp

by yan-labs

gsc-mcp

Self-hosted Google Search Console MCP server + gsc CLI. Uses your own Google OAuth, read-only by default, no site limit. Works in Claude Code, Codex, Cursor or your terminal.

自托管的 Google Search Console MCP Server + gsc 命令行。用你自己的 Google 授权,默认只读,不限站点数,可在 Claude Code、Codex、Cursor 或终端里直接用。

Why / 为什么

Some hosted GSC MCP services cap their free tier at roughly two sites and require a paid plan for more. Because gsc-mcp runs on your own machine with your own Google credentials, your Search Console data never passes through an intermediary, and you can query every site in your account as often as you need at no cost—subject only to official Google API quotas.

一些第三方托管的 GSC MCP 免费档大约只支持 2 个站点,接入更多站点需要付费。gsc-mcp 在本机运行并使用你自己的 Google 凭据,数据不经过第三方;你可以免费管理账号下的所有站点,不限站点数与查询次数,仅受 Google 官方 API 配额约束。

Related MCP server: GSC MCP

Setup (about 10 minutes) / 设置(约 10 分钟)

  1. In Google Cloud Console, create or select a project and enable Google Search Console API.

  2. Configure the OAuth consent screen. For an External app in Testing, add your Google account as a test user.

  3. Create an OAuth client ID of type Desktop app. Keep its client ID and secret private.

  4. Install and authenticate:

npm install
npm run build
npm link
GSC_CLIENT_ID='your-desktop-client-id' GSC_CLIENT_SECRET='your-desktop-client-secret' gsc auth
gsc sites

The default scope is read-only. To submit sitemaps, run gsc auth --write and set GSC_ALLOW_WRITE=1 for the process that submits them. The token file is ~/.config/gsc-mcp/token.json with mode 600. Override it with GSC_TOKEN_FILE. Alternatively, set GOOGLE_APPLICATION_CREDENTIALS to a service-account JSON file and grant that service account access to the Search Console property.

默认 OAuth scope 为只读。提交 sitemap 时需运行 gsc auth --write,并为提交命令设置 GSC_ALLOW_WRITE=1。令牌保存在 ~/.config/gsc-mcp/token.json,权限为 600;可用 GSC_TOKEN_FILE 指定其他路径。也可以通过 GOOGLE_APPLICATION_CREDENTIALS 指定服务账号 JSON,并将该服务账号加入 Search Console 资源。

CLI / 命令行

gsc sites
gsc query 'sc-domain:example.com' --dims query,page --days 28 --compare
gsc inspect 'sc-domain:example.com' 'https://example.com/page'
gsc sitemaps 'sc-domain:example.com'
gsc insights striking_distance 'sc-domain:example.com' --days 28
gsc insights low_ctr 'sc-domain:example.com'
gsc insights cannibalization 'sc-domain:example.com'
gsc insights movers 'sc-domain:example.com'
gsc --json sites
gsc mcp                 # stdio MCP
gsc mcp --http 8787     # Streamable HTTP on 127.0.0.1:8787/mcp

CLI JSON output is available with --json. query supports --start-date, --end-date, --filters (a JSON dimensionFilterGroups array), --limit, and --compare. Search analytics and insights return Google's top rows, not a complete export. URL inspection reports indexed status and is not a live test. HTTP mode binds to loopback; place an authenticated TLS reverse proxy in front if remote access is needed.

MCP client configuration / MCP 客户端配置

Claude Code

claude mcp add gsc -- gsc mcp

Or add to .claude/settings.json:

{
  "mcpServers": {
    "gsc": { "command": "gsc", "args": ["mcp"] }
  }
}

Codex (~/.codex/config.toml)

[mcp_servers.gsc]
command = "gsc"
args = ["mcp"]

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "gsc": { "command": "gsc", "args": ["mcp"] }
  }
}

Generic remote/custom connector / 通用远程或自定义连接器

Run GSC_ALLOW_WRITE=1 gsc mcp --http 8787 only if write access is required. Configure a Streamable HTTP MCP client to connect to https://your-host.example.com/mcp through your authenticated TLS reverse proxy. The server itself listens only on loopback.

如需写入权限,可通过 GSC_ALLOW_WRITE=1 gsc mcp --http 8787 启动。将 Streamable HTTP MCP 客户端配置为连接反向代理提供的 https://your-host.example.com/mcp。服务本身仅监听本机回环地址。

Tools / 工具

list_sites, search_analytics, inspect_url, list_sitemaps, submit_sitemap, striking_distance, low_ctr, cannibalization, and movers. The write tool is exposed only when GSC_ALLOW_WRITE=1; it also requires a write-scoped OAuth token and property permissions.

Development / 开发

npm test
npm run build

Tests use local fixtures and make no network requests.

Available Tools

8 tools
cannibalizationD
Read-only

Search Console insight: cannibalization

NameRequiredDescriptionDefault
daysNo
siteYes
maxCtrNo
endDateNo
startDateNo
minImpressionsNo

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, but the description adds nothing on top of them — no indication of how results are computed, what thresholds mean, or what the output looks like. With zero value added beyond structured data and a 6-parameter surface, this is a real gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but that brevity reflects under-specification rather than economy — there is only a fragment with no sentence structure and nothing front-loaded beyond a category label.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A six-parameter analytical tool with no output schema and no descriptions anywhere needs the description to carry meaning; instead it offers four words. Nothing an agent needs to invoke this correctly — what it returns, what the filters do, when to prefer it over siblings — is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for six parameters, including non-obvious ones like maxCtr (default 0.02) and minImpressions (default 100), whose filtering role is entirely unexplained. The description does not compensate at all, leaving the agent to guess what these thresholds filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a restatement of the tool name plus a category label ('Search Console insight'). It never states a verb or what the tool actually does (e.g., 'find queries where multiple pages compete for the same keyword'), so an agent must infer cannibalization semantics from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of how this differs from siblings like striking_distance, low_ctr, or movers, and no prerequisites or exclusions. The agent gets no routing signal beyond the single word 'cannibalization'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_urlB
Read-only

Inspect Google indexed URL status (not a live test)

NameRequiredDescriptionDefault
urlYes
siteYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: results reflect Google's index, not a live fetch, which tells the agent the answer may be stale. It stops short of permissions, quota costs, or what an inconclusive result looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb and resource, with the disambiguating parenthetical placed where it reads naturally. Nothing is padded, though the extreme brevity edges toward under-specification rather than tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two required, undocumented parameters, no output schema, and no explanation of what the status response contains (indexed / not indexed / excluded with reason), the definition is too thin for a tool whose output shape the agent must interpret. The index-vs-live distinction is the only substantive detail provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for two required parameters, and it says nothing about either. It is unclear whether `site` is a domain property, a URL-prefix property, or a verified Search Console site, nor whether `url` must belong to that site.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Inspect Google indexed URL status" gives a specific verb (inspect) and a specific resource (a URL's indexed status in Google), and the parenthetical distinguishes it from a live crawl/fetch. It is clearly not one of the analytics-reporting siblings, though it does not name which sibling covers the live-test alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "(not a live test)" implies the right context: use this when you want Google's cached index verdict rather than fetching the page yourself. However, there is no explicit when-to-use, no prerequisite (e.g. the site must be verified in Search Console), and no named alternative among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitemapsC
Read-only

List submitted sitemaps

NameRequiredDescriptionDefault
siteYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the qualifier "submitted" — implying it returns sitemaps submitted via Search Console rather than all discovered sitemaps — but says nothing about pagination, result ordering, or whether entries include status/last-downloaded metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded phrase with zero filler, which is efficient. Its brevity, however, edges into under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool whose only parameter is undocumented and which has no output schema, the description should at minimum state the identifier format for "site" and what a listed sitemap record contains. Neither is present, so the agent cannot call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter "site" has 0% schema description coverage, and the description does not explain what form it takes (bare domain, full URL, or Search Console property identifier like sc-domain:example.com). With no compensating detail, the agent is left guessing at the most error-prone part of the call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"List submitted sitemaps" gives a specific verb (list) and resource (sitemaps), and the word "submitted" narrows the scope meaningfully. It does not, however, distinguish itself from siblings such as list_sites, which an agent could plausibly confuse with sitemap enumeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus list_sites or inspect_url, and no prerequisites (e.g., that the site must be verified in Search Console) are mentioned. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitesA
Read-only

List Search Console properties accessible to your account

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing further — no indication of pagination, result ordering, or whether the returned properties are URLs vs. domain properties — but for a zero-argument read-only enumeration the behavioral surface is small, so this is not a severe gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the resource named first and the access scope immediately after. No filler, no redundancy against the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-param list tool with no output schema, the description is only minimally sufficient: it does not say the result is the set of site identifiers the other tools consume, nor whether the caller should expect a complete or paginated enumeration. An agent can call it confidently but cannot predict the shape of what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is no parameter meaning to convey; baseline is 4 per the zero-parameter rule. The description correctly implies no filtering input is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ("List Search Console properties") plus the scope qualifier "accessible to your account." No sibling tool (search_analytics, inspect_url, list_sitemaps, etc.) lists properties, so an agent can distinguish it from all of them without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance: it never says this is the discovery step that yields the site identifiers required by search_analytics or inspect_url, and it names no alternatives or exclusions. Usage is only inferable from the verb "List."

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

low_ctrD
Read-only

Search Console insight: low_ctr

NameRequiredDescriptionDefault
daysNo
siteYes
maxCtrNo
endDateNo
startDateNo
minImpressionsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations establish a read-only, non-destructive, open-world operation, and the description does not conflict with them. Beyond naming Search Console, however, it adds no behavioral context about data scope, freshness, request limitations, or how results are selected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but this is under-specification rather than effective conciseness. "Search Console insight" supplies minimal context and "low_ctr" merely repeats the identifier instead of providing a front-loaded operational summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter external analytics tool with no parameter descriptions and no output schema, a bare label is inadequate for confident selection and invocation. The definition lacks the returned resource or metrics, filtering and date behavior, and the tool's relationship to sibling insights.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description explains none of site, days, maxCtr, startDate, endDate, or minImpressions. It does not even connect maxCtr and minImpressions to the low-CTR insight or clarify date-window behavior, so it fails to compensate for the undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description adds only the broad Search Console domain and the label "insight" while repeating "low_ctr". It does not state what the tool searches or returns, nor distinguish it from search_analytics, striking_distance, cannibalization, or movers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

An agent can infer a general interest in low click-through rate from the name, but the description gives no explicit use case or selection criteria. It provides no when-not guidance, prerequisites, or alternatives among the sibling analytics tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

moversD
Read-only

Search Console insight: movers

NameRequiredDescriptionDefault
daysNo
siteYes
maxCtrNo
endDateNo
startDateNo
minImpressionsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing about behavior beyond that — not the comparison window, the ranking basis, or the result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and has no filler, but it is a bare fragment rather than a structured explanation, so brevity here comes from under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, no-output-schema, insight-generation tool, the description omits the concept itself, the filtering thresholds, and the date-window interaction. An agent cannot reliably select or invoke it correctly from this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Six parameters with 0% schema description coverage, and the description explains none of them. Critical semantics are left opaque, such as what minImpressions and maxCtr filter, and how startDate/endDate interact with the days default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the tool name restated: 'Search Console insight: movers'. It signals the data domain (Search Console) but never says what a 'mover' is (e.g., pages/queries with the largest position or impression change) or what the tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no differentiation from the closely related insight siblings (low_ctr, striking_distance, cannibalization), which an agent cannot distinguish from this description. There is no exclusion or alternative mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_analyticsC
Read-only

Query top Search Console rows; compare with the equal previous period

NameRequiredDescriptionDefault
siteYes
typeNo
compareNo
endDateYes
rowLimitNo
startRowNo
startDateYes
dimensionsNo
dimensionFilterGroupsNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds one genuine behavioral detail — that results are compared against the equal previous period — but says nothing about the rowLimit ceiling, pagination via startRow, or how comparison halves the result budget, all of which affect how an agent should call it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short clause-sentence with no waste, and the resource and the comparison behavior are front-loaded. The terseness is efficient rather than padded, though it borders on under-specification for a 9-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a fairly complex query tool: 9 parameters, 0% schema coverage, an enum-constrained dimension list, and nested filter groups, with no output schema to explain returns. One sentence cannot cover that surface, and key mechanics — pagination, row caps, and filter semantics — are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 9 parameters, so the description must compensate and largely does not. It only implicitly touches two params — "top rows" gestures at rowLimit and "compare with the equal previous period" clarifies the compare flag — while site, type, dimensions, startRow, and the nested dimensionFilterGroups structure are left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Query top Search Console rows") plus a scope hint ("top" implies ordered/limited results) and the period-over-period comparison behavior. It does not distinguish this from siblings like movers, striking_distance, or low_ctr, which all operate on the same analytics data, so an agent cannot route confidently between them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no mention of alternatives. Given that six of the seven sibling tools (striking_distance, low_ctr, cannibalization, movers) are also Search Console analytics queries, the absence of any routing guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

striking_distanceD
Read-only

Search Console insight: striking_distance

NameRequiredDescriptionDefault
daysNo
siteYes
maxCtrNo
endDateNo
startDateNo
minImpressionsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds only that this is an 'insight' (an analysis rather than a raw listing), but discloses nothing about thresholds, ranking, aggregation, or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but not because it is efficient — it is under-specified. The one phrase present ('Search Console insight') is the only informative content and is not front-loaded with any actionable detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter analytical tool with no output schema and zero schema descriptions, the description provides nothing an agent needs to call it correctly or interpret its results. It is completely inadequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across six parameters, and the description does not mention any of them. The meanings of maxCtr (default 0.02), minImpressions (default 100), and the interplay of days vs startDate/endDate are left entirely unexplained, which is a critical gap given the filtering logic defines the tool's output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the tool name restated with the domain prefix 'Search Console insight'. It never explains what a 'striking_distance' insight computes (implied: queries with high impressions and low CTR in near-ranking positions), so the agent must guess the semantics of the jargon term.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no exclusions, and no routing relative to siblings such as low_ctr, cannibalization, or movers, which appear to be similar insight tools. Nothing indicates how this differs from low_ctr in particular.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedcannibalization
    • First observedinspect_url
    • First observedlist_sitemaps
    • First observedlist_sites
    • First observedlow_ctr
    • First observedmovers
    • First observedsearch_analytics
    • First observedstriking_distance

TDQS

C2.5/5.0

Scored across 8 tools

Disambiguation3/5

The core tools (list_sites, search_analytics, inspect_url, list_sitemaps) are clearly distinct, but the four insight tools have tautological descriptions ("Search Console insight: striking_distance") that give no real explanation, forcing the agent to infer meaning from names. All five analytics-related tools draw from the same underlying Search Console data, so the boundary between search_analytics and striking_distance/low_ctr/movers/cannibalization is unclear.

Naming Consistency3/5

Four tools follow a clean verb_noun convention (list_sites, search_analytics, inspect_url, list_sitemaps) while the four insight tools are bare noun phrases (striking_distance, low_ctr, cannibalization, movers). The style split is systematic but still breaks predictability about whether a tool is an action or a report.

Tool Count5/5

Eight tools is a well-scoped size for a Search Console analytics server, with room for site/sitemap listing, querying, inspection, and canned insights. Nothing feels padded or missing at the count level.

Completeness3/5

The surface covers discovery (sites, sitemaps), reporting (search_analytics), and inspection, but sitemaps are read-only — no submit or delete operation — and sites cannot be added or removed. For a diagnostics-oriented server this is workable, but sitemap submission is a standard Search Console operation that agents will hit as a dead end.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP clients to query Google Search Console search performance, inspect indexing, analyze sitemaps, and run SEO analyses such as cannibalisation detection, query clustering, and wins/losses, all with read-only access.
    20
    165 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables read-only access to Google Search Console data, including property discovery, search analytics queries, and URL inspection, through a security-focused interface.
    3
    941 PyPI
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables read-only access to Google Search Console data, including properties, Search Analytics with filters and auto-pagination, sitemaps, and URL inspection with batch support and throttling.
    5
    69 PyPI
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only access to Google Search Console, Bing Webmaster Tools, and PageSpeed Insights, allowing queries for analytics, sites, sitemaps, inspections, crawl issues, and page speed analysis via natural language.
    1,431 npm
    MIT