Skip to main content
Glama
appscaptain

Google Search Console MCP Server

by appscaptain

Google Search Console MCP Server for SEOs

This deployment fork is pinned to upstream commit b3f2ab829ebc8f8294440821b4d476d75b5edadd and exposes read-only Google Search Console tools only.

A Model Context Protocol (MCP) server that connects Google Search Console (GSC) to AI assistants, allowing you to analyze your SEO data through natural language conversations. Works with Claude Desktop, Cursor, Codex CLI, Gemini CLI, Antigravity, and any other MCP-compatible client.

Skip setup, get more. A more advanced hosted version — one-click sign-in, added GA4 tools. Works with Claude Desktop, Claude Code, Claude.ai, Codex, Cursor, and any MCP client. Only 100 seats. → Advanced GSC MCP (hosted)


What's New

[0.3.3] — July 2026

  • Fixed fresh installs broken by mcp 2.0 — pinned mcp[cli]<2.0.0. The mcp SDK 2.0.0 (released 2026-07-28) removed the mcp.server.fastmcp module, so every fresh uvx mcp-search-console install crashed on startup with ModuleNotFoundError: No module named 'mcp.server.fastmcp'. New installs now resolve a working 1.x SDK again — no --with "mcp<2" workaround needed.

[0.3.2] — April 2026

  • OAuth browser flow fixed for uvx — removed the isatty block that prevented the browser login window from opening when running as an MCP subprocess on macOS. OAuth now works out of the box with uvx, no manual terminal run needed.

  • get_capabilities tool added — call this to get a full list of available tools and current auth status in one shot. Useful when your AI assistant isn't sure what tools are available.

  • Better auth error messages — all tools now tell you exactly what to do when credentials are missing or expired.


Related MCP server: Google Search Console MCP Server

What Can This Do?

Property Management

  • See all your GSC properties in one place

  • Get verification details and ownership information

  • Add or remove properties from your account

Search Analytics & Reporting

  • Discover which queries bring visitors to your site

  • Track impressions, clicks, and click-through rates

  • Analyze performance trends and compare time periods

  • Visualize data with charts created by your AI assistant

URL Inspection & Indexing

  • Check if specific pages have indexing problems

  • See when Google last crawled your pages

  • Inspect multiple URLs at once to identify patterns

Sitemap Management

  • View all sitemaps and their status

  • Submit new sitemaps

  • Check for errors or warnings


Available Tools

Tool

What It Does

What You Need to Provide

get_capabilities

Lists all tools and shows auth status — call this first if unsure

Nothing

list_properties

Shows all your GSC properties

Nothing

get_site_details

Details about a specific site

Site URL

get_search_analytics

Top queries and pages with clicks, impressions, CTR, position

Site URL, time period

get_performance_overview

Summary of site performance

Site URL, time period

compare_search_periods

Compare performance between two time periods

Site URL, two date ranges

get_search_by_page_query

Search terms driving traffic to a specific page

Site URL, page URL

get_advanced_search_analytics

Analytics with filters by country, device, query, page

Site URL

inspect_url_enhanced

Detailed crawl/index status for a URL

Site URL, page URL

batch_url_inspection

Inspect up to 10 URLs at once

Site URL, list of URLs

check_indexing_issues

Check multiple URLs for indexing problems

Site URL, list of URLs

get_sitemaps

Lists all sitemaps for a site

Site URL

list_sitemaps_enhanced

Detailed sitemap info including errors and warnings

Site URL

manage_sitemaps

Submit or delete sitemaps

Site URL, action

reauthenticate

Re-run the OAuth browser login (switch accounts)

Nothing

Ask your AI assistant to "call get_capabilities" for the full list of all 20 tools.



Getting Started

Step 1 — Set Up Google API Credentials

You need credentials before configuring any client. Pick one method:

  1. Go to Google Cloud Console and create or select a project

  2. Enable the Search Console API

  3. Go to Credentials → Create Credentials → OAuth client ID

  4. Configure the OAuth consent screen, select Desktop app, click Create

  5. Download the JSON file — save it somewhere permanent (e.g. ~/Documents/client_secrets.json)

On first use, a browser window will open asking you to sign in to your Google account. After that, the token is saved and no browser interaction is needed again.

Option B — Service Account (For automation or team use)

  1. Go to Google Cloud Console and create or select a project

  2. Enable the Search Console API

  3. Go to Credentials → Create Credentials → Service Account

  4. Go to the Keys tab → Add Key → Create new key → JSON → Download

  5. Save the file somewhere permanent (e.g. ~/Documents/service_account.json)

  6. Add the service account email to your GSC property: Search Console → Settings → Users and permissions → Add user → Full access

🎥 Watch the step-by-step setup tutorial for this section

Updated 2026 — covers the full installation process using the new uvx method, from setting up your Google credentials to your first successful query.


Step 2 — Installation

No cloning, no Python installation, no virtual environments. uvx downloads and runs the server automatically and keeps it up to date.

Install uv — open Terminal and run all three commands in order:

# 1. Download and install
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Activate in the current Terminal session
source $HOME/.local/bin/env

# 3. Make it permanent for all future sessions
echo 'source $HOME/.local/bin/env' >> ~/.zshrc

Verify:

uv --version

Why all three commands? The installer puts uv in ~/.local/bin, but your already-open Terminal session doesn't know about that folder yet. Step 2 activates it immediately. Step 3 ensures every future Terminal window has it automatically.

Now configure your AI client:


Claude Desktop

Config file: ~/Library/Application Support/Claude/claude_desktop_config.json

OAuth:

{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Service Account:

{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_CREDENTIALS_PATH": "/full/path/to/service_account.json",
        "GSC_SKIP_OAUTH": "true"
      }
    }
  }
}

Cursor

Config file: ~/.cursor/mcp.json

OAuth:

{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Codex CLI

Config file: ~/.codex/config.toml

OAuth:

[mcp_servers.gscServer]
command = "/FULL/PATH/TO/uvx"
args = ["mcp-search-console"]
enabled = true
env = { GSC_OAUTH_CLIENT_SECRETS_FILE = "/full/path/to/client_secrets.json" }

Service Account:

[mcp_servers.gscServer]
command = "/FULL/PATH/TO/uvx"
args = ["mcp-search-console"]
enabled = true
env = { GSC_CREDENTIALS_PATH = "/full/path/to/service_account.json", GSC_SKIP_OAUTH = "true" }

Finding your uvx path: On macOS/Linux run which uvx in Terminal after installing uv (typically /Users/YOUR_NAME/.local/bin/uvx). On Windows, run Get-Command uvx | Select-Object -ExpandProperty Source in PowerShell (or where uvx in cmd) — it's usually C:\Users\YOUR_NAME\.local\bin\uvx.exe. Replace /FULL/PATH/TO/uvx in the configs above with that path.

Why the full path? GUI apps like Claude Desktop and Cursor launch without reading your shell config (~/.zshrc), so they don't know about ~/.local/bin. Using the full path guarantees it works regardless of how the app is launched. If you see a spawn uvx ENOENT error, this is the fix.

After saving the config, fully quit the app (Cmd+Q) and reopen it.

For OAuth: on first use, a browser window will open automatically for login. After that, the token is cached and you won't be asked again.


Option B — Clone (Advanced)

Prefer a video walkthrough for this method? The tutorial below covers the clone install path step by step — virtual environment setup, dependencies, and config:

Use this if you want to modify the code or run a specific local version. This method uses the video tutorial above for the credential setup steps.

Requires Python 3.11+. This server will not start on Python 3.10 or older — and when it's launched by a GUI client like Claude Desktop, it fails silently (no tools appear and no log file is written). Check your version with python --version. If it's below 3.11, install Python 3.11 or newer and recreate your virtual environment. The uvx method (Option A) avoids this entirely by managing the Python version for you, so it's the recommended path on Windows.

Clone the repo:

git clone https://github.com/AminForou/mcp-gsc.git
cd mcp-gsc

Or download the ZIP from the green Code button at the top of this page and unzip it.

Set up the environment:

uv venv .venv
uv pip install -r requirements.txt

Configure your AI client (Claude Desktop example):

OAuth:

{
  "mcpServers": {
    "gscServer": {
      "command": "/full/path/to/mcp-gsc/.venv/bin/python",
      "args": ["/full/path/to/mcp-gsc/gsc_server.py"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Service Account:

{
  "mcpServers": {
    "gscServer": {
      "command": "/full/path/to/mcp-gsc/.venv/bin/python",
      "args": ["/full/path/to/mcp-gsc/gsc_server.py"],
      "env": {
        "GSC_CREDENTIALS_PATH": "/full/path/to/service_account.json",
        "GSC_SKIP_OAUTH": "true"
      }
    }
  }
}

Mac path examples:

  • Python: /Users/yourname/Documents/mcp-gsc/.venv/bin/python

  • Script: /Users/yourname/Documents/mcp-gsc/gsc_server.py


Step 3 — Test

Ask your AI assistant: "List my GSC properties"

If you see your properties — it's working. If not, ask: "Call get_capabilities" to see auth status and diagnose the issue.


Environment Variables Reference

Variable

Required

Default

Description

GSC_OAUTH_CLIENT_SECRETS_FILE

OAuth only

Absolute path to your OAuth client secrets JSON. Always required when using uvx.

GSC_CREDENTIALS_PATH

Service account only

Absolute path to your service account JSON key. Always required when using uvx.

GSC_SKIP_OAUTH

No

false

Set to "true" to force service account auth and skip OAuth entirely

GSC_DATA_STATE

No

"all"

"all" matches the GSC dashboard. "final" returns only confirmed data (2–3 day lag).

GSC_ALLOW_DESTRUCTIVE

No

false

Set to "true" to enable add/delete site and delete sitemap tools


Cursor Marketplace

One-click install available — search for mcp-search-console in the Cursor Marketplace.

After installing, configure your credentials (see Step 1 above) then use the bundled skills directly in Cursor Agent chat:

Skill

How to invoke

What it does

seo-weekly-report

"Run the SEO weekly report for example.com"

Full 28-day performance summary with period-over-period comparison and top queries

cannibalization-check

"Check for keyword cannibalization on example.com"

Finds queries where multiple pages compete; recommends which to keep

indexing-audit

"Audit indexing for my top pages"

Batch-inspects top 20 pages and returns a prioritized fix list

content-opportunities

"Find content opportunities for example.com"

Surfaces position-11-20 queries with high impressions and low CTR


Sample Prompts

Tool

Sample Prompt

list_properties

"List all my GSC properties and tell me which ones have the most pages indexed."

get_search_analytics

"Show me the top 20 search queries for mywebsite.com in the last 30 days, highlight any with CTR below 2%, and suggest title improvements."

get_performance_overview

"Create a visual performance overview of mywebsite.com for the last 28 days, identify any unusual drops or spikes, and explain possible causes."

check_indexing_issues

"Check these pages for indexing issues: mywebsite.com/product, mywebsite.com/services, mywebsite.com/about"

inspect_url_enhanced

"Do a comprehensive inspection of mywebsite.com/landing-page and give me actionable recommendations."

compare_search_periods

"Compare my site's performance between January and February. What queries improved the most?"

get_advanced_search_analytics

"Analyze queries with high impressions but positions below 10, filtered to mobile traffic in the US only."


Troubleshooting

spawn uvx ENOENT or command not found: uvx

Your AI client can't find uvx. Use the full path instead of just uvx:

# Find your full path (macOS/Linux):
which uvx
# Typically: /Users/YOUR_NAME/.local/bin/uvx
# Find your full path (Windows PowerShell):
Get-Command uvx | Select-Object -ExpandProperty Source
# Typically: C:\Users\YOUR_NAME\.local\bin\uvx.exe

Replace "command": "uvx" with the full path (e.g. "command": "/Users/YOUR_NAME/.local/bin/uvx") in your config.

uv --version gives "command not found" right after installing

The installer updates ~/.local/bin but your current Terminal session doesn't see it yet. Run:

source $HOME/.local/bin/env

Then add it permanently:

echo 'source $HOME/.local/bin/env' >> ~/.zshrc

Authentication failed / credentials file not found

Make sure you are using the absolute path to your credentials file — not a relative path, not ~/. Example:

/Users/yourname/Documents/client_secrets.json   ✅
~/Documents/client_secrets.json                 ✅
client_secrets.json                              ❌

MCP only works in Claude Desktop app, not the website

The MCP server runs locally on your machine. It only works in the Claude Desktop app (downloaded from claude.ai/download), not in the claude.ai browser interface.

AI Client Configuration Issues

  1. Make sure all file paths in your config are correct absolute paths

  2. Fully quit (Cmd+Q) and reopen the app after any config change — just closing the window is not enough

  3. Ask your AI assistant to "call get_capabilities" — it will report the exact auth status and error


Safety: Destructive Operations

By default, add_site, delete_site, and delete_sitemap are disabled. To enable them:

"GSC_ALLOW_DESTRUCTIVE": "true"

Remote Deployment & Docker (Advanced)

The standard setup runs the server locally. This section is only for users who want to run it on a remote server or in a container.

HTTP Transport

MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=3001 python gsc_server.py

Variable

Default

Description

MCP_TRANSPORT

stdio

Set to sse for network/remote use

MCP_HOST

127.0.0.1

Host to bind

MCP_PORT

3001

Port to bind

Docker

docker build -t mcp-gsc .

docker run \
  -e MCP_TRANSPORT=sse \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_PORT=3001 \
  -e GSC_CREDENTIALS_PATH=/app/credentials.json \
  -v /path/to/credentials.json:/app/credentials.json \
  -p 3001:3001 \
  mcp-gsc

Advanced GSC Visualizer — A Chrome extension (14,000+ users) with interactive charts, one-click export of up to 25,000 rows, keyword cannibalization detection, and an AI assistant — all directly inside Google Search Console. Built by the same author. Install from the Chrome Web Store →


Contributing

Found a bug or have an idea for improvement? Open an issue or submit a pull request on GitHub.


License

MIT License. See the LICENSE file for details.


Changelog

[0.3.3] — July 2026

  • Pinned mcp[cli]>=1.3.0,<2.0.0. The mcp SDK 2.0.0 removed mcp.server.fastmcp, breaking all fresh uvx installs with ModuleNotFoundError. Capping below 2.0 restores working installs. (Fixes #41)

[0.3.2] — April 2026

  • OAuth browser flow fixed for uvx — removed isatty block that prevented the OAuth browser window from opening when running as an MCP subprocess on macOS. OAuth + uvx now works out of the box.

  • get_capabilities tool — returns all available tools grouped by category plus live auth status in one call.

  • Better auth error messages — all tools now explicitly tell you to call reauthenticate when credentials are missing or expired.

  • Improved list_properties description — better semantic tool discovery in clients that use lazy tool loading.

[0.3.1] — April 2026

  • Fixed list_properties masking real auth errors; fail-fast on missing credentials.

[0.3.0] — April 2026

  • Cursor Marketplace plugin with 4 bundled SEO skills

  • Stable token storage in platform user config dir (survives uvx upgrades)

  • Structured JSON output for all data tools

  • 39 unit tests

[0.2.2] — April 2026

  • Safety mode for destructive tools (disabled by default)

  • HTTP/SSE transport for remote deployments

  • Dockerfile

[0.2.1] — March 2026

  • reauthenticate tool for switching Google accounts

  • Fixed sitemap TypeError crash

  • Fixed domain property 404 errors

[0.2.0] — March 2026

  • dataState: "all" by default (matches GSC dashboard)

  • Flexible row_limit parameter (up to 500)

  • Multi-dimension filtering for advanced analytics

[0.1.0] — Initial release

  • 19 tools covering property management, search analytics, URL inspection, and sitemap management

  • OAuth and service account authentication

Available Tools

15 tools
batch_url_inspectionA
Inspect multiple URLs in batch (within API limits).

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    urls: List of URLs to inspect, one per line
ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. 'Within API limits' is vague and gives no concrete limit, error behavior, or side-effect information. The read-only nature is only implied, not stated.

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. The Args section adds essential parameter guidance without fluff, and every line contributes meaning.

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?

Input semantics are well-covered and an output schema exists, so return values do not need explanation. However, the description lacks concrete batch-limit numbers and does not guide the agent toward or away from the single-URL sibling tool. These gaps matter for a tool with no annotations.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates. It explains that site_url must be an exact GSC property URL from list_properties, gives example formats, and clarifies domain-property subdomain coverage. It also specifies that urls must be provided one per line.

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 verb and resource: 'Inspect multiple URLs in batch'. The batch qualifier distinguishes this from sibling tools like inspect_url_enhanced, though it does not explicitly name the alternative.

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

Usage Guidelines3/5

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

The batch scope implies it is intended for inspecting multiple URLs at once, and the site_url guidance references list_properties as a prerequisite. However, there is no explicit statement about when to choose this over inspect_url_enhanced or any batch-limit threshold.

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

check_indexing_issuesA
Check for specific indexing issues across multiple URLs.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    urls: List of URLs to check, one per line
ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. 'Check' implies a read-only operation and the parameter guidance is useful, but the description does not disclose what kinds of indexing issues are reported, any request limits for the URL list, or error behavior. It is not contradictory or misleading, just minimal.

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: a one-sentence summary followed by an Args block with no redundant text. Every sentence earns its place, and the formatting makes parameter semantics easy to parse.

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 two-parameter tool with an output schema, the description covers the essential invocation details well. The main omissions are the exact nature of 'specific indexing issues' and guidance on choosing this tool over sibling inspection tools, but the output schema likely fills in return-value expectations.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains that site_url must be an exact GSC property from list_properties, gives examples, and explains domain vs. site property semantics. It also clarifies that urls is a list with one URL per line, which is critical for correct invocation.

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 opening sentence 'Check for specific indexing issues across multiple URLs' names a clear verb, resource, and scope. However, the term 'specific indexing issues' is undefined and the description does not differentiate this from sibling tools like batch_url_inspection or inspect_url_enhanced, so it falls short of a 5.

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?

There is no explicit when-to-use versus alternative tools, but the Args section provides meaningful usage guidance on how to select site_url (exact GSC property from list_properties and domain-property handling for subdomains). This is implied usage context rather than a clear routing rule, so it is slightly above no guidance but below explicit exclusions.

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

compare_search_periodsA
Compare search analytics data between two time periods.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    period1_start: Start date for period 1 (YYYY-MM-DD)
    period1_end: End date for period 1 (YYYY-MM-DD)
    period2_start: Start date for period 2 (YYYY-MM-DD)
    period2_end: End date for period 2 (YYYY-MM-DD)
    dimensions: Dimensions to group by (default: query)
    limit: Number of top results to compare (default: 10)
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
site_urlYes
dimensionsNoquery
period1_endYes
period2_endYes
period1_startYes
period2_startYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden for behavioral context. It adds a useful GSC-related behavior ('Domain properties cover all subdomains') and explains how to adapt site_url plus page filtering for subdomains. Still, it does not disclose permissions, read-only/side-effect status, rate limits, or how 'top results' are ranked, leaving behavioral transparency only partially covered.

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 one-line purpose is front-loaded, followed by a tight Args list. Every line earns its place: formats, defaults, and the domain-property guidance are all necessary for correct invocation. There is no filler or repetition.

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 covers all seven parameters, includes the key domain-vs-site property nuance, and the presence of an output schema covers return-value details. It is slightly incomplete because dimensions has no allowed-value list ('query', 'page', etc.) and 'top results' does not specify the ranking metric, but these are minor gaps for an otherwise well-specified tool.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully: site_url includes exact expected formats and examples, all four date parameters specify YYYY-MM-DD, and dimensions/limit explain their defaults and purpose. This adds substantial meaning beyond the bare schema titles.

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 starts with a specific verb and resource: 'Compare search analytics data between two time periods.' This unambiguously names the tool's operation and distinguishes it from single-period siblings like get_search_analytics, so an agent can select it without opening the schema.

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

Usage Guidelines3/5

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

The intended use case (comparing two periods) is clear, and the site_url note correctly ties the parameter to list_properties. However, the description never explicitly says when to prefer this tool over get_search_analytics or get_advanced_search_analytics, nor states exclusions such as 'use for single-period trends instead.' The usage guidance is implied rather than stated.

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

get_advanced_search_analyticsA
Get advanced search analytics data with sorting, filtering, and pagination.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    start_date: Start date in YYYY-MM-DD format (defaults to 28 days ago)
    end_date: End date in YYYY-MM-DD format (defaults to today)
    dimensions: Dimensions to group by, comma-separated (e.g., "query,page,device")
    search_type: Type of search results (WEB, IMAGE, VIDEO, NEWS, DISCOVER)
    row_limit: Maximum number of rows to return (max 25000)
    start_row: Starting row for pagination
    sort_by: Metric to sort by (clicks, impressions, ctr, position)
    sort_direction: Sort direction (ascending or descending)
    filter_dimension: Single filter dimension (query, page, country, device). Use 'filters' instead for multiple filters.
    filter_operator: Single filter operator (contains, equals, notContains, notEquals)
    filter_expression: Single filter expression value
    filters: JSON array of filter objects for AND logic across multiple dimensions. Overrides
             filter_dimension/filter_operator/filter_expression when provided. Each object must
             have 'dimension', 'operator', and 'expression' keys. Valid dimensions: query, page,
             country, device. Valid operators: contains, equals, notContains, notEquals.
             Example: [{"dimension":"country","operator":"equals","expression":"usa"},
                       {"dimension":"device","operator":"equals","expression":"MOBILE"}]
    data_state: Data freshness — "all" (default, matches GSC dashboard) or "final" (confirmed data only, 2-3 day lag)
ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNo
sort_byNoclicks
end_dateNo
site_urlYes
row_limitNo
start_rowNo
data_stateNo
dimensionsNoquery
start_dateNo
search_typeNoWEB
sort_directionNodescending
filter_operatorNocontains
filter_dimensionNo
filter_expressionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses default date ranges, filter override behavior, row_limit maximum, pagination via start_row, and the difference between 'all' and 'final' data states. It does not explicitly state read-only behavior, but 'Get' and the analytics context make that reasonably clear.

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 a compact Args-style block with each parameter on its own line and the core purpose front-loaded. It is long due to 14 parameters, but each line provides necessary detail without fluff. The JSON filter example is the only slightly verbose part, yet it 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 14-parameter tool with no annotations and no enum constraints, this description provides all necessary invocation details: exact formats, defaults, constraints, pagination semantics, and data freshness behavior. An output schema exists, so the description does not need to explain return values.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates by documenting every parameter with formats, defaults, valid values, and relationships. The filters parameter even includes a JSON example and explains that it overrides the single-filter parameters.

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: 'Get advanced search analytics data with sorting, filtering, and pagination.' This clearly distinguishes it from the simpler sibling get_search_analytics and states exactly what the tool does.

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

Usage Guidelines4/5

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

It offers concrete usage context, such as requiring site_url to be an exact property from list_properties, explaining domain-property/subdomain analysis, and describing data_state freshness trade-offs. It does not explicitly contrast with get_search_analytics, but the advanced capabilities and parameter guidance make the intended use clear.

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

get_capabilitiesA

Get a full list of all available tools, current auth status, and how to get started. ALWAYS call this first when asked what tools are available, what this server can do, or how to get started. Returns all tool names grouped by category in a single call — faster than searching individually. Also shows if authentication is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses return behavior (tool names grouped by category), efficiency (single call is faster), and that it indicates authentication needs. This is solid though not exhaustive; it does not explicitly state that the call is read-only or describe failure modes, but for a capability-discovery tool the provided detail is sufficient.

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 usage instruction, then supplies behavioral detail. It is compact, but 'current auth status' in the first sentence and 'Also shows if authentication is needed' later are mildly redundant, preventing a perfect conciseness score.

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 discovery tool with an output schema, the description covers invocation triggers, return grouping, auth-status behavior, and where to start. Nothing essential is missing for an agent to select and call it correctly.

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?

There are zero parameters and schema coverage is 100%, so the schema already fully documents the input surface. The baseline for zero-parameter tools is 4; the description adds no parameter detail because none is needed.

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-resource pair ('Get a full list of all available tools') and adds auth status and getting-started guidance. It clearly differentiates from domain-specific siblings like get_site_details or submit_sitemap by defining its scope as server-wide discovery.

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?

Provides an explicit trigger condition: 'ALWAYS call this first when asked what tools are available, what this server can do, or how to get started.' It also gives a rationale (single call vs individual searching), which helps the agent decide when to invoke it instead of alternatives.

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

get_creator_infoA

Provides information about Amin Foroutan, the creator of the MCP-GSC tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations present, the description carries the full transparency burden. 'Provides information' implies a safe, read-only operation with no side effects, which is the key behavioral trait an agent needs. It does not elaborate on response shape or potential errors, but for a zero-parameter informational tool the stated behavior is largely sufficient.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler or repetition. It communicates exactly what the tool does and who it is about without wasted words.

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

Completeness5/5

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

Given that the tool takes no parameters and an output schema exists, the description provides all the context needed for safe invocation. An agent can confidently call this tool when creator information is requested, and the output schema covers return-value specifics.

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

Parameters4/5

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

The tool has zero parameters, so description-level parameter guidance is not needed. The empty schema already makes this clear, and the description adds no unnecessary parameter-related content.

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 specifies a concrete verb and resource: it provides information about Amin Foroutan, the creator of the MCP-GSC tool. This clearly differentiates the tool from all siblings, which focus on sites, analytics, sitemaps, and other operational concerns.

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 alternative guidance is provided. However, the intended usage is reasonably implied: an agent should call this tool when asked about the creator of MCP-GSC. It does not mislead, but it also does not formally contrast with other informational tools like get_capabilities.

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

get_performance_overviewA
Get a performance overview for a specific property.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    days: Number of days to look back (default: 28)
ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. 'Get a performance overview' implies a read-only operation, and the description adds detail about domain property coverage. However, it does not mention what the overview contains, whether it requires special permissions, or what the response shape is; the output schema helps but is not described here.

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 a concise parameter explanation. Every sentence contributes useful information and there is no filler or repetition of the schema.

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

Completeness4/5

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

For a read-only overview tool with a simple two-parameter schema and an output schema available, the description is largely sufficient. It covers parameter semantics and usage context well. The only notable gap is that 'performance overview' is not defined, so the agent must rely on the output schema or tool name to infer metrics like clicks, impressions, CTR, or position.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate. It explains that site_url should be an exact GSC property URL from list_properties, gives concrete examples, clarifies that domain properties cover all subdomains, and explains how to analyze a specific subdomain. It also gives the meaning and default of days. This fully covers both parameters.

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 clear verb and resource: 'Get a performance overview for a specific property.' It is not as specific as sibling names like get_search_analytics or get_advanced_search_analytics, but it is not a tautology and gives the agent a reasonable idea of the operation.

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 provides useful context on how to supply site_url, including the distinction between URL-prefix and domain properties and how to handle subdomains. However, it does not explicitly say when to use this tool versus alternatives like get_search_analytics, get_advanced_search_analytics, or compare_search_periods.

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

get_search_analyticsA
Get search analytics data for a specific property.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    days: Number of days to look back (default: 28)
    dimensions: Dimensions to group by (default: query). Options: query, page, device, country, date
               You can provide multiple dimensions separated by comma (e.g., "query,page")
    row_limit: Number of rows to return (default: 20, max: 500). Use 5-20 for quick overviews,
               50-200 for deeper analysis, up to 500 for comprehensive reports. For bulk exports
               beyond 500 rows, use get_advanced_search_analytics which supports pagination.
ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
site_urlYes
row_limitNo
dimensionsNoquery

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It covers defaults, the 500-row cap, allowed dimensions, comma-separated multi-dimensions, and the subdomain behavior of domain properties. It stops short of mentioning authorization or rate limits, but since this is a read-only analytics query, the most important behavioral constraints are disclosed.

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 definition is front-loaded with a one-sentence summary followed by a compact, scannable Args list. Each line adds meaningful guidance: defaults, options, max limits, and a pointer to the paginated sibling. No filler or redundancy is present.

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

Completeness5/5

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

The description is complete for an agent to call this tool correctly: all parameters are explained, defaults are given, the 500-row boundary is explicit, and the paginated alternative is identified. An output schema exists, so documenting return values is unnecessary here.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully document the parameters—and it does. It explains site_url with exact GSC formats and subdomain filtering, days with a default, dimensions with allowed options and comma-separated examples, and row_limit with defaults, maximum, and suggested ranges. This exceeds what the schema provides.

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

Purpose5/5

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

The opening sentence clearly states the action and resource: 'Get search analytics data for a specific property.' It also distinguishes itself from get_advanced_search_analytics by noting that the advanced tool supports pagination for bulk exports, which prevents an agent from selecting the wrong sibling by mistake.

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

Usage Guidelines5/5

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

The description gives practical guidance for every parameter and explicitly states when to use an alternative: 'For bulk exports beyond 500 rows, use get_advanced_search_analytics which supports pagination.' It also explains how to choose site_url and row_limit ranges, giving an agent clear conditions for using this tool correctly.

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

get_search_by_page_queryA
Get search analytics data for a specific page, broken down by query.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    page_url: The specific page URL to analyze
    days: Number of days to look back (default: 28)
    row_limit: Number of rows to return (default: 20, max: 500). Use 5-20 for quick overviews,
               50-200 for deeper analysis, up to 500 for comprehensive reports. For bulk exports
               beyond 500 rows, use get_advanced_search_analytics which supports pagination.
ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
page_urlYes
site_urlYes
row_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It clearly implies a read-only analytics operation and transparently discloses the 500-row limit with a pagination alternative. However, it does not mention potential rate limits, exact-match requirements, or behavior when no data exists for a page, which would be useful completeness.

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 efficiently structured as a one-line purpose followed by an Args list. Every sentence adds value: parameter explanations, defaults, usage intervals, and a sibling reference. There is no filler or repetition of schema data.

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

Completeness5/5

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

Given the tool's moderate complexity and the existence of an output schema, the description covers all necessary invocation context: required parameters, optional parameters with defaults, max limit, usage guidance, and a pointer to an alternative for larger exports. It is fully sufficient for an agent to call this tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates by explaining every parameter in depth: site_url with property URL formats and domain-property nuance, page_url as a specific page, days with default, and row_limit with practical ranges and a hard max. This goes far beyond the bare schema.

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

Purpose5/5

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

The description opens with 'Get search analytics data for a specific page, broken down by query,' which names a specific verb, resource, and scope. This clearly distinguishes it from sibling tools like get_search_analytics and get_advanced_search_analytics without needing to inspect their schemas.

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 provides explicit guidance on when to use this tool vs alternatives: it advises using the domain property as site_url and filtering by page for subdomain analysis, and it directs users to get_advanced_search_analytics for bulk exports beyond 500 rows. The row_limit usage ranges also give situational recommendations.

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

get_site_detailsA
Get detailed information about a specific Search Console property.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'Get' implies a read-only operation, and the domain-property guidance adds useful behavior context, but it does not disclose authentication requirements, potential errors, or side-effect guarantees.

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: a clear lead sentence immediately followed by focused parameter guidance. There is no filler or repetition of schema 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?

With only one parameter, an output schema, and no nested objects, the description covers the essential invocation details. It could be slightly more complete with explicit when-to-use guidance, but the provided context is sufficient for a straightforward getter tool.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates for the single parameter by explaining the exact URL format, giving examples, and clarifying how domain properties behave. This is exactly the kind of guidance an agent needs to supply a correct site_url.

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 operation: 'Get detailed information about a specific Search Console property.' It identifies the resource and uses a specific verb, though it does not explicitly differentiate itself from sibling tools like get_capabilities or get_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?

It provides clear context by instructing that site_url must come from list_properties and explains how to handle domain properties ('use the domain property as site_url and filter by page'). However, it does not explicitly state when to prefer this tool over alternatives.

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

get_sitemap_detailsA
Get detailed information about a specific sitemap.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    sitemap_url: The full URL of the sitemap to inspect
ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
sitemap_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only says 'detailed information' and gives parameter guidance, but does not disclose response behavior, permissions, error cases, or any side effects. For a read-only inspection tool this is a notable gap.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose, followed by concise, useful parameter explanations. Every sentence adds meaningful guidance, and there is no filler or repetition.

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 an output schema present, return values do not need explanation. The description covers both required parameters well and gives practical context about domain properties. The only missing piece is explicit guidance on when to use this tool versus sibling sitemap tools, which would make it fully complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains that site_url must be an exact GSC property URL from list_properties, gives concrete examples for URL-prefix and domain properties, and clarifies subdomain coverage. sitemap_url is defined as the full URL of the sitemap, which is sufficient.

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 clear verb and resource: 'Get detailed information about a specific sitemap.' It is differentiated from sibling list tools by emphasizing a specific sitemap, though it does not explicitly name alternatives like get_sitemaps or list_sitemaps_enhanced.

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 clear contextual guidance on choosing site_url, including that domain properties cover all subdomains and how to analyze a specific subdomain by filtering by page. It does not explicitly say when to prefer this tool over sibling sitemap tools, so it stops short of a full when/when-not explanation.

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

get_sitemapsA
List all sitemaps for a specific Search Console property.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It adds the useful nuance that domain properties cover all subdomains, but it does not mention pagination, limits, response format, or explicitly confirm read-only behavior. 'List' implies a read operation, but that is not enough for full transparency.

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 a clear one-sentence purpose followed by a tight parameter note. The domain-property caveat is valuable and there is no filler or redundant restatement of the tool name.

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 single-required-parameter tool with an output schema, the description thoroughly explains the only parameter and how to obtain it. It does not explicitly route the agent to list_sitemaps_enhanced when richer sitemap data is needed, but that is a differentiation gap rather than a correctness gap.

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

Parameters5/5

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

The schema has 0% description coverage, but the description compensates well. It explains that site_url must be an exact GSC property URL, gives concrete examples including sc-domain:example.com, and explains how domain properties cover subdomains. This adds substantial meaning beyond the bare schema definition.

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 and object: 'List all sitemaps for a specific Search Console property.' It clearly identifies what the tool does and its scope, but it does not explicitly distinguish itself from sibling tools like list_sitemaps_enhanced or get_sitemap_details.

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 gives a concrete prerequisite (use site_url from list_properties) and explains property URL formats, but it never states when to prefer this tool over list_sitemaps_enhanced or get_sitemap_details. Usage context is implied by the simple listing action rather than explicitly contrasted with alternatives.

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

inspect_url_enhancedB
Enhanced URL inspection to check indexing status and rich results in Google.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    page_url: The specific URL to inspect
ParametersJSON Schema
NameRequiredDescriptionDefault
page_urlYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It mentions checking indexing status and rich results but does not describe side effects, permission requirements, rate limits, or what happens when a URL is not indexed or the property is invalid. The domain-property note is useful but is parameter behavior, not overall tool behavior.

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, front-loaded with the tool's purpose, and keeps parameter documentation in a clean list. The domain-property explanation is useful and not redundant, though 'Enhanced' adds little meaning.

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

Completeness3/5

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

For a two-parameter tool with an output schema, the description is largely adequate and covers the key inputs well. It lacks guidance on choosing this tool over sibling alternatives and does not mention potential errors or edge cases related to URL inspection, making it only moderately complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so well for site_url by providing exact property format, examples, and domain-property behavior. page_url receives only a minimal definition ('The specific URL to inspect'), which is clear but less rich than site_url.

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 a specific action (inspect a URL) and resource (Google Search Console URL), with the purpose of checking indexing status and rich results. It is clear, though it does not explicitly differentiate itself from sibling tools like batch_url_inspection or check_indexing_issues.

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 provides helpful usage context, such as getting the exact site_url from list_properties and guidance for using domain properties with subdomain filtering. However, it does not state when to prefer this tool over alternatives like batch_url_inspection or when not to use it.

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

list_propertiesA
List all Google Search Console (GSC) properties and sites the user has access to.
Use this to see all verified sites, domain properties, and URL-prefix properties
in the connected Google Search Console account. Always call this first to get the
exact site_url needed for other tools.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It reveals the operation is a read-only list of everything the user can access, enumerates property types ('verified sites, domain properties, and URL-prefix properties'), and references the 'connected Google Search Console account,' implying the read scope. It could mention pagination or rate limits, but for a list tool the transparency is strong.

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 three sentences with no wasted words. The purpose verb is front-loaded, the scope is specified next, and the usage directive closes it. Every sentence earns its place.

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

Completeness5/5

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

For a zero-parameter tool with an output schema defined, the description is complete: it names what the tool lists, when to call it, and what to extract from it (site_url). No additional detail is needed for an agent to invoke it correctly.

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 input schema has zero parameters, so the baseline is 4. The description adds no parameter-specific meaning since none exist, but it does clarify the output context (site_url needed for other tools), which is relevant even though not a parameter.

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: 'List all Google Search Console (GSC) properties and sites the user has access to.' It clearly distinguishes itself from siblings like get_site_details by emphasizing 'all' and 'Always call this first,' positioning it as the discovery entry point.

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 explicit usage context: 'Always call this first to get the exact site_url needed for other tools.' It does not mention when not to use it or name alternatives, but for a top-level list operation this is clear and sufficiently directive.

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

list_sitemaps_enhancedA
List all sitemaps for a specific Search Console property with detailed information.

Args:
    site_url: Exact GSC property URL from list_properties (e.g. "https://example.com/" or
              "sc-domain:example.com"). Domain properties cover all subdomains — use the
              domain property as site_url and filter by page to analyze a specific subdomain.
    sitemap_index: Optional sitemap index URL to list child sitemaps
ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
sitemap_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears the burden of behavioral disclosure. It does add meaningful behavioral context: domain properties cover all subdomains, and sitemap_index lists child sitemaps. It does not mention auth requirements, rate limits, or explicitly confirm that the operation is read-only, though 'List' suggests it.

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

Conciseness4/5

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

The description is well-structured and reasonably concise, front-loading the purpose and then providing an Args section. Every sentence adds signal, though 'with detailed information' is somewhat vague and could be omitted without loss.

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 moderate complexity, the output schema is available, and both parameters are clearly documented, the description is largely complete. The main gap is the lack of explicit guidance on when to use this tool instead of the overlapping get_sitemaps or get_sitemap_details siblings.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate for parameter meaning. It does: site_url is explained with exact formatting examples and linkage to list_properties, including domain-property nuance, and sitemap_index is described as an optional sitemap index URL for listing child sitemaps. This is strong, complete parameter documentation.

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 and resource: 'List all sitemaps for a specific Search Console property with detailed information.' This clearly conveys what the tool does. However, it does not explicitly distinguish itself from the sibling get_sitemaps or get_sitemap_details tools beyond the word 'enhanced' and 'detailed information.'

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 gives useful usage context for the site_url parameter, instructing users to use an exact GSC property URL from list_properties and explaining how domain properties behave. It does not, however, say when to choose this tool over siblings like get_sitemaps or get_sitemap_details, so tool-selection guidance is only implied.

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

Tool Schema Changelog

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

  1. 15 tool updatesv0.3.3
    • First observedbatch_url_inspection
    • First observedcheck_indexing_issues
    • First observedcompare_search_periods
    • First observedget_advanced_search_analytics
    • First observedget_capabilities
    • First observedget_creator_info
    • First observedget_performance_overview
    • First observedget_search_analytics
    • First observedget_search_by_page_query
    • First observedget_site_details
    • First observedget_sitemap_details
    • First observedget_sitemaps
    • First observedinspect_url_enhanced
    • First observedlist_properties
    • First observedlist_sitemaps_enhanced

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation2/5

Multiple tools have overlapping purposes, such as list_sitemaps vs list_sitemaps_enhanced, and get_search_analytics vs get_advanced_search_analytics. The descriptions help but the boundaries are unclear, especially for batch_url_inspection vs check_indexing_issues.

Naming Consistency4/5

Tool names generally follow the verb_noun pattern (list_properties, get_search_analytics, compare_search_periods). Minor deviations like batch_url_inspection and the 'enhanced' suffix in inspect_url_enhanced/list_sitemaps_enhanced cause slight inconsistency but overall naming remains predictable.

Tool Count4/5

15 tools is at the upper boundary of the ideal range but appropriate for the scope of GSC. However, several tools could be merged (e.g., analytics variants, sitemap listers), making the count slightly inflated.

Completeness4/5

The server covers the main GSC features: properties, analytics, sitemaps, and URL inspection. Minor gaps exist (e.g., no write actions like submitting sitemaps), but for a read-only server, the coverage is solid. The redundant tools actually add some completeness to specific use cases.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides read-only access to Google Search Console data, allowing AI assistants to query site performance metrics like keywords, clicks, and rankings using natural language. It supports listing verified properties, querying search analytics with dimension filters, and retrieving sitemap information.
    3
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides AI agents with read-only access to Google Search Console data, including search analytics, index coverage, and sitemap status. It enables users to query clicks, impressions, and ranking performance or check URL indexing status through natural language.
    61
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to Google Search Console data for SEO analysis, including search analytics, URL inspection, sitemaps, indexing, and opportunity detection.
    17
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to access Google Search Console search performance and index health data, including clicks, impressions, rankings, URL inspection, and sitemap management.
    2
    MIT