Skip to main content
Glama
AKzar1el

Google Search Console MCP

mcp-gsc

License: MIT MCP MCP Registry CI npm version

DigestSEO 오픈소스 SEO 도구 모음의 일부입니다.

셀프 호스팅 런처는 @digestseo/mcp-gsc로 제공됩니다:

npx -y @digestseo/mcp-gsc

Google OAuth 및 Cloudflare 배포 구성에 대해서는 SETUP.md를 따르세요.

30초 만에 연결하기

배포된 모든 인스턴스는 동일한 엔드포인트 형태를 노출합니다:

https://<your-worker>.workers.dev/mcp

DigestSEO 호스팅 인스턴스는 다음에서 사용할 수 있습니다:

https://mcp-gsc.digestseo.com/mcp

Claude Code

claude mcp add --transport http gsc https://<your-worker>.workers.dev/mcp

Cursor

Add to Cursor

ChatGPT — 사용자 지정 커넥터로 추가하세요. 아래의 AI 클라이언트에서 연결을 참조하세요.

Google Search Console용 셀프 호스팅 가능한 Model Context Protocol(MCP) 서버입니다. Claude.ai, Cursor, ChatGPT 또는 MCP 호환 클라이언트에 연결하고 AI 어시스턴트에게 내 사이트의 유기적 검색 성과(노출, 클릭, 상위 쿼리, 색인 상태, 사이트맵 상태)를 내 Google 계정에서 직접 물어보세요.

Cloudflare Workers에서 실행되며 원클릭 Google OAuth 온보딩이 포함되어 있습니다: 클라이언트에서 서버를 연결하고, Google로 한 번 로그인하고, 요청된 Google Search Console 권한을 승인하면 끝입니다. 복사할 API 키도, 관리할 서비스 계정 JSON도 없습니다.

설정이 전혀 필요 없으신가요? 호스팅 버전 — 매주 이메일로 자동 전송되는 주간 다이제스트 포함 — 은 digestseo.com 에서 제공됩니다. 이 저장소는 직접 실행할 수 있는 오픈소스 코어입니다.

도구

기본적으로(GSC_ACCESS_MODE=readwrite) 이 서버는 17개의 도구를 노출합니다. 읽기 전용 분석 및 보고 도구는 MCP의 readOnlyHint로 표시됩니다. 아래의 쓰기 도구는 Search Console 속성, 사이트맵 또는 색인 상태를 변경할 수 있습니다. GSC_ACCESS_MODE=readonly로 설정하면 Search Console 읽기 전용 범위만 요청하고 12개의 읽기 전용 도구만 노출합니다.

도구

액세스

기능

server.capabilities

읽기

이 서버가 노출하는 모든 도구를 나열하고 Google 연결이 현재 인증되었는지(connected / not_connected) 보고합니다. 인수가 필요 없습니다 — 탐색을 위한 첫 호출로 적합합니다.

sites.list

읽기

연결된 Google 계정이 액세스할 수 있는 Search Console 속성을 나열합니다(siteUrl, permissionLevel).

analytics.query

읽기

날짜 범위에 따른 노출, 클릭, CTR, 평균 위치를 차원, 필터, 페이지네이션, 검색 유형 선택과 함께 제공합니다.

urls.inspect

읽기

단일 페이지에 대한 Google의 URL 검사 보고서입니다.

sitemaps.list / sitemaps.get

읽기

제출된 사이트맵을 나열하거나 단일 사이트맵의 세부 정보를 검색합니다.

insights.quick_wins / insights.cannibalization / insights.content_decay

읽기

최적화 기회, 경쟁 페이지, 콘텐츠 하락을 표시합니다.

indexing.list_pages / analytics.compare

읽기

노출을 받는 페이지를 분석하고 두 기간을 비교합니다.

reports.weekly_digest

읽기

변동 사항, 상위 페이지, 권장 조치 1개가 포함된 평이한 언어의 7일 성과 보고서를 생성합니다.

sites.add / sites.delete

쓰기

Search Console 속성을 추가하거나 제거합니다.

sitemaps.submit / sitemaps.delete

쓰기

사이트맵을 제출하거나 제거합니다.

indexing.request

쓰기

Google의 Indexing API를 통해 색인을 요청합니다. Google은 현재 이 API를 JobPosting 구조화 데이터가 포함된 페이지 또는 VideoObject 내에 BroadcastEvent가 포함된 라이브스트림 페이지로 제한합니다. 일반 웹페이지 제출에는 사용할 수 없습니다.

읽기-쓰기 모드는 Google Search Console 읽기-쓰기 및 Indexing API 범위를 요청합니다. 읽기 전용 모드는 https://www.googleapis.com/auth/webmasters.readonly(및 openid, email)만 요청하며 5개의 쓰기 도구를 등록하지 않습니다. 기존 배포가 현재 동작을 유지하도록 읽기-쓰기가 기본값으로 유지됩니다. 사용자를 연결하기 전에 모드를 선택하려면 SETUP.md를 참조하세요.

indexing.request 자격 요건. Google의 Indexing API는 일반적인 페이지 제출 도구가 아닙니다 — 현재 기준으로 Google 자체 문서는 이 API를 두 가지 콘텐츠 유형으로 제한합니다: JobPosting 구조화 데이터가 있는 페이지와 VideoObject 내에 중첩된 BroadcastEvent 구조화 데이터가 있는 라이브스트림 페이지. 제출 전에 서버는 대상 URL을 가져와 JSON-LD에서 두 유형 중 하나를 확인합니다. 둘 다 없으면(또는 페이지를 가져올 수 없으면) Indexing API를 호출하는 대신 URL이 부적격한 이유를 설명하는 오류를 반환합니다. 성공적인 제출은 Google이 알림을 받았다는 확인일 뿐이며 URL이 색인된다는 보장은 아닙니다.

Related MCP server: SEOMonster

무엇을 물어볼 수 있나요

연결이 완료되면 어시스턴트에게 다음과 같은 질문을 할 수 있습니다:

  • "지난 28일 동안 클릭 수 기준 상위 20개 쿼리는 무엇인가요?"

  • "이번 달 example.com의 노출을 지난달과 비교해 주세요 — 어떤 페이지가 하락했나요?"

  • "https://example.com/pricing이 색인되었나요? 마지막 크롤링은 언제였나요?"

  • "내 블로그가 5~15위에 랭크되는 쿼리는 무엇인가요? 그게 내 퀵 윈이에요."

  • "오늘로 끝나는 sc-domain:example.com의 주간 다이제스트를 만들어 주세요."

  • "내 사이트맵 중 오류나 경고가 있는 것이 있나요?"

  • "쿼리에 정규식을 사용하여 내 클릭을 브랜드 vs 비브랜드로 나눠 주세요."

  • "Google Discover에서 내 사이트 성과는 일반 웹 검색과 비교해 어떤가요?"

AI 클라이언트에서 연결

서버를 배포한 후(SETUP.md 참조) Worker의 /mcp URL을 클라이언트에 붙여넣어 연결하세요:

https://<your-worker>.workers.dev/mcp
  • Claude.ai — 설정 → 커넥터 → 사용자 지정 커넥터 추가 → /mcp URL을 붙여넣으세요. Client ID와 Client Secret은 비워 두세요. 처음 사용 시 Claude가 Google 로그인 흐름을 열고, 배포에서 요청한 액세스를 승인하면 커넥터가 녹색으로 전환됩니다.

  • Cursor — 동일한 /mcp URL을 가리키는 사용자 지정 MCP 서버로 추가하세요.

  • ChatGPT(커넥터/MCP 지원 포함) — /mcp URL로 사용자 지정 커넥터를 추가하세요.

MCP 호환 클라이언트는 모두 작동합니다 — 모두 동일한 /mcp 엔드포인트를 가리키고 동일한 OAuth 흐름을 공유합니다.

설정

셀프 호스팅은 자체 Google OAuth 자격 증명과 Cloudflare 계정을 가져와야 함을 의미합니다. 복사해서 붙여넣을 수 있는 전체 가이드는 SETUP.md 에 있습니다 — Google의 OAuth 검증과 앱이 검증되지 않은 동안의 7일 리프레시 토큰 제한에 대한 중요한 참고 사항도 포함되어 있습니다.

간단한 구조:

git clone https://github.com/<you>/mcp-gsc.git
cd mcp-gsc
npm install
cp wrangler.example.jsonc wrangler.jsonc       # then paste in your KV ids
# set GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / TOKEN_ENCRYPTION_KEY as secrets
# choose GSC_ACCESS_MODE=readonly in wrangler.jsonc for a read-only deployment
npm run deploy

모든 단계를 자세히 보려면 SETUP.md 를 참조하세요.

개발

npm install
npm test              # typecheck + offline unit tests (what CI runs)
npm run dev           # wrangler dev (local)
npm run test:smoke    # structural smoke tests against a deployment

기여를 환영합니다 — CONTRIBUTING.md를 참조하세요.

라이선스

MIT © 2026 DigestSEO.


digestseo.com의 제작자 Tomi Šeregi가 구축하고 유지 관리합니다 — 비기술적 사이트 소유자를 위한 주간 SEO 다이제스트.

Available Tools

17 tools
analytics.compareCompare Performance Between PeriodsA
Read-only

Compare Search Console performance metrics (clicks, impressions, CTR, average position) between two distinct date ranges (Period A vs Period B) for a selected dimension (query, page, country, device). Pagination metadata flags when either period reached the local 100,000-row safety ceiling; Search Console itself may still return only top data.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
dimensionNoThe dimension to compare performance for. Defaults to query.query
end_date_aYesEnd date of Period A (recent, YYYY-MM-DD)
end_date_bYesEnd date of Period B (previous, YYYY-MM-DD)
start_date_aYesStart date of Period A (recent, YYYY-MM-DD)
start_date_bYesStart date of Period B (previous, YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription
paginationYes
comparisonsYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds valuable behavioral details about pagination metadata and the 100,000-row safety ceiling, plus the caveat that Search Console may still return only top data. This discloses limitations and external behavior without contradicting any annotations.

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?

Two sentences with no filler: the first delivers the main purpose, metrics, and dimension options; the second front-loads the pagination caveat. Every sentence earns its place and the most important behavior is highlighted early.

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

Completeness5/5

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

The description covers purpose, supported dimensions, and a key behavioral limitation. An output schema exists for return format, annotations cover read-only safety, and the schema documents parameter details, so nothing essential an agent needs to call this correctly is missing.

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

Parameters3/5

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

The input schema already describes all 6 parameters with coverage at 100%, including date formats, dimension enum, and site_url format details. The description only restates the dimension list and period comparison, adding no new parameter-level meaning beyond the schema baseline.

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?

The description uses a specific verb ('Compare') and names the exact resource ('Search Console performance metrics') with concrete metrics and dimensions. It clearly distinguishes this from the sibling 'analytics.query' by emphasizing comparison across two distinct date ranges rather than a single period.

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

Usage Guidelines4/5

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

The description clearly states the context for use: comparing performance between two date ranges for a selected dimension. It does not explicitly name alternatives or provide when-not-to-use guidance, but the comparison purpose is unambiguous enough to imply selection over a single-period query.

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

analytics.queryQuery search analyticsA
Read-only

Query Google Search Console search analytics data. Returns { row_count, start_row, rows } where each row has keys (dimension values), clicks, impressions, ctr, and position. When row_count equals row_limit, the response includes next_start_row — pass it back as start_row to fetch the next page. When Google provides them, response_aggregation_type and metadata are also included; metadata may identify the first incomplete date or hour.

IMPORTANT BEHAVIORS — read before calling:

  • For SITE TOTALS (total impressions, total clicks, overall CTR, overall average position), call with dimensions: []. This returns a single row containing the true site-level totals. Do NOT call with dimensions: ["query"] and sum the rows — Google omits anonymized low-volume queries from per-dimension responses, so summing per-query rows will undercount.

  • For TOP QUERIES / PAGES / COUNTRIES / DEVICES, call with the matching dimension. Expect the returned rows to cover only a subset of total impressions; this is normal Google behavior, not a data error.

  • DATA FRESHNESS: Search Console data lags about 2-3 days behind real time. If the user asks about "today" or "yesterday", expect empty or partial rows for the most recent days; the latest reliably-complete date is usually 3 days ago.

  • AVERAGE POSITION is impression-weighted. To compute an overall position across multiple rows, use sum(position * impressions) / sum(impressions). Never plain-average the position column across rows.

  • CTR in the response is a 0–1 fraction. Multiply by 100 for percent.

  • Use search_type to query image/video/news/discover indexes separately from web.

  • Use dimension_filter_groups to filter by country, device, query content, page URL, or search feature. includingRegex and excludingRegex use RE2 syntax. For brand vs non-brand splits, pass a single regex filter on the 'query' dimension.

  • data_state defaults to 'all' which matches the GSC dashboard. Pass 'final' only when the user explicitly asks for stable, non-preliminary data.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (inclusive) in YYYY-MM-DD format. Note the 2-3 day data lag: the most recent complete date is usually 3 days ago.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
row_limitNoMaximum rows to return (1-25000). Defaults to 100, which is plenty for most questions; raise it only for bulk exports and page through with start_row.
start_rowNoZero-based row offset for pagination. When a response contains next_start_row, pass it here to fetch the next page.
data_stateNo'all' includes fresh (preliminary) data and matches the GSC dashboard; 'final' returns only finalized data.all
dimensionsNoDimensions to group rows by. Pass [] (empty array) to get a single row of true site-level totals.
start_dateYesStart date (inclusive) in YYYY-MM-DD format.
search_typeNoWhich search index to query. Defaults to web.web
aggregation_typeNoHow Google aggregates metrics. Leave as 'auto' unless you specifically need byPage or byProperty semantics.auto
dimension_filter_groupsNoOptional filters ANDed together, e.g. [{ groupType: 'and', filters: [{ dimension: 'country', operator: 'equals', expression: 'usa' }] }]. Countries use ISO 3166-1 alpha-3 codes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYes
metadataNoGoogle data-completeness metadata, included only when returned by Google.
row_countYes
start_rowYes
next_start_rowNo
response_aggregation_typeNoGoogle response aggregation type, included only when returned by Google.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already signal read-only and open-world behavior, and the description adds substantial context: 2-3 day data lag, anonymized low-volume queries being omitted, impression-weighted average position, CTR as a 0-1 fraction, and pagination via next_start_row. This is unusually transparent and leaves little to guess about response behavior.

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?

Although long, the description is front-loaded with purpose and return shape, then organized into a clearly labeled 'IMPORTANT BEHAVIORS' section with focused bullets. Every sentence carries operational meaning, and the length is justified by the tool's 10-parameter complexity.

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

Completeness5/5

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

For a complex tool with 10 parameters, the description covers return structure, pagination, data freshness, aggregation semantics, filter usage, and data_state behavior. This is sufficient for an agent to select correct parameter values and interpret results reliably; no significant operational gap remains.

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?

Schema coverage is 100%, so the parameters are already well documented and the baseline is 3. The description adds valuable interpretation beyond the schema, such as RE2 syntax for regex filters, brand vs non-brand filter strategy, and the warning that summing per-query rows undercounts totals, which raises it to 4.

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?

The opening sentence names a specific verb and resource: querying Google Search Console search analytics data, then defines the return envelope and row fields. This makes the tool's function unmistakable and enough to distinguish it from sibling analytics tools even without an explicit contrast.

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

Usage Guidelines4/5

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

The 'IMPORTANT BEHAVIORS' section gives explicit when-to/when-not guidance: use dimensions: [] for site totals, do not sum per-query rows, use matching dimensions for top queries, and pass 'final' only when stable data is requested. It does not explicitly route the agent to sibling tools such as analytics.compare, so it stops short of a full alternative-selection explanation.

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

indexing.list_pagesList Indexed PagesA
Read-only

Retrieve a list of site pages that have received search impressions, serving as a proxy list of indexed pages on the site. When one date boundary is omitted, the server derives the other to target an inclusive 30-day range; generated end dates are capped at the latest complete date.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoEnd date (inclusive) in YYYY-MM-DD format. If start_date is omitted, the generated start date is 29 days earlier. Defaults to 3 days ago. Note the 2-3 day data lag.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
row_limitNoMaximum pages to retrieve (1-25000). Default is 1000.
start_dateNoStart date (inclusive) in YYYY-MM-DD format. If end_date is omitted, the generated end date is 29 days later, capped at the latest complete date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pagesYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful behavioral context by explaining date-range derivation logic: if one boundary is omitted, the server derives the other to form an inclusive 30-day range, and generated end dates are capped at the latest complete date. This goes beyond the annotations and helps agents set expectations correctly.

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?

The description is two sentences with no redundant filler. The primary purpose is front-loaded, and the second sentence efficiently communicates key behavioral nuance. Every clause earns its place, making it easy for an agent to parse quickly.

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

Completeness4/5

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

The tool has a moderate complexity with four parameters and a full output schema, and the description covers its core purpose and date behavior. The schema handles parameter details and return values, so the description doesn't need to restate them. The main gap is the lack of explicit usage alternatives, but this is not critical for executing the tool correctly given the rich schema and annotations.

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

Parameters3/5

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

Schema description coverage is 100% for all four parameters, so the baseline is 3. The description's date-derivation explanation partially overlaps with schema text, but it adds the phrase 'inclusive 30-day range,' which clarifies the interaction between start_date and end_date. Overall, the description does not need to compensate for missing schema info, so a 3 is appropriate.

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?

The description clearly states a specific action and resource: 'Retrieve a list of site pages that have received search impressions.' It also adds the important nuance of serving as a 'proxy list of indexed pages,' which distinguishes it from sibling tools like sitemaps.list or urls.inspect. Even without naming siblings, the purpose is explicit and unambiguous.

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 usage context is implied through the description of what the tool returns (pages with impressions as a proxy for indexed pages), but there is no explicit guidance on when to choose this tool over alternatives such as sitemaps.list or analytics.query. No when-not-to-use conditions or sibling comparisons are provided.

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

indexing.requestRequest IndexingA

Requests indexing through Google's Indexing API for a URL within an owner-level Search Console property accessible to the connected Google account. Google currently restricts this API to pages containing JobPosting structured data or livestream pages containing BroadcastEvent inside VideoObject. It is not available for general webpage submission.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe fully qualified HTTP/HTTPS URL to submit. It must fall within site_url and contain JobPosting structured data, or be a livestream page with BroadcastEvent inside VideoObject.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure. The connected Google account must be an owner of this property.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already convey read/write, idempotency, and destructive hints. The description adds meaningful behavioral context beyond annotations: Google's API restriction, the owner-level permission requirement, and the fact that submission is a request rather than a guaranteed immediate index. This is valuable transparency for an agent deciding whether the call will succeed.

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?

The description is two sentences with no filler. The primary action is front-loaded, followed immediately by the critical eligibility restriction. Every sentence earns its place.

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

Completeness4/5

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

The description is largely complete for this tool's complexity: it covers purpose, eligibility, auth ownership requirement, and the non-general nature of the API. The output schema exists, so return values need no explanation. A minor gap is the lack of an explicit pointer to sitemaps.submit for general pages, but this does not prevent correct invocation.

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

Parameters3/5

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

The input schema covers 100% of parameters and already provides rich descriptions for both 'url' and 'site_url', including format examples and permission failure modes. The tool description adds no additional parameter-level detail, so the baseline score of 3 applies.

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?

The description clearly states a specific action ('Requests indexing through Google's Indexing API'), the resource ('a URL within an owner-level Search Console property'), and the critical scope restriction (only JobPosting or livestream BroadcastEvent pages). This distinguishes it from siblings like indexing.list_pages, urls.inspect, and sitemaps.submit.

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

Usage Guidelines4/5

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

It provides an explicit when-not-to-use: 'It is not available for general webpage submission.' It also gives the eligibility criteria for valid submissions. However, it does not explicitly name an alternative tool for general webpage submission, such as sitemaps.submit, which would make the guidance fully complete.

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

insights.cannibalizationDetect Keyword CannibalizationA
Read-only

Analyze search analytics to detect instances of keyword cannibalization, where multiple pages on your site compete for the same query. Pagination metadata flags when the local 100,000-row safety ceiling stopped fetching; a false flag does not guarantee Search Console returned every underlying row.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (inclusive) in YYYY-MM-DD format. Note the 2-3 day GSC data lag.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
start_dateYesStart date (inclusive) in YYYY-MM-DD format.
min_impressionsNoMinimum impressions for a page-query pair to be considered. Must be at least 0. Default is 50.
min_page_percentageNoMinimum percentage of total query impressions a page must have to count as a cannibalizing page (0-100). Default is 10%.

Output Schema

ParametersJSON Schema
NameRequiredDescription
candidatesYes
paginationYes

TDQS

A4.6/5.0
Behavior5/5

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

With annotations readOnlyHint=true and openWorldHint=true, the safety profile is already declared. The description adds valuable behavioral context about the pagination metadata flag and the 100,000-row safety ceiling, warning that a false flag does not guarantee full data return. This is exactly the kind of limitation disclosure that helps an agent interpret results correctly and goes beyond what annotations provide.

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?

Three sentences: purpose, definition, and a critical data-completeness caveat. Every sentence earns its place, and the caveat is placed at the end after the main purpose. No fluff or repetition of the schema.

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

Completeness4/5

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

The tool has an output schema, so return values need not be explained. The description covers what the tool does, the key limitation (pagination ceiling), and the site_url precondition is covered in the schema. It could add more context about typical use cases or how results should be interpreted, but with the output schema and rich parameter schemas, it is sufficiently complete.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds conceptual meaning around the parameters by framing the analysis: 'min_impressions' and 'min_page_percentage' relate to how a page qualifies as cannibalizing. However, most parameter-level detail lives in the schema; the description itself doesn't explain defaults or constraints. A 4 is warranted because the description enriches the semantic model of the parameters even though it doesn't restate them.

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?

The description uses a specific verb ('Analyze', 'detect') and resource ('search analytics', 'keyword cannibalization') and clearly explains the concept ('multiple pages compete for the same query'). This distinguishes it from sibling analytics tools like analytics.query (generic querying) and insights.quick_wins/content_decay (other insight types).

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

Usage Guidelines4/5

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

The description implies this is the tool for detecting cannibalization specifically, which differentiates it from siblings, but it does not explicitly state when not to use it or name alternatives. It does include a practical precondition ('call sites.list first if unsure') about site_url format, which helps agents use it correctly. Missing explicit exclusion guidance, but the domain-specific wording is enough for most selection cases.

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

insights.content_decayDetect Content DecayA
Read-only

Identify content decay by comparing search clicks for your site pages between two contiguous periods and finding the pages with the largest traffic drops. Pagination metadata flags when either source period reached the local 100,000-row safety ceiling; Search Console itself may still return only top data.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
compare_daysNoNumber of days to compare (recent period vs previous period). Must be at least 1. Default is 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
paginationYes
decay_countYes
decay_resultsYes
comparison_periodsYes

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context by disclosing that pagination metadata flags when a source period hits the 100,000-row safety ceiling and that Search Console may still return only top data. This is useful beyond the annotations and schema.

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?

Two sentences with no redundancy. The first sentence front-loads the core purpose and mechanism; the second adds an important data-limitation caveat. Every sentence earns its place.

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

Completeness5/5

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

Given the rich input schema, full parameter descriptions, output schema, and annotations, the description is complete. It covers the central comparison method and the key safety-ceiling caveat. Nothing critical for an agent to select or call the tool correctly appears missing.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters are already well documented: site_url explains formats and permission pitfalls, while compare_days explains default, range, and tradeoffs. The description reinforces the comparison logic but does not add significant parameter meaning beyond the schema.

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?

The description opens with a specific verb ('Identify content decay') and names the resource and method: comparing search clicks for site pages across two contiguous periods and finding pages with the largest traffic drops. This clearly differentiates the tool from siblings like insights.cannibalization and analytics.compare by signal and scope.

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 usage context is implied by the phrase 'Identify content decay' but there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. Siblings such as insights.cannibalization and analytics.compare exist, but the description does not explain how to choose among them.

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

insights.quick_winsIdentify SEO Quick WinsA
Read-only

Find search queries with at least the requested impressions that rank in a configurable striking-distance position range (8-20 by default). Returns clicks, impressions, CTR, and average position; CTR is context, not an eligibility filter. Pagination metadata flags when the local 100,000-row safety ceiling stopped fetching; a false flag does not guarantee Search Console returned every underlying row.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (inclusive) in YYYY-MM-DD format. Note the 2-3 day GSC data lag.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
start_dateYesStart date (inclusive) in YYYY-MM-DD format.
max_positionNoMaximum average position to target (inclusive). Must be greater than 0. Default is 20.
min_positionNoMinimum average position to target (inclusive). Must be greater than 0. Default is 8.
min_impressionsNoMinimum impressions required to consider a query. Must be at least 0. Default is 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
paginationYes
quick_winsYes

TDQS

A4.5/5.0
Behavior5/5

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

The description adds valuable behavior beyond the readOnlyHint and openWorldHint annotations: it clarifies that CTR is reporting context, not a filter, and discloses the 100,000-row safety ceiling with pagination metadata. The caveat that a false flag does not guarantee full Search Console data is especially transparent and prevents over-trust in the result set.

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?

Three sentences, each earning its place: the first defines the core query filter, the second lists return metrics and clarifies CTR's role, the third discloses pagination limitations. It is front-loaded and free of filler.

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

Completeness5/5

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

Given the output schema, annotations, and 100% parameter coverage, the description is complete for safe invocation. It covers defaults, return columns, the non-filter semantics of CTR, and the pagination ceiling. No critical operational detail is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already carries meaning. The description adds some framing around the defaults (8-20 striking-distance range) and confirms min_impressions is an eligibility threshold, but it does not need to compensate for missing parameter documentation.

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?

The description names a specific resource ('search queries') and a precise eligibility shape: impressions threshold plus a striking-distance position range. It clearly differentiates this from sibling tools like insights.cannibalization or insights.content_decay by framing the output as quick wins based on position and impressions.

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

Usage Guidelines4/5

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

The description gives a clear usage context: call this when the agent needs to surface queries just outside the top results that are worth optimizing. It does not explicitly name alternative tools or when-not-to-use conditions, but the eligibility criteria are specific enough to steer selection.

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

reports.weekly_digestWeekly GSC Performance DigestA
Read-only

Generate a plain-language weekly SEO report for one Google Search Console property. Returns a markdown digest covering the 7 days ending on end_date, with week-over-week comparison, top pages, queries gaining or losing traction, and one specific action item. Defaults end_date to today if omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoEnd date (inclusive) in YYYY-MM-DD format. Defaults to today.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
markdownYes

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the readOnlyHint and openWorldHint annotations by disclosing the output format (markdown), the time window (7 days ending on end_date), the comparative nature (week-over-week), included sections, and the default behavior for end_date. There is no contradiction with annotations; the read-only nature is consistent.

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?

Two sentences with no filler. The core purpose is first, followed by the specific output contents and a default behavior note. Every sentence carries information an agent needs.

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

Completeness5/5

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

For a tool with only 2 parameters, 1 required, an output schema, and read-only annotations, the description is sufficiently complete. It explains what the report contains, the date window, the target property scope, and the default end_date behavior. No critical calling context is missing.

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

Parameters3/5

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

With schema description coverage at 100%, the input schema already fully documents both parameters, including the site_url format variants and the default for end_date. The tool description adds no meaning beyond what the schema provides, so baseline 3 is appropriate.

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?

The description clearly identifies a specific verb ('Generate'), a resource ('weekly SEO report for one Google Search Console property'), and the exact output scope (7 days ending on end_date, week-over-week comparison, top pages, query trends, action item). This makes it easy to distinguish from siblings like analytics.query or individual insights tools.

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

Usage Guidelines4/5

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

The description makes the intended use clear: produce a plain-language weekly digest for a single GSC property. It does not explicitly mention when to use a sibling like analytics.query instead, but the context of a scheduled/plain-language weekly report is enough to guide selection. It lacks explicit exclusions or alternative-routing guidance, so it stops short of a 5.

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

server.capabilitiesGet server capabilities and auth statusA
Read-only

List every tool this server exposes, its configured access mode, and whether the user's Google Search Console connection is currently authenticated. Call this first if you're unsure what tools are available, whether the deployment is read-only, or whether the user is connected. Returns the tool catalog plus an access mode and auth status. Takes no arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintYes
toolsYes
serverYes
versionYes
access_modeYes
auth_statusYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds that the tool returns a catalog, access mode, and auth status while taking no arguments. It frames the tool as a safe first step, but does not describe potential edge cases or staleness of auth status; still, the extras are useful.

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?

Three sentences each serve a distinct purpose: describing the output, giving usage guidance, and noting the return payload plus lack of arguments. There is no fluff and the most important information is front-loaded.

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

Completeness5/5

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

With no parameters, an output schema, and safety annotations, the description supplies all needed behavioral context. It even names the return elements, so an agent can decide to call it without opening the schema.

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?

With zero parameters, the schema is trivially complete and the description explicitly reinforces 'Takes no arguments.' This matches the baseline for parameter-free tools and leaves nothing ambiguous.

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?

The description states a specific verb and resource: it lists every tool, the configured access mode, and auth status. This clearly differentiates it from data-oriented siblings like sites.list or analytics.query, marking it as a discovery tool.

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

Usage Guidelines5/5

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

It explicitly says to call this first when unsure about available tools, whether the deployment is read-only, or whether the user is connected. This provides concrete triggers for use and implies it precedes other operations.

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

sitemaps.deleteDelete sitemapA
DestructiveIdempotent

Remove/delete a submitted sitemap from your Google Search Console account.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full URL of the sitemap file to delete, e.g. https://example.com/sitemap.xml
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't repeat those. The description confirms the destructive nature with 'Remove/delete'. It adds the behavior that site_url format errors can cause permission errors even for legitimate owners, which is useful context. No contradiction with annotations.

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 main description is a single concise sentence, but the site_url guidance in the schema is lengthy and highly informative. The description text itself is appropriately short, though it could have front-loaded a warning about the destructive nature.

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

Completeness4/5

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

For a destructive operation with clear annotations (destructiveHint=true), the safety profile is conveyed. The site_url format explanation covers the main usage pitfall. An output schema exists so return value documentation isn't needed. The description could mention idempotence implications, but idempotentHint already covers that.

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?

Schema description coverage is 100%, so parameter semantics are already well-documented in the schema. The description additionally clarifies the site_url format pitfall and instructs calling sites.list first, which adds real value beyond the schema. The feedpath parameter is documented with an example in the schema itself.

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 clearly states the specific action ('Remove/delete a submitted sitemap') and the resource ('sitemap from your Google Search Console account'). It differentiates from siblings like sitemaps.list and sitemaps.submit by focusing on the delete operation, though it doesn't explicitly name alternatives.

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 context implies deletion of an already-submitted sitemap. The site_url parameter description gives important guidance about property formats and calls out that sites.list should be called first if unsure. However, it doesn't explicitly state when not to use this tool or contrast it with sitemaps.submit or sitemaps.get.

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

sitemaps.getGet sitemap detailsA
Read-only

Get status and details of a single sitemap submitted to Google Search Console.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full URL of the sitemap file, e.g. https://example.com/sitemap.xml
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sitemapYes

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 and openWorldHint=true, so the read-only nature is established. The description adds that the operation returns status and details of a submitted sitemap, but it does not disclose additional behavioral context such as error conditions, rate limits, or special case handling. This is acceptable but not richly transparent.

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?

The description is a single, focused sentence with no filler or redundancy. It is appropriately sized for a simple read-only getter and front-loads the core purpose immediately.

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

Completeness5/5

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

For a two-parameter read-only tool with full schema coverage and an output schema, the description is complete enough to support correct invocation. It clarifies that the tool targets a single submitted sitemap, while the schema covers the required parameter semantics and the annotations cover safety.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have detailed descriptions, including site_url format guidance and a note about permission errors. The tool description does not add parameter-level meaning, but the schema carries the full burden, so the baseline score of 3 is appropriate.

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?

The description uses a specific verb ('Get') and resource ('status and details of a single sitemap submitted to Google Search Console'). It clearly identifies what the tool does and, by saying 'single sitemap,' implicitly distinguishes it from sitemaps.list, which deals with multiple sitemaps.

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 provides no explicit guidance about when to use this tool versus the sibling sitemaps.list, sitemaps.submit, or sitemaps.delete. It implies use for an individual sitemap's details but gives no alternative selection criteria or exclusions.

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

sitemaps.listList submitted sitemapsA
Read-only

List all sitemaps submitted for a Search Console property. Returns sitemap URLs, last submitted/downloaded dates, submitted URL counts, warning and error counts, and sitemap status. Google's deprecated sitemap indexed count is intentionally omitted. Use this when the user asks about sitemap health, submission status, or wants to audit which sitemaps are working.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sitemapsYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds valuable behavioral context by enumerating the returned fields and explicitly noting that Google's deprecated sitemap indexed count is intentionally omitted, which prevents an agent from assuming that field will exist. This is useful beyond the annotations without overreaching.

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?

Three sentences with no filler: action and scope first, return values second, and usage guidance last. The mention of the intentional omission is relevant and concise, and every clause earns its place.

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

Completeness5/5

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

For a one-parameter read-only listing tool with an output schema and annotations, the description covers purpose, return values, an important omission, and use cases. Nothing an agent needs to decide whether to call this tool is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the site_url parameter already has a detailed description including format examples and a permission-error warning. The tool description itself adds no extra parameter information, so the baseline of 3 is appropriate; the schema carries the semantic weight.

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?

Names a specific verb ('List') and resource ('all sitemaps submitted for a Search Console property'), and clarifies scope with 'all'. The description also distinguishes itself from sibling sitemap tools by focusing on listing existing submissions, and it specifies the key returned data fields. This makes the tool's purpose unmistakable even without opening the schema.

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

Usage Guidelines4/5

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

Provides explicit usage context: 'Use this when the user asks about sitemap health, submission status, or wants to audit which sitemaps are working.' It does not explicitly state when not to use it or mention alternatives, but for a list operation the positive use cases are clear enough to guide an agent.

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

sitemaps.submitSubmit sitemapA
Idempotent

Submit a new sitemap to your Google Search Console account.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full URL of the sitemap file to submit, e.g. https://example.com/sitemap.xml
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already convey that the operation is mutating, open-world, idempotent, and non-destructive. The description adds no behavioral context beyond stating the action, such as retry safety, external side effects, or error behavior. It does not contradict the annotations.

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?

The description is a single, front-loaded sentence with no filler. Every word earns its place, and the action and target are immediately clear.

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

Completeness4/5

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

For a simple two-parameter submit operation, the description is largely complete when combined with the rich input schema, output schema, and annotations. The only notable gap is lack of explicit usage guidance relative to sibling tools, but the structured context covers invocation needs well.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema provides rich parameter details, especially for site_url with format examples and error guidance. The tool description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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?

The description uses a specific verb ('Submit') with a clear resource ('a new sitemap') and destination ('Google Search Console account'). This clearly distinguishes the tool from sibling sitemap operations like sitemaps.list, sitemaps.get, and sitemaps.delete.

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 guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related calls like sites.list or sitemaps.list. The schema's site_url description hints at calling sites.list first, but the tool description itself provides no usage direction.

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

sites.addAdd Search Console propertyA
Idempotent

Add a new website property to your Google Search Console account. Note: Domain properties require sc-domain prefix (e.g., sc-domain:example.com), URL-prefix properties require full URL (e.g., https://example.com/).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate a mutating but non-destructive operation, and the description adds no side-effect or error behavior beyond the obvious 'Add' semantics. The format note is useful but is parameter constraint rather than behavioral disclosure.

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?

Two tight sentences with the core action front-loaded and the critical format caveat isolated in a short Note. No filler words or redundant elaboration.

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

Completeness4/5

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

For a one-parameter mutating tool with a detailed schema, an output schema, and annotations, the definition covers the essentials. It lacks a brief statement of prerequisites or expected results, but the schema compensates for the main risk of using the wrong identifier format.

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

Parameters3/5

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

The input schema already provides 100% coverage of site_url, including both formats and a warning about permission errors. The description's note largely repeats that schema guidance and adds no new parameter semantics.

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 specific verb ('Add') and resource ('new website property') against a Google Search Console account. The operation is unique among sibling tools like sites.list and sites.delete, so an agent can distinguish it without opening the schema.

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 'Add a new website property' implies when the tool should be used, but the description does not explicitly compare it with alternatives or say when not to use it. The format note is a prerequisite for the parameter, not a usage-routing guideline.

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

sites.deleteDelete Search Console propertyA
DestructiveIdempotent

Remove an existing website property from your Google Search Console account.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false; the description aligns with 'Remove'. It adds context that the property must be 'existing' and scoped to the user's account. The parameter description further warns that an incorrect format returns a permission error even for an owner, which is extra behavioral nuance beyond the annotations.

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?

The description is a single, front-loaded sentence with no filler. It conveys the action and object immediately without wasting tokens.

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

Completeness5/5

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

For a simple destructive operation with one well-documented parameter, annotations conveying destructive behavior, and an output schema present, the description is sufficient. It does not need to explain return values or side effects beyond what annotations and the schema already cover.

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

Parameters3/5

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

The single parameter site_url has 100% schema description coverage, including exact format, examples, and a warning about wrong formats. The tool-level description adds no parameter information, but the schema fully compensates, so the baseline of 3 applies.

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?

The description states a specific verb ('Remove') and a clear resource ('existing website property from your Google Search Console account'). This distinguishes it from sibling tools like sitemaps.delete (which targets sitemaps) and sites.add (which adds a property).

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

Usage Guidelines4/5

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

The description makes the intended use clear: deleting a Search Console property. It does not explicitly name alternatives or exclusions, but the resource distinction is obvious from the title and sibling list. The schema's note to 'call sites.list first if unsure' is parameter guidance rather than tool-selection guidance.

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

sites.listList Search Console propertiesA
Read-only

List the Google Search Console properties (sites) the connected Google account has access to. Returns an array of { siteUrl, permissionLevel }. Call this when the user asks 'what sites do I have?' or 'what properties are connected?', or when the user asks about SEO for a site and hasn't specified which property. Also useful as a discovery step before calling other tools that require a site_url argument.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
sitesYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds meaningful context by stating the exact output format and clarifying that it only lists properties the connected account can access, without contradicting the annotations.

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?

Three sentences, each earning its place: the first states what the tool does and returns, the second gives natural-language triggers, and the third explains the discovery role. No fluff or repetition.

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

Completeness5/5

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

For a zero-parameter, read-only tool with an output schema and clear annotations, this description is complete. It covers purpose, output structure, triggering user intents, and integration with other tools.

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 has zero parameters and an empty input schema, so the baseline is 4. No parameter explanations are needed, and the description appropriately focuses on behavior and usage rather than inputs.

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?

The description states a specific verb ('List') and resource ('Google Search Console properties'), and scopes it to the connected account's accessible sites. It also specifies the return shape ({ siteUrl, permissionLevel }), making it clearly distinct from sibling tools like sites.add and sites.delete.

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

Usage Guidelines4/5

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

The description gives explicit trigger phrases ('what sites do I have?', 'what properties are connected?') and an explicit discovery-use case before tools requiring site_url. It lacks an explicit 'do not use when...' clause, so it's strong but not a perfect 5.

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

urls.inspectInspect URL index statusA
Read-only

Inspect a single URL's index status in Google. Returns: whether the URL is indexed, last crawl date, indexing state, mobile usability, rich-results eligibility, and any AMP results. Use this when the user asks 'is X indexed?', 'why isn't X showing in Google?', or wants a deep look at one specific page. For bulk checks across many URLs, call this tool repeatedly — there is no batch endpoint — but note Google caps URL inspection at roughly 2,000 calls per property per day.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
language_codeNoBCP-47 language code for translatable strings in the result, e.g. 'en-US' or 'de-DE'.en-US
inspection_urlYesThe fully-qualified URL to inspect. Must belong to the site_url property: same domain for sc-domain properties, same URL prefix for URL-prefix properties.

Output Schema

ParametersJSON Schema
NameRequiredDescription
inspection_resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint, but the description adds meaningful behavioral context beyond that: there is no batch endpoint, repeated calls are needed for multiple URLs, and Google caps URL inspections at roughly 2,000 per property per day. It also details the return content, which helps the agent predict what the tool will produce. No contradiction with annotations exists.

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?

The description is compact and well-structured: the first sentence states purpose and outputs, the second gives usage triggers, and the third covers bulk behavior and rate limits. Every sentence contributes useful information without redundancy or filler.

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

Completeness5/5

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

Given the tool's complexity, the description is complete: it covers purpose, outputs, when to use, bulk limitations, rate caps, and the parameter caveats are in the schema. An output schema exists, so the description does not need to enumerate return types. Nothing an agent would need to decide whether and how to call this tool is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the parameter meanings, formats, and constraints are already fully described in the input schema. The tool description itself does not add new parameter-level detail beyond what the schema provides, though it reinforces the single-URL scope.

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?

The description opens with a specific verb and resource: 'Inspect a single URL's index status in Google.' It enumerates the returned dimensions (indexed status, last crawl date, mobile usability, rich-results eligibility, AMP results), making the tool's purpose concrete and unambiguous. It also distinguishes this from bulk operations by emphasizing the single-URL scope.

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

Usage Guidelines5/5

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

The description gives explicit trigger conditions: use when the user asks 'is X indexed?', 'why isn't X showing in Google?', or wants a deep look at one page. It also gives clear guidance for bulk checks ('call this tool repeatedly — there is no batch endpoint') and discloses the 2,000-calls-per-day cap, so an agent knows the operational boundaries.

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. 17 tool updatesv0.1.0
    • First observedanalytics.compare
    • First observedanalytics.query
    • First observedindexing.list_pages
    • First observedindexing.request
    • First observedinsights.cannibalization
    • First observedinsights.content_decay
    • First observedinsights.quick_wins
    • First observedreports.weekly_digest
    • First observedserver.capabilities
    • First observedsitemaps.delete
    • First observedsitemaps.get
    • First observedsitemaps.list
    • First observedsitemaps.submit
    • First observedsites.add
    • First observedsites.delete
    • First observedsites.list
    • First observedurls.inspect

TDQS

A4.1/5.0

Scored across 17 tools

Disambiguation4/5

Most tools are scoped to a distinct resource or analysis, and the descriptions clearly separate analytics.query from analytics.compare and the insights.* helpers. Minor overlap remains between indexing.list_pages and analytics.query with page dimensions, and the three insights tools may look interchangeable until read closely, but an agent can generally select correctly.

Naming Consistency4/5

Tool names follow a consistent dot-namespaced pattern (sites.list, sitemaps.submit, analytics.compare) with snake_case for multi-word operations. The set is readable and predictable, though insights.cannibalization and reports.weekly_digest use noun-phrase operations rather than the verb-first style used by most names.

Tool Count4/5

Seventeen tools is slightly above the ideal 3-15 range, but the count reflects the server's broad scope: property management, sitemaps, URL inspection, analytics, insights, indexing, and reporting. Each tool covers a distinct GSC workflow, so the size feels justified rather than bloated.

Completeness5/5

The server covers the core Google Search Console lifecycle comprehensively: site add/list/delete, sitemap submit/get/list/delete, URL inspection, analytics querying, comparison, insights, indexing, and reporting. There are no critical dead ends, and the few absences such as batch URL inspection are limitations of the underlying API rather than gaps in the tool surface.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Google Search Console, URL Inspection & Indexing API — search analytics, sitemap management, and batch indexing
    13
    528 npm
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    SEO MCP over Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX, and 7 technical-SEO HTTP tools.
    70
    161 PyPI
    544
    MIT