Skip to main content
Glama
gsc-mcp-server

gsc-mcp-server

by Klartika

Google Search Console MCP Server for SEOs

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.

This is Klartika's fork — a remote server

Upstream AminForou/mcp-gsc is a local (stdio) server that reads credential files from your machine. This fork adds a remote, OAuth 2.1-protected HTTP transport: it runs as a container, each user signs in with their own Google account, and it exposes a read-only subset of the tools (webmasters.readonly, no write operations).

Everything below this banner is upstream's documentation for the local server. It is accurate for that use, and unmodified so this fork stays easy to rebase — but uvx, client_secrets.json and the write tools it describes do not apply to the remote deployment.


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: mcp-server-google-search-console

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

21 tools
add_siteA
Add a site to your Search Console properties.

Args:
    site_url: The URL of the site to add (must be exact match e.g. https://example.com, or https://www.example.com, or https://subdomain.example.com/path/, for domain properties use format: sc-domain:example.com)

Inputs: site_url (required). Returns: result

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

Inputs: urls (required), site_url (required). Returns: result

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

Inputs: urls (required), site_url (required). Returns: result

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)

Inputs: site_url (required), period1_end (required), period2_end (required), period1_start (required), +3 more. Returns: result

delete_siteA
Remove a site from your Search Console properties.

Args:
    site_url: The URL of the site to remove (must be exact match e.g. https://example.com, or https://www.example.com, or https://subdomain.example.com/path/, for domain properties use format: sc-domain:example.com)

Inputs: site_url (required). Returns: result

delete_sitemapA
Delete (unsubmit) a sitemap from Google Search Console.

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 delete

Inputs: site_url (required), sitemap_url (required). Returns: result

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)

Inputs: site_url (required), filters, sort_by, end_date, +10 more. Returns: result

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.

Inputs: no named parameters. Returns: result

get_creator_infoA

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

Inputs: no named parameters. Returns: result

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)

Inputs: site_url (required), days. Returns: result

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.

Inputs: site_url (required), days, row_limit, dimensions. Returns: result

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.

Inputs: page_url (required), site_url (required), days, row_limit. Returns: result

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.

Inputs: site_url (required). Returns: result

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

Inputs: site_url (required), sitemap_url (required). Returns: result

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.

Inputs: site_url (required). Returns: result

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

Inputs: page_url (required), site_url (required). Returns: result

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.

Inputs: no named parameters. Returns: result

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

Inputs: site_url (required), sitemap_index. Returns: result

manage_sitemapsA
All-in-one tool to manage sitemaps (list, get details, submit, delete).

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.
    action: The action to perform (list, details, submit, delete)
    sitemap_url: The full URL of the sitemap (required for details, submit, delete)
    sitemap_index: Optional sitemap index URL for listing child sitemaps (only used with 'list' action)

Inputs: action (required), site_url (required), sitemap_url, sitemap_index. Returns: result

reauthenticateA

Perform a logout and new login sequence. Deletes the current OAuth token file and triggers the browser authentication flow. Useful when you need to switch to a different Google account.

Inputs: no named parameters. Returns: result

submit_sitemapA
Submit a new sitemap or resubmit an existing one to 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.
    sitemap_url: The full URL of the sitemap to submit

Inputs: site_url (required), sitemap_url (required). Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 21 tools

    Disambiguation2/5

    Multiple tools overlap significantly: get_sitemaps, list_sitemaps_enhanced, and manage_sitemaps all list sitemaps; get_search_analytics, get_advanced_search_analytics, get_performance_overview, and get_search_by_page_query all return analytics data. This creates unclear boundaries and risks misselection.

    Naming Consistency3/5

    Most tools follow a verb_noun pattern (get_, list_, add_, delete_), but there are inconsistencies: get_sitemaps vs list_sitemaps_enhanced, inspect_url_enhanced vs batch_url_inspection (inconsistent word order), and the generic manage_sitemaps and reauthenticate break the pattern.

    Tool Count3/5

    21 tools is on the heavy side for a GSC server. Many tools duplicate functionality (e.g., multiple sitemap and analytics tools), making the count feel bloated, though it is not extremely excessive.

    Completeness4/5

    Core GSC operations are covered: property management (list/add/delete), sitemap submission and deletion, URL inspection, and search analytics. A minor gap is the lack of tools for managing permissions or performing bulk property changes, but the essential surface is complete.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects Google Search Console to MCP clients to query search analytics, manage sitemaps, and perform URL inspections. It enables users to identify SEO opportunities and generate performance reports through natural language interactions.
      64 npm
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Google Search Console via MCP, offering search analytics, performance summaries, URL inspection, sitemap management, and property listing for SEO workflows.
      262 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to query Google Search Console data—properties, search analytics, URL inspection, and sitemaps—through natural language via a self-hosted MCP endpoint.
      MIT