Skip to main content
Glama
justingluska

Google Search Console MCP Server

by justingluska

Google Search Console MCP Server (Unofficial)

npm version License: MIT Node.js CI

An unofficial, open-source Model Context Protocol (MCP) server for Google Search Console. Connect your AI assistant to real SEO data — search analytics, URL inspection, sitemaps, indexing, and smart opportunity detection.

5 steps, under 10 minutes to set up. No coding experience required.

Works with: Claude Desktop, Cursor, VS Code, Windsurf, and any MCP-compatible client.

Available Tools

Tool

Description

Read-Only

search_analytics

Query search performance data with full filtering, all dimensions, and all search types

Yes

compare_periods

Compare two date ranges with automatic delta calculations

Yes

find_opportunities

Identify quick wins, declining pages, and emerging queries

Yes

diagnose_traffic_drops

Find pages that lost traffic and diagnose why (ranking loss, CTR collapse, or demand decline)

Yes

cannibalization

Detect keywords where multiple pages compete against each other

Yes

content_decay

Find pages with 3+ consecutive months of traffic decline

Yes

ctr_benchmarks

Compare your CTR against industry averages by position

Yes

topic_clusters

Analyze performance of all pages under a URL path prefix

Yes

verify_claim

Self-check a data claim before presenting it (anti-hallucination)

Yes

inspect_url

Inspect a single URL's index status, mobile usability, rich results, and AMP

Yes

batch_inspect_urls

Inspect multiple URLs at once (max 100, rate-limited to 2K/day)

Yes

list_sitemaps

List all sitemaps with status, error counts, and content details

Yes

submit_sitemap

Submit a new sitemap to Search Console

No

delete_sitemap

Remove a sitemap from Search Console tracking

No

list_properties

List all accessible Search Console properties with permission levels

Yes

notify_url_update

Send a URL update or deletion notification via the Indexing API

No

get_indexing_status

Check Indexing API notification status for a URL

Yes

Related MCP server: Google Search Console MCP Server

What Can You Do With This?

Search Performance Analysis

  • Pull your top queries, pages, countries, and devices with full filtering

  • Use regex filters to segment branded vs. non-branded traffic

  • Access all search types: Web, Discover, Google News, Image, Video

  • Get hourly traffic data (via the April 2025 GSC API update)

  • Retrieve up to 25,000 rows per request

Track Changes Over Time

  • Compare any two date ranges side-by-side

  • See click, impression, CTR, and position deltas at a glance

  • Detect the impact of algorithm updates, deployments, or SEO changes

Find SEO Opportunities Automatically

  • Quick wins — Queries ranking 5-20 with high impressions but low CTR (optimize titles/descriptions)

  • Declining content — Pages losing traffic compared to the prior period

  • Emerging queries — New or rapidly growing queries you should capitalize on

Diagnose Traffic Issues

  • Traffic drop diagnosis — Find pages that lost traffic and learn why: ranking loss, CTR collapse, or demand decline

  • Keyword cannibalization — Detect queries where multiple pages compete against each other

  • Content decay — Surface pages with 3+ consecutive months of decline before they disappear from SERPs

  • CTR benchmarks — Compare your click-through rates against industry averages by position

  • Topic cluster analysis — See aggregate performance for all pages under a URL path (like /blog/seo/)

Anti-Hallucination Safeguards

  • Data provenance — Every response includes a _meta block confirming the data source, tool, and parameters used

  • Guardrail prompts — Tool descriptions instruct the AI to report exact numbers and avoid speculation

  • Verify claim — A dedicated tool lets the AI self-check any claim by re-querying the API before presenting it

Monitor Technical SEO

  • Inspect any URL's index status, mobile usability, rich results, and AMP

  • Batch inspect up to 100 URLs at once with built-in rate limiting

  • Check canonical status and detect mismatches

  • List, submit, and delete sitemaps

  • Send URL update/deletion notifications via the Indexing API

Quick Start

npx gluska-seo-gsc-mcp

Setup

Prerequisites

  1. A Google Cloud Project with the Search Console API enabled

  2. OAuth 2.0 credentials (Desktop app) or a Service Account

  3. Node.js >= 18

Step 1: Enable the Search Console API

  1. Go to the Google Cloud Console

  2. Select or create a project

  3. Go to APIs & Services > Library

  4. Search for "Google Search Console API" and click Enable

  5. If you plan to use the Indexing API tools, also enable the Web Search Indexing API

Step 2: Create Credentials

Best for automation, CI/CD, and MCP servers — no browser interaction needed.

  1. In Google Cloud Console, go to APIs & Services > Credentials

  2. Click Create Credentials > Service Account

  3. Give it a name (e.g., "gsc-mcp") and click Create

  4. Skip the optional permissions steps and click Done

  5. Click on the newly created service account

  6. Go to the Keys tab > Add Key > Create new key > JSON

  7. Save the downloaded JSON file somewhere safe

Then add the service account to Search Console:

  1. Go to Google Search Console

  2. Select your property

  3. Go to Settings > Users and permissions > Add user

  4. Paste the client_email from the JSON file (looks like name@project.iam.gserviceaccount.com)

  5. Set permission to Full and click Add

Set the environment variable:

export GSC_SERVICE_ACCOUNT_PATH=/path/to/service-account.json

Option B: OAuth 2.0 (Interactive)

Best for personal use when you want to authenticate as yourself.

  1. In Google Cloud Console, go to APIs & Services > Credentials

  2. Click Create Credentials > OAuth client ID

  3. Select Desktop app as the application type

  4. Download the credentials JSON file

Set the environment variable:

export GSC_OAUTH_CREDENTIALS_PATH=/path/to/credentials.json

On first run, a browser window opens for authentication. Tokens are cached automatically for subsequent use.

Step 3: Configure Your MCP Client

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "google-search-console": {
      "command": "npx",
      "args": ["-y", "gluska-seo-gsc-mcp"],
      "env": {
        "GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add to your .cursor/mcp.json:

{
  "mcpServers": {
    "google-search-console": {
      "command": "npx",
      "args": ["-y", "gluska-seo-gsc-mcp"],
      "env": {
        "GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Add to your .vscode/mcp.json:

{
  "servers": {
    "google-search-console": {
      "command": "npx",
      "args": ["-y", "gluska-seo-gsc-mcp"],
      "env": {
        "GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Add to your ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "google-search-console": {
      "command": "npx",
      "args": ["-y", "gluska-seo-gsc-mcp"],
      "env": {
        "GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Example Prompts

Here are some things you can ask your AI assistant once the MCP is connected:

Search Performance

What You Can Ask

Tool Used

"Show me my top 20 queries by clicks for the last 7 days"

search_analytics

"What are my top performing pages?"

search_analytics

"Break down my traffic by device type"

search_analytics

"Which countries drive the most impressions?"

search_analytics

"Show me all queries containing 'tutorial' with regex"

search_analytics

"What's my Discover traffic look like?"

search_analytics

"Show me hourly traffic data for the past 3 days"

search_analytics

"Filter my queries to only non-branded terms"

search_analytics

Comparisons

What You Can Ask

Tool Used

"Compare this week's performance to last week"

compare_periods

"How did March compare to February?"

compare_periods

"Show me which queries gained or lost the most clicks week over week"

compare_periods

Opportunities

What You Can Ask

Tool Used

"Find quick win opportunities — high impressions but low CTR"

find_opportunities

"What content is declining in traffic?"

find_opportunities

"Are there any new emerging queries I should know about?"

find_opportunities

"Give me a full SEO opportunity analysis"

find_opportunities

Traffic Diagnosis & Optimization

What You Can Ask

Tool Used

"Which pages lost traffic recently and why?"

diagnose_traffic_drops

"Are any of my pages cannibalizing each other?"

cannibalization

"Which pages are slowly dying?"

content_decay

"How does my CTR compare to benchmarks?"

ctr_benchmarks

"Show me CTR benchmarks for my top queries"

ctr_benchmarks

"How is my /blog/ section performing?"

topic_clusters

"Show me the performance of all pages under /docs/"

topic_clusters

Technical SEO

What You Can Ask

Tool Used

"Is https://example.com/my-page indexed?"

inspect_url

"Check these 10 URLs and tell me which have indexing issues"

batch_inspect_urls

"List all my sitemaps and their status"

list_sitemaps

"Submit my new sitemap at https://example.com/sitemap-blog.xml"

submit_sitemap

"Which Search Console properties do I have access to?"

list_properties

"Notify Google that I updated https://example.com/page"

notify_url_update

Multi-Tool Combinations

What You Can Ask

Tools Used

"List my properties, then show top queries for each one"

list_properties + search_analytics

"Find quick wins and then inspect the top opportunity pages"

find_opportunities + batch_inspect_urls

"Compare this week to last week, then find what's declining"

compare_periods + find_opportunities

"Check my sitemaps, then inspect URLs from any with errors"

list_sitemaps + batch_inspect_urls

Example Outputs

Here's what the tool output actually looks like. Examples use hiretalent.ph with sample data for illustration:

search_analytics — "Show me my top queries"

Search Analytics for sc-domain:hiretalent.ph
Period: 2026-03-15 to 2026-03-22 | Search Type: web | Data: all
Total: 14.8K clicks, 412.5K impressions, 3.59% avg CTR, 5.2 avg position
Showing 10 rows

Query                                     | Clicks | Impressions | CTR    | Position
----------------------------------------- | ------ | ----------- | ------ | --------
hire talent philippines                   | 1.8K   | 5.2K        | 34.62% | 1.3
hire remote filipino workers              | 1.4K   | 8.1K        | 17.28% | 2.1
outsource to philippines                  | 1.2K   | 15.3K       | 7.84%  | 3.5
filipino virtual assistant                | 980    | 22.4K       | 4.37%  | 4.2
philippine staffing agency                | 870    | 6.8K        | 12.79% | 2.8
best hiring platform philippines          | 640    | 4.1K        | 15.61% | 1.9
remote workers philippines cost           | 520    | 18.7K       | 2.78%  | 5.6
hire developers philippines               | 410    | 9.3K        | 4.41%  | 3.7
hiretalent                                | 380    | 620         | 61.29% | 1.0
outsourcing vs hiring in-house            | 290    | 31.2K       | 0.93%  | 7.8

search_analytics — "Break down traffic by device"

Search Analytics for sc-domain:hiretalent.ph
Period: 2026-03-15 to 2026-03-22 | Search Type: web | Data: all
Total: 14.8K clicks, 412.5K impressions, 3.59% avg CTR, 5.2 avg position
Showing 3 rows

Device  | Clicks | Impressions | CTR   | Position
------- | ------ | ----------- | ----- | --------
MOBILE  | 8.2K   | 265.8K      | 3.09% | 5.8
DESKTOP | 6.1K   | 134.2K      | 4.55% | 4.3
TABLET  | 510    | 12.5K       | 4.08% | 5.1

find_opportunities — "Find quick win opportunities"

Opportunity Analysis for sc-domain:hiretalent.ph
Recent: 2026-03-15 to 2026-03-22 | Prior: 2026-02-15 to 2026-02-22

## Quick Wins
High-impression queries ranking 5-20 with low CTR. Optimizing titles/descriptions could boost clicks significantly.

Query                                | Page                                                    | Clicks | Impressions | CTR   | Position
------------------------------------ | ------------------------------------------------------- | ------ | ----------- | ----- | --------
outsourcing vs hiring in-house       | https://hiretalent.ph/blog/outsourcing-vs-inhouse/      | 290    | 31.2K       | 0.93% | 7.8
how much to pay filipino VA          | https://hiretalent.ph/blog/filipino-va-salary-guide/    | 145    | 24.6K       | 0.59% | 9.4
remote team management tips          | https://hiretalent.ph/blog/managing-remote-teams/       | 82     | 18.9K       | 0.43% | 11.2
philippines tech talent market       | https://hiretalent.ph/blog/ph-tech-talent-2026/         | 54     | 12.3K       | 0.44% | 8.6
best countries to outsource to       | https://hiretalent.ph/blog/top-outsourcing-countries/   | 38     | 9.7K        | 0.39% | 10.1

compare_periods — "Compare this week to last week"

Period Comparison for sc-domain:hiretalent.ph
Period 1: 2026-03-08 to 2026-03-14
Period 2: 2026-03-15 to 2026-03-21

Overall: Clicks 12.1K → 14.8K (+22.3%)
         Impressions 358.9K → 412.5K (+14.9%)

Top changes (sorted by absolute click delta):

Query                            | P1 Clicks | P2 Clicks | Delta | Change  | P1 Pos | P2 Pos
-------------------------------- | --------- | --------- | ----- | ------- | ------ | ------
hire remote filipino workers     | 890       | 1.4K      | +510  | +57.3%  | 3.4    | 2.1
outsource to philippines         | 980       | 1.2K      | +220  | +22.4%  | 4.1    | 3.5
filipino virtual assistant       | 1.1K      | 980       | -120  | -10.9%  | 3.8    | 4.2
hire talent philippines          | 1.6K      | 1.8K      | +200  | +12.5%  | 1.5    | 1.3
remote workers philippines cost  | 620       | 520       | -100  | -16.1%  | 4.9    | 5.6

inspect_url — "Is this page indexed?"

URL Inspection: https://hiretalent.ph/blog/outsourcing-vs-inhouse/

## Index Status
Verdict: PASS
Coverage: Submitted and indexed
Indexing: INDEXING_ALLOWED
Robots.txt: ALLOWED
Page fetch: SUCCESSFUL
Last crawl: 2026-03-20T14:32:00Z
Crawled as: DESKTOP
Google canonical: https://hiretalent.ph/blog/outsourcing-vs-inhouse/
User canonical: https://hiretalent.ph/blog/outsourcing-vs-inhouse/
Sitemaps: https://hiretalent.ph/sitemap.xml

## Mobile Usability
Verdict: PASS

View in Search Console: https://search.google.com/search-console/inspect?...

batch_inspect_urls — "Check these URLs for indexing issues"

Batch URL Inspection for sc-domain:hiretalent.ph
Inspected: 5/5 | Errors: 0
Quota remaining: 1995/day

## Summary
  PASS: 3
  NEUTRAL: 1
  FAIL: 1

## URLs With Issues
  NEUTRAL | https://hiretalent.ph/blog/old-salary-data-2024/
    coverage=Crawled - currently not indexed, indexing=INDEXING_ALLOWED, crawled=2026-03-18
  FAIL | https://hiretalent.ph/staging/new-landing-page/
    coverage=Blocked by robots.txt, indexing=BLOCKED_BY_ROBOTS_TXT, crawled=never

list_sitemaps — "Show me my sitemaps"

Sitemaps for sc-domain:hiretalent.ph
Total: 2 sitemap(s)

Sitemap URL                                | Type    | Status    | Last Submitted | Errors | Warnings
------------------------------------------ | ------- | --------- | -------------- | ------ | --------
https://hiretalent.ph/sitemap.xml          | Index   | Processed | 2026-03-01     | 0      | 0
https://hiretalent.ph/sitemap-blog.xml     | Sitemap | Processed | 2026-03-18     | 0      | 1

## Content Details

https://hiretalent.ph/sitemap.xml:
  web: 1450 submitted, 1380 indexed

https://hiretalent.ph/sitemap-blog.xml:
  web: 285 submitted, 264 indexed

list_properties — "Which properties do I have access to?"

Search Console Properties
Total: 2 property/properties

Property                      | Type       | Permission
----------------------------- | ---------- | ----------
sc-domain:hiretalent.ph       | Domain     | siteOwner
https://blog.hiretalent.ph/   | URL Prefix | siteFullUser

Use any of these site URLs with other tools (e.g., search_analytics, inspect_url).

Environment Variables

Variable

Description

Required

GSC_SERVICE_ACCOUNT_PATH

Path to service account JSON

One of these

GSC_OAUTH_CREDENTIALS_PATH

Path to OAuth credentials JSON

is required

GSC_OAUTH_TOKEN_PATH

Path to store OAuth tokens (default: ~/.gsc-mcp-token.json)

No

GSC_DATA_STATE

Default data freshness: final, all, or hourly_all (default: all)

No

GSC_DEFAULT_SITE_URL

Default site URL to use when not specified

No

GSC_DEBUG

Set to true for verbose debug logging

No

API Rate Limits

This server has built-in rate limiting to respect Google's API quotas:

API

Rate Limit

Daily Limit

Search Analytics

1,200 requests/min

URL Inspection

600 requests/min

2,000/day

Indexing API (publish)

200 requests/min

200/day

Indexing API (metadata)

600 requests/min

600/day

All other endpoints

200 requests/min

You don't need to worry about hitting these — the server manages them automatically. If a quota is reached, you'll get a clear error message explaining what happened and when to retry.

Troubleshooting

"User does not have sufficient permission for site"

  • Make sure you added the service account email (or your OAuth user) to the property in Search Console

  • Go to Settings > Users and permissions in Search Console and verify the email is listed

  • For domain properties, use the format sc-domain:example.com

  • For URL-prefix properties, include the protocol and trailing slash: https://example.com/

"No data found" for a query

  • GSC data has a 2-3 day delay for finalized data. Try setting dataState to "all" for fresher (but potentially partial) data

  • Verify the date range — data is available for the last 16 months

  • Check that the site actually has search traffic for the specified search type

"Service account file not found"

  • Double-check the path in GSC_SERVICE_ACCOUNT_PATH — it must be an absolute path or relative to where the server runs

  • Make sure the JSON file was downloaded correctly from Google Cloud Console

OAuth browser window doesn't open

  • This is a known limitation with stdio-based MCP servers. The server tries to open your default browser, but some MCP clients block this

  • Workaround: Use a Service Account instead (recommended for MCP use)

  • Or run the server manually once (npx gluska-seo-gsc-mcp) in a terminal to complete the OAuth flow, then use the cached token in your MCP client

"spawn npx ENOENT" on macOS

  • Claude Desktop and other MCP clients may not inherit your shell's PATH

  • Fix: Use the full path to npx in your config. Find it with which npx in your terminal

  • Example: Replace "command": "npx" with "command": "/usr/local/bin/npx" (use your actual path)

Indexing API returns 403

  • The Indexing API requires separate enablement — make sure you enabled "Web Search Indexing API" in Google Cloud Console

  • Note: The Indexing API is officially supported only for pages with JobPosting or BroadcastEvent structured data

Development

git clone https://github.com/justingluska/gluska-seo-gsc-mcp.git
cd gluska-seo-gsc-mcp
npm install
npm run build
npm test

Running Tests

npm test              # Run all tests
npm run test:watch    # Watch mode
npm run test:coverage # With coverage report

Project Structure

src/
  cli.ts              # Entry point (stdio transport)
  server.ts           # MCP server with all tool registrations
  auth/
    client.ts         # OAuth 2.0 + Service Account authentication
  api/
    search-console.ts # Google Search Console API wrapper
    indexing.ts        # Google Indexing API wrapper
  tools/
    search-analytics.ts   # search_analytics tool
    compare-periods.ts    # compare_periods tool
    find-opportunities.ts # find_opportunities tool
    traffic-drops.ts          # diagnose_traffic_drops tool (NEW)
    cannibalization.ts    # cannibalization detection tool (NEW)
    content-decay.ts      # content_decay tool (NEW)
    ctr-benchmarks.ts     # ctr_benchmarks tool (NEW)
    topic-clusters.ts     # topic_clusters tool (NEW)
    verify-claim.ts       # verify_claim anti-hallucination tool (NEW)
    inspect-url.ts        # inspect_url + batch_inspect_urls tools
    sitemaps.ts           # list/submit/delete sitemap tools
    properties.ts         # list_properties tool
    indexing.ts           # notify_url_update + get_indexing_status tools
  utils/
    rate-limiter.ts   # Token bucket rate limiter + daily quota tracker
    dates.ts          # Date utilities
    formatting.ts     # Response formatting (tables, numbers, CTR)
    meta.ts           # Data provenance metadata (NEW)
    logger.ts         # stderr-only logger
tests/
  tools/              # Tool-level tests with mocked APIs
  utils/              # Utility function tests

Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/my-feature)

  3. Make your changes

  4. Run tests (npm test)

  5. Commit your changes

  6. Push to the branch and open a Pull Request

Acknowledgments

The anti-hallucination features in this project — data provenance (_meta blocks), guardrail prompts, and the verify_claim tool — were inspired by Suganthan Mohanadasan's work on his GSC MCP server and his blog post about building trust into AI-powered SEO tools. The ideas for dedicated cannibalization detection, content decay tracking, CTR benchmarks, traffic drop diagnosis, and topic cluster analysis were also informed by his write-up. Thanks Suganthan for sharing your work with the community.

Disclaimer

This is an unofficial, community-built tool and is not affiliated with, endorsed by, or sponsored by Google. Google Search Console is a trademark of Google LLC. This project uses the Google Search Console API under Google's Terms of Service.

License

MIT

Available Tools

17 tools
batch_inspect_urlsBatch Inspect URLsA
Read-only

Inspect multiple URLs at once. Returns a summary of index status across all URLs with issues highlighted. Rate-limited to respect the 2,000/day quota. Max 100 URLs per call. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesURLs to inspect (max 100)
siteUrlNoThe site URL that contains these pages. Falls back to GSC_DEFAULT_SITE_URL if not provided.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint=true annotation, the description discloses a concrete rate limit (2,000/day), a per-call cap (100 URLs), and the nature of the return data (summary with issues highlighted). It also adds a crucial behavioral instruction: base analysis only on returned data, report exact numbers, and do not speculate. This meaningfully enriches what annotations alone 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?

The description is compact and front-loaded with the core purpose, followed by limits and a high-value analysis directive. The IMPORTANT block, while emphatic, earns its place because it shapes agent behavior on a data-querying tool. Every sentence contributes.

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, batch read tool with no output schema, the description is complete: it states what the tool does, what it returns, its rate and size limits, and how the agent should handle the returned data. It also benefits from schema coverage for parameter details, so nothing essential 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%, with both urls and siteUrl already documented in the input schema. The description does not add substantial new parameter-level meaning beyond what schema provides; it only restates the max 100 URLs constraint that is already visible in maxItems. Baseline 3 is therefore 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 opens with a specific verb and resource ('Inspect multiple URLs at once') and distinguishes it from the single-URL sibling tool by emphasizing batch operation. It also states the output ('summary of index status across all URLs with issues highlighted'), making the tool's purpose unmistakable.

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 signals when to use this tool: when inspecting multiple URLs at once. It also gives operational guardrails (max 100 URLs per call, rate limit). However, it does not explicitly name the alternative inspect_url or state 'for a single URL, use inspect_url instead,' so it stops short of a full when-not/exclusion statement.

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

cannibalizationKeyword CannibalizationA
Read-only

Detect keyword cannibalization — queries where multiple pages from the same site compete against each other, splitting ranking potential. Shows which pages rank for the same keywords so you can consolidate or differentiate. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (default: 2 days ago)
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows to fetch (default: 10000)
startDateNoStart date in YYYY-MM-DD format (default: 9 days ago)
searchTypeNo
minImpressionsNoMinimum impressions for a query to be analyzed (default: 50)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=false, and destructiveHint=false. The description adds meaningful behavioral guidance beyond these: base analysis only on returned data, report exact numbers, avoid speculation, and explicitly say when data is insufficient. This aligns with openWorldHint=false and gives the agent concrete handling instructions.

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 defines the concept, the second states the output value, and the third provides essential analytical guardrails. Every sentence earns its place; there is no filler or repetition of schema details.

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?

With no output schema, the description partially conveys what the tool returns by stating it shows which pages rank for the same keywords and implies numeric results through 'report exact numbers.' It is sufficient for an agent to understand the tool's general output, though a more explicit return shape or field-level detail would improve completeness given the absence of an output schema.

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 83%, so the parameters are already well documented in the schema. The description adds no parameter-specific meaning beyond what the schema provides, such as date handling, row limits, or minImpressions. The baseline of 3 applies because the schema carries the parameter documentation burden.

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 tool detects keyword cannibalization and defines it as multiple pages from the same site competing for the same queries, splitting ranking potential. It identifies the output (which pages rank for the same keywords) but does not explicitly differentiate itself from sibling tools like search_analytics or topic_clusters, so it is clear but lacks explicit sibling positioning.

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?

Usage is implied: use when you need to detect keyword cannibalization or decide whether to consolidate pages. However, the description does not state when to prefer this tool over related tools such as find_opportunities or topic_clusters, nor does it provide exclusions or alternative routing. The IMPORTANT note is about data discipline, not about when to invoke the tool.

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

compare_periodsCompare PeriodsA
Read-only

Compare search performance between two date ranges. Returns delta calculations for clicks, impressions, CTR, and position. Useful for tracking impact of SEO changes, algorithm updates, or seasonal trends. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows per period (default: 100)
dimensionsNoDimensions to compare by (default: ["query"])
searchTypeNo
period1EndDateYesFirst period end date (YYYY-MM-DD)
period2EndDateYesSecond period end date (YYYY-MM-DD)
period1StartDateYesFirst period start date (YYYY-MM-DD) — the "before" period
period2StartDateYesSecond period start date (YYYY-MM-DD) — the "after" period

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds value beyond annotations by stating the return type (delta calculations) and enforcing a data-only analysis rule, which is useful for agents using the response.

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 concise and front-loaded: purpose, output, use cases, then a critical guidance note. Every sentence earns its place, and there is no redundant filler.

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 comparison tool with no output schema, the description sufficiently describes the returned metrics and sets expectations for data-driven analysis. Minor gaps remain around delta sign conventions and exact response shape, but the tool is still completely invocable from the information provided.

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 88%, so the structured schema already documents most parameters. The description mentions 'two date ranges' and the computed metrics but adds little parameter-level meaning beyond what the schema provides. 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 opens with a specific verb and resource ('Compare search performance between two date ranges') and names the exact output metrics (deltas for clicks, impressions, CTR, position). This inherently distinguishes it from single-period analytics tools like search_analytics, even though no sibling is named explicitly.

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 clear use cases: tracking SEO changes, algorithm updates, and seasonal trends. It provides good context for when to select this tool, though it does not explicitly state when not to use it or name alternatives.

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

content_decayContent DecayA
Read-only

Detect content decay — pages with 3 or more consecutive months of traffic decline. One bad month is noise; sustained decline is a pattern that needs attention. Surfaces pages that should be refreshed before they disappear from search results. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthsNoNumber of consecutive declining months to flag (default: 3)
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows per month query (default: 5000)
minClicksNoMinimum clicks in the oldest month to be considered (default: 20)
searchTypeNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark it read-only/non-destructive, and the description adds meaningful handling guidance: 'Base your analysis only on the data returned by this tool', 'Report exact numbers', and 'Do not speculate'. It also recognizes potential data insufficiency and instructs the agent to say so, which goes beyond the structured hints.

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 front-loaded with the core definition and threshold, then adds concise usage/output behavior. Every sentence earns its place; the 'IMPORTANT' clause is compact and high-value rather than redundant.

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 read-only analysis tool with no output schema, the description explains what it identifies, the threshold logic, and how to handle insufficient data. It does not spell out the exact response shape/metrics, but an agent has enough context to invoke the tool and interpret the returned pages.

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?

Input schema covers 80% of parameters with clear descriptions. The tool description adds a conceptual context for `months` and 'traffic decline', but does not materially explain siteUrl, rowLimit, minClicks, or searchType beyond what the schema already provides. Schema carries the parameter burden, 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?

Description states a precise objective ('Detect content decay') with an exact operational definition ('pages with 3 or more consecutive months of traffic decline') and clarifies the threshold ('One bad month is noise'). This distinguishes it from broader siblings like diagnose_traffic_drops by focusing on sustained multi-month decline.

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 frames the intended use: surface pages needing refresh before disappearing from search results, and implies this is for sustained decline rather than isolated one-month dips. It does not explicitly name alternatives or provide when-not-to-use exclusions, but the context is sufficient for an agent to select it.

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

ctr_benchmarksCTR vs BenchmarksA
Read-only

Compare your actual click-through rates against industry-average benchmarks by position. Identifies pages or queries with CTR below expected levels — candidates for title tag and meta description optimization. Benchmarks are aggregated from multiple studies and should be used as directional guidance. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (default: 2 days ago)
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows to analyze (default: 1000)
dimensionNoGroup by query or page (default: "page")
startDateNoStart date in YYYY-MM-DD format (default: 9 days ago)
searchTypeNo

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 destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: benchmarks are aggregated from multiple studies (directional only), and the tool's output should be treated as evidence-based and not over-interpreted. It doesn't describe return format, but the strong guardrails about data usage compensate.

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 description is well-structured: the core purpose is in the first sentence, followed by the use case and the critical behavioral guardrails. It's slightly longer than ideal but every sentence earns its place, especially the IMPORTANT directive that constrains an AI agent's output.

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 read-only comparison tool with no output schema, the description covers what the tool does, why to use it, and how to interpret results. It lacks explicit return-format documentation, but the 'do not speculate, report exact numbers' directive tells the agent what to expect qualitatively. Given the rich parameter schema and readOnly annotation, this is reasonably complete.

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 83%, so most parameters are already documented in the schema. The description doesn't add parameter-specific details beyond what the schema provides, but it does clarify the overall purpose of the parameters (position-based benchmark comparison). Baseline 3 is appropriate given the high schema coverage.

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 ('Compare'), a specific resource ('actual click-through rates against industry-average benchmarks by position'), and the intended use case ('Identifies pages or queries with CTR below expected levels'). This clearly distinguishes it from the sibling tools like search_analytics (which reports raw metrics) and find_opportunities (which is broader).

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 explicitly frames the comparison against industry benchmarks and notes they are 'directional guidance'. It also gives strong guidance on how to use the data: base analysis only on the returned data, report exact numbers, don't speculate, and say if data is insufficient. This is clear usage context with an implied contrast to other analytics tools.

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

delete_sitemapDelete SitemapA
Destructive

Remove a sitemap from Search Console tracking. This does not prevent Google from crawling URLs discovered from this sitemap.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
sitemapUrlYesThe full URL of the sitemap to delete

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already signal destructiveHint=true and readOnlyHint=false. The description goes beyond this by adding a non-obvious behavioral nuance: removing the sitemap from tracking does not block crawling of its URLs. This is valuable context that the structured annotations cannot convey. It doesn't mention reversibility, but the destructive annotation already covers the risk profile.

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, no filler, and the key action is front-loaded. The clarifying second sentence earns its place because it prevents a dangerous misconception about crawling behavior.

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?

Given the tool's simplicity, full schema coverage, and destructive annotation, the description covers the essential operational facts. It could additionally state that the action is irreversible or describe the response, but these are minor gaps for a low-complexity deletion tool.

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 schema already documents both siteUrl and sitemapUrl adequately. The description adds no parameter-level detail beyond what the schema provides, which matches the baseline expectation for full schema coverage.

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 resource ('a sitemap from Search Console tracking'), and immediately clarifies an important boundary: it does not prevent Google from crawling discovered URLs. This clearly distinguishes the deletion from crawling-related behaviors and sibling tools like submit_sitemap.

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 core usage context clear: use this when you want to stop tracking a sitemap in Search Console. It also provides an explicit exclusion by noting the tool does not stop Google from crawling URLs, which prevents a common misuse. However, it doesn't explicitly name alternatives or state when another sibling would be more appropriate.

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

diagnose_traffic_dropsDiagnose Traffic DropsA
Read-only

Find pages that lost traffic and diagnose why. Categorizes each drop as: ranking loss (position got worse), CTR collapse (position held but CTR dropped — possible SERP feature changes), or demand decline (search impressions dropped — seasonality or trend shift). Compares recent 7-day window to 28 days prior. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows to analyze per period (default: 5000)
searchTypeNo
minClicksDropNoMinimum click decrease to flag a page (default: 10)

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behaviors: the window comparison, the categorization logic, and the strict instruction to base analysis only on returned data without speculating. It also instructs the agent to admit when data is insufficient, which is valuable non-obvious behavioral guidance.

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 tightly written and front-loads the core purpose before explaining categories and analytical rules. Every sentence adds useful information, including the important anti-speculation guardrail, with no filler or redundancy.

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 provides the analytical framing, categories, time windows, and reporting constraints, which is strong for a read-only diagnostic tool. However, there is no output schema and the description does not explicitly describe the response shape or fields, so an agent must infer what exact numbers will be returned.

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 75%, with siteUrl, rowLimit, and minClicksDrop already documented in the schema. The description adds no parameter-specific semantics but does not need to because the schema handles most of it. searchType has enum values but no description, and the tool description does not compensate for that gap.

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: 'Find pages that lost traffic and diagnose why.' It then enumerates concrete drop categories (ranking loss, CTR collapse, demand decline), which clearly distinguishes this diagnostic tool from generic analytics or indexing siblings.

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 implies when to use this tool: when diagnosing traffic drops with a 7-day vs 28-day comparison. It does not explicitly name alternative sibling tools or state when not to use it, but the purpose is specific enough that an agent can infer the correct context.

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

find_opportunitiesFind SEO OpportunitiesA
Read-only

Automatically identify SEO opportunities: quick wins (position 5-20 with high impressions but low CTR), declining content (pages losing traffic), and emerging queries (new or rapidly growing). Compares recent 7-day window to 28 days prior. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoType of opportunities to find (default: "all")
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows to analyze (default: 5000)
searchTypeNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate a read-only, non-destructive operation. The description adds meaningful behavioral context: it compares a recent 7-day window to 28 days prior, and it explicitly instructs the agent to rely only on returned data, report exact numbers, and avoid speculation. This goes beyond the structural annotations without contradicting them.

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 description is front-loaded with the tool's purpose and opportunity categories, then adds the comparison window and usage constraints. It is slightly verbose with the IMPORTANT clause, but every sentence carries operational value and there is no filler.

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 tool with no output schema, the description gives a solid understanding of what the tool does, the data window it uses, and how the agent should handle results. It does not describe the response shape or clarify the searchType parameter, but the agent instructions to avoid speculation partially compensate for the missing output details.

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 schema documents three of four parameters with descriptions, so baseline semantic coverage is already solid. The description enriches the 'type' semantics by explaining what each opportunity category means (e.g., positions 5-20 with high impressions but low CTR), but it does not clarify searchType, which has no schema description.

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 tool's function: automatically identify SEO opportunities across three named categories (quick wins, declining content, emerging queries). It is specific about the resource and verb, but it does not explicitly differentiate itself from related siblings like diagnose_traffic_drops or content_decay.

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 description implies when to use the tool by naming the opportunity types and the 7-day vs 28-day comparison window. However, it does not explicitly state when to prefer this tool over sibling tools such as compare_periods or diagnose_traffic_drops, nor does it give exclusions.

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

get_indexing_statusGet Indexing Notification StatusA
Read-only

Check the status of Indexing API notifications for a URL. Shows the most recent update and removal notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to check notification status for

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already define the operation as read-only (readOnlyHint=true) and non-destructive (destructiveHint=false). The description adds a little context by stating what the tool returns (most recent update and removal notifications), but does not disclose other behaviors like empty states, response format, or potential errors. With annotations covering safety, this is adequate but not rich.

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 fluff. The primary action is front-loaded, and the follow-up sentence clarifies the output scope. Every word 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 simple one-parameter read-only tool with no output schema, the description is complete enough for an agent to select and invoke it correctly. It states what is checked, what the result contains, and the required input is clear from the schema. Nothing essential 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 schema provides 100% coverage for the sole parameter, with a description ('The URL to check notification status for'). The tool description simply repeats 'for a URL' without adding value beyond the schema, so the baseline 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 ('Check') and a clear resource ('status of Indexing API notifications for a URL'), and specifies that it shows the most recent update and removal notifications. This clearly differentiates it from siblings like notify_url_update because it's about checking status, not sending notifications.

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 description implies the usage scenario: after notifications have been sent, an agent can check their status. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention any exclusions or prerequisite actions. This leaves the guidance at an implied level.

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

inspect_urlInspect URLA
Read-only

Inspect a single URL in Google Search Console. Returns index status, mobile usability, rich results, AMP status, canonical information, and last crawl time. Daily quota: 2,000 inspections. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to inspect
siteUrlNoThe site URL that contains this page. Falls back to GSC_DEFAULT_SITE_URL if not provided.
languageCodeNoLanguage code for results (e.g., "en-US")

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already carry read-only/non-destructive safety, and the description adds the daily 2,000-inspection quota plus a strong evidence-handling policy (report only returned data, no speculation, admit insufficient data). This goes beyond what annotations provide, though it does not disclose error/response edge cases.

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 description is dense and well-ordered: purpose, returned data, quota, then an important caveat. It is slightly verbose due to the repeated guidance in the IMPORTANT sentence, but every part is relevant.

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?

With no output schema, the description compensates by enumerating the returned data fields and adds the quota and non-speculation rules. An agent has enough to call it correctly, though error/empty-response behavior is not covered.

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 already documents all three parameters including the siteUrl fallback. The description adds no parameter-level meaning beyond the schema, 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 ('Inspect') on a specific resource ('a single URL in Google Search Console') and lists concrete returned data (index status, mobile usability, rich results, AMP status, canonical, last crawl time). This clearly distinguishes it from siblings like batch_inspect_urls and search_analytics.

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 establishes clear scope—single URL inspection and the exact diagnostics returned—so an agent can infer when this tool is appropriate. It does not explicitly name alternatives or state when-not-to-use, though the 'single URL' wording plus the sibling list makes the batch alternative obvious.

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

list_propertiesList PropertiesA
Read-only

List all Google Search Console properties accessible to the authenticated account. Shows property type (domain vs URL prefix) and permission level.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as a read-only, non-destructive operation. The description adds useful behavioral context by clarifying that the listing is scoped to the authenticated account and that the response includes property type and permission level, which is not available from annotations or the empty 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 short sentences with no filler. The main action and scope are front-loaded, and the added sentence about output fields earns its place by describing what the agent will receive.

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 listing tool, the description is sufficient: it names the resource, the scope, and the output contents. There is no output schema, so mentioning property type and permission level helps the agent understand the response shape.

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 the baseline is 4. The description gives no parameter details, but none are needed for a zero-parameter tool, and schema coverage is trivially complete.

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 verb ('List'), a specific resource ('Google Search Console properties'), and a clear scope ('accessible to the authenticated account'). It also states what the result contains (property type and permission level), making it easy to distinguish from sibling tools like list_sitemaps.

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 intended use is clear: call this when you need to see all properties the authenticated account can access. It does not explicitly contrast with alternatives, but no sibling tool is a direct alternative for this listing operation, so the lack of exclusions is acceptable.

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

list_sitemapsList SitemapsA
Read-only

List all sitemaps submitted for a site in Search Console. Shows status, submission date, error/warning counts, and content type details (URLs submitted vs indexed). IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare this a read-only operation, so no contradiction exists. The description adds useful behavioral context by enumerating the returned data categories (status, submission date, error/warning counts, URLs submitted vs indexed) and by instructing the agent to avoid speculation and report exact numbers, which meaningfully shapes how the tool output should be used.

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 front-loaded with the core action. The additional warning sentences are directly valuable for correct use of the tool's output and do not feel redundant or padded.

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 tool with one optional parameter, read-only annotations, and no output schema, the description conveys the main return contents and cautions against over-interpreting data. It does not provide a full field-by-field schema of the response, but it covers what an agent needs to call and interpret the tool effectively.

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%: the single parameter siteUrl is already documented with its fallback behavior. The description does not add any further parameter-level meaning, 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.

Purpose4/5

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

The description clearly names the action ('List all sitemaps submitted for a site in Search Console') and specifies the resource and scope. It is obvious from the sibling tool names that this is a read/list operation rather than submit or delete, though it does not explicitly differentiate itself from siblings.

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 description implies when to use the tool: whenever a listing of submitted sitemaps and their status counts is needed. However, it gives no explicit guidance about when not to use it or when a sibling like submit_sitemap or delete_sitemap would be more appropriate.

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

notify_url_updateNotify URL UpdateA

Submit a URL update or deletion notification to Google via the Indexing API. Note: Officially supported only for pages with JobPosting or BroadcastEvent structured data. Daily quota: 200 notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to notify Google about
typeYesWhether the URL was updated or deleted

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the annotations by disclosing the quota and the structured-data requirement, which are important operational constraints. It also clarifies that 'deletion' here means sending a deletion notification via the API, not destructively modifying local data, which aligns with destructiveHint=false.

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, front-loaded with the core action, and the operational constraints are compactly placed in a note. Every word contributes useful information.

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 tool with full schema coverage, the description is nearly complete: it states the action, supported use cases, and quota. It does not describe the response format or error conditions, but no output schema exists and the input side is fully covered.

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 schema already documents both parameters thoroughly with 100% coverage, including the URL format and the enum meanings. The description adds no new 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 uses a specific verb ('Submit') and names the exact resource and API ('URL update or deletion notification via the Indexing API'). It clearly distinguishes this tool from sitemap-submission siblings by focusing on URL-level notifications rather than bulk sitemaps.

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 clear eligibility context: it is 'officially supported only for pages with JobPosting or BroadcastEvent structured data' and mentions a daily quota of 200. It does not explicitly name alternative tools or say when not to use it beyond that constraint, but the restriction is strong.

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

search_analyticsSearch AnalyticsB
Read-only

Query Google Search Console performance data. Supports all dimensions (query, page, country, device, searchAppearance, date), all search types (web, discover, googleNews, news, image, video), regex filters, hourly data, and up to 25K rows per request. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (default: 2 days ago)
filtersNoFilters to apply to the query
siteUrlNoThe site URL (e.g., "https://example.com/" or "sc-domain:example.com"). Falls back to GSC_DEFAULT_SITE_URL env var if not provided.
rowLimitNoMaximum rows to return (default: 1000, max: 25000)
startRowNoStarting row offset for pagination (default: 0)
dataStateNoData freshness: "final" (2-3 day delay), "all" (includes fresh data), "hourly_all" (hourly breakdown)
startDateNoStart date in YYYY-MM-DD format (default: 9 days ago)
dimensionsNoDimensions to group by (default: ["query"]). Use "hour" for hourly breakdowns (requires dataState "hourly_all", last ~10 days only).
searchTypeNoType of search results (default: "web")
aggregationTypeNoHow data is aggregated (default: "auto")

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false). The description goes beyond annotations by adding a strong, explicit instruction to base analysis only on returned data, report exact numbers, avoid speculation, and admit insufficient data. This is valuable behavioral context not present in the structured fields.

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 description is concise and front-loaded with the core action. The capability list is dense but relevant, and the IMPORTANT caveat earns its place. It could be slightly more structured, but there is no fluff or repetition.

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?

The description summarizes capabilities well and the schema covers parameters, but there is no output schema and the description does not explain the response format (e.g., metrics like clicks, impressions, CTR, position). For a data-query tool, this is a meaningful gap, though the 'don't speculate' guidance mitigates some risk.

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 structured schema already documents all 10 parameters. The description's mentions of regex filters, hourly data, and 25K rows reinforce capabilities but add no new parameter-level meaning beyond the schema.

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?

Description opens with a clear, specific verb and resource: 'Query Google Search Console performance data.' It further clarifies scope with dimensions, search types, filters, and row limits. It does not explicitly contrast with sibling analytics tools like compare_periods or diagnose_traffic_drops, so it stops short of full sibling differentiation.

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 implies this tool is for retrieving raw GSC performance data, but it provides no explicit guidance on when to choose it over the many sibling analytics tools. No alternatives, exclusions, or prerequisite conditions are mentioned.

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

submit_sitemapSubmit SitemapA

Submit a new sitemap to Google Search Console. The sitemap URL must be accessible and return valid XML.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
sitemapUrlYesThe full URL of the sitemap to submit

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark this as a non-read-only mutation, so the description does not need to repeat that. It adds one useful behavioral precondition—the URL must be accessible and return valid XML—but it does not disclose error conditions, property verification requirements, or duplicate-handling 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?

Two short sentences, front-loaded with the main action and followed by the key precondition. No filler or repetition of schema/annotation data.

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 write action with no output schema, this is nearly complete: the action and the critical input condition are stated. Minor gaps are that it does not mention that the property must be verified in Search Console or describe the success/error response, but these are not blocking for a basic call.

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 100% schema coverage the baseline is 3; the description earns an extra point by constraining sitemapUrl beyond the schema's uri format: it must be accessible and return valid XML. It does not address siteUrl, but that parameter is already documented with its fallback behavior in 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 uses a specific verb and resource: 'Submit a new sitemap to Google Search Console.' This immediately distinguishes it from read/list siblings such as list_sitemaps and from delete_sitemap, so the agent can disambiguate without examining schemas.

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?

No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named. The valid-and-accessible XML precondition offers some context, but the tool's usage is only implied by the verb and resource. An agent is not told to use list_sitemaps for existing entries or delete_sitemap for removal.

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

topic_clustersTopic ClustersA
Read-only

Analyze performance of all pages under a URL path prefix (e.g., "/blog/", "/docs/seo/", "/products/"). Shows aggregate and per-page metrics plus the top queries driving traffic to the cluster. Useful for understanding how entire content sections perform. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (default: 2 days ago)
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
rowLimitNoMax rows to return (default: 5000)
startDateNoStart date in YYYY-MM-DD format (default: 9 days ago)
urlPrefixYesURL path prefix to analyze (e.g., "/blog/", "/docs/seo/", "/products/"). All pages under this path will be grouped.
searchTypeNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond that: the tool returns aggregate/per-page metrics and top queries, and it includes an important instruction about relying only on returned data, reporting exact numbers, and avoiding speculation. This is valuable operational guidance not present in 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 description is front-loaded with the core action in the first sentence, followed by output details, use case, and a necessary behavioral warning. It is slightly longer than minimal, but each sentence earns its place; the IMPORTANT instruction is essential for correct use and is not filler.

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?

Given there is no output schema, the description adequately explains what data the tool will return (aggregate and per-page metrics, top queries). It also provides essential analysis constraints. Minor gaps remain: it does not mention the meaning or effect of searchType, nor the default date ranges, though the schema covers those details. The tool is simple enough that the description is sufficiently complete for an agent to call it correctly.

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 83%, so the baseline is 3. The description reinforces the meaning of urlPrefix by explaining it in the context of cluster analysis, but it does not add substantial parameter semantics beyond what the schema already provides. Other parameters like endDate, startDate, and searchType are only covered in the schema.

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 states a specific action ('Analyze performance') with a specific resource ('all pages under a URL path prefix') and concrete examples ('/blog/'). It clearly indicates the tool outputs aggregate, per-page, and top-query metrics, which differentiates it from more general analytics tools. However, it does not explicitly name sibling tools or contrast itself with them, so it misses the full 5.

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 provides a clear use context: 'Useful for understanding how entire content sections perform.' This tells an agent when the tool is appropriate without ambiguity. It does not explicitly mention when not to use it, nor does it point to alternatives such as search_analytics or compare_periods, so it stops short of full guidance.

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

verify_claimVerify ClaimA
Read-only

Self-check a claim about search performance data before presenting it. Re-queries the Google Search Console API to verify that a specific metric matches the expected value. Use this tool to confirm numbers before stating them in your analysis, especially for claims from earlier in the conversation. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesThe claim to verify (e.g., "homepage gets 500 clicks per week")
metricYesThe metric to check
endDateNoEnd date in YYYY-MM-DD format
siteUrlNoThe site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided.
startDateNoStart date in YYYY-MM-DD format
toleranceNoAcceptable difference as a percentage (default: 5). A value of 5 means the actual value can differ by up to 5% from the expected value.
pageFilterNoFilter to a specific page URL
queryFilterNoFilter to a specific query
expectedValueYesThe expected value of the metric

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish this is read-only and non-destructive. The description adds valuable behavioral guardrails: base analysis only on returned data, report exact numbers, avoid speculation, and state when data is insufficient. This goes beyond the structured annotations without contradicting them.

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 description is front-loaded with the core purpose and then adds concise behavioral guidance. The IMPORTANT section has some redundancy among its prohibitions, but each sentence still contributes to correct usage.

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 tool with no output schema, the description compensates by telling the agent to rely only on returned data and to report exact numbers. It does not specify the response shape, but the verification context and parameters are covered well enough for 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?

Schema description coverage is 100%, so the schema already documents all 9 parameters. The description adds little parameter-specific meaning beyond reinforcing that a metric is checked against an expected value, which the schema also conveys. 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 states a specific verb and resource: re-querying the Google Search Console API to verify a claim about search performance data. It clearly differentiates this tool from analysis/reporting siblings like search_analytics and compare_periods by framing it as a verification step before presenting numbers.

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 clear context for when to use the tool: before presenting claims, especially ones from earlier in the conversation. It does not explicitly name alternatives or state when not to use it, 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv0.2.0
    • First observedbatch_inspect_urls
    • First observedcannibalization
    • First observedcompare_periods
    • First observedcontent_decay
    • First observedctr_benchmarks
    • First observeddelete_sitemap
    • First observeddiagnose_traffic_drops
    • First observedfind_opportunities
    • First observedget_indexing_status
    • First observedinspect_url
    • First observedlist_properties
    • First observedlist_sitemaps
    • First observednotify_url_update
    • First observedsearch_analytics
    • First observedsubmit_sitemap
    • First observedtopic_clusters
    • First observedverify_claim

TDQS

A3.8/5.0
Disambiguation3/5

The core tools are distinct, but there is significant overlap among the analytics and diagnostics tools—search_analytics, compare_periods, find_opportunities, diagnose_traffic_drops, content_decay, and ctr_benchmarks all concern search performance and can point an agent toward different but similar-sounding analyses. Also, get_indexing_status and inspect_url both deal with indexing status, and submit_sitemap and notify_url_update both submit URLs to Google. The descriptions are detailed enough to help, but selection is not always obvious.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern in snake_case, such as submit_sitemap, list_properties, inspect_url, and verify_claim. A few analysis tools are noun-only names—cannibalization, content_decay, ctr_benchmarks, topic_clusters—which deviates slightly from the pattern but does not create confusion.

Tool Count4/5

With 17 tools, the server is slightly above the typical well-scoped 3-15 range, but the extra tools are justified by the breadth of Google Search Console: sitemaps, URL inspection, indexing API, raw search analytics, and specialized diagnostics. Each tool addresses a distinct workflow, so the count feels purposeful rather than bloated.

Completeness4/5

The tool surface covers the major GSC workflows well: property discovery, sitemap management, URL inspection, indexing notifications, raw performance queries, and complex SEO analyses. Minor gaps exist around property-level administration such as adding/removing properties or managing users, but these are not core to most agents using a GSC MCP server.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/justingluska/gluska-seo-gsc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server