Skip to main content
Glama
search-console-mcp

search-console-mcp

search-console-mcp

A read-only Model Context Protocol server for Google Search Console. Point it at a Search Console property and query your search-performance data, sitemaps, and URL index status from any MCP client (Claude Code, Claude Desktop, Cursor, …).

It exists to read and analyze Search Console data — nothing else. It cannot add sites, submit sitemaps, request indexing, or change anything.

Read-only by design

Read-only is enforced at three independent layers, so there is no single point of failure:

  1. OAuth scope. Credentials are always downscoped to https://www.googleapis.com/auth/webmasters.readonly. Google's API rejects any write call made with this scope — regardless of the signed-in account's role. If you mint your credentials with this scope (the helper below does), even a leaked credential file cannot modify your account.

  2. Tool surface. The server only implements read methods. There is no code path that mutates Search Console.

  3. Network surface. The only host contacted is googleapis.com, via Google's official client libraries. No telemetry, no third-party endpoints.

Dependencies are limited to the official mcp, google-api-python-client, and google-auth packages.

Related MCP server: google-search-console-mcp-python

Tools

Tool

What it returns

list_sites

Properties the account can access, with permission level

search_analytics

Performance report: clicks, impressions, CTR, position, grouped by query / page / country / device / date / search appearance, with filters

list_sitemaps

Sitemaps submitted for a property

get_sitemap

Index status and errors for one sitemap

inspect_url

URL Inspection: index coverage, last crawl, canonical, mobile usability (tight per-property quota)

Setup

1. Enable the API

In a Google Cloud project, enable the Google Search Console API.

2. Mint read-only credentials

Create an OAuth Desktop app client in that project and download its JSON. Then:

pip install "search-console-mcp[auth]"   # provides google-auth-oauthlib

python scripts/mint_token.py \
    --client-secrets /path/to/oauth_client.json \
    --output /path/to/gsc-readonly-credentials.json

A browser opens — sign in as the account that has access to the Search Console properties you want to read. Viewer / Restricted access is enough. The output file is an authorized-user credential limited to the read-only scope.

A service-account key also works (no minting step) — just set GOOGLE_APPLICATION_CREDENTIALS to it and add the service-account email as a user on each property. The OAuth path above is recommended for personal use.

3. Register the server

uvx runs it without an explicit install:

{
  "mcpServers": {
    "search-console": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "search-console-mcp", "search-console-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/gsc-readonly-credentials.json"
      }
    }
  }
}

See .mcp.json.example. Restart your MCP client, and the five tools above become available.

Develop

uv sync
uv run search-console-mcp   # starts the stdio server

License

MIT — see LICENSE.

Available Tools

5 tools
get_sitemapA

Returns details for a single sitemap, including index status and errors.

Args: site_url: Property URL, e.g. sc-domain:example.com. feedpath: Full URL of the sitemap, e.g. https://example.com/sitemap.xml.

Inputs: site_url (required), feedpath (required).

inspect_urlA

Inspects a URL's index status via the URL Inspection API (read-only).

Reports Google's index coverage, last crawl, canonical, mobile usability, and rich-results state for a single URL. Subject to tight per-property daily quotas set by Google.

Args: site_url: Property URL the inspected URL belongs to, e.g. sc-domain:example.com. inspection_url: The fully-qualified URL to inspect. language_code: BCP-47 language code for the result, default en-US.

Inputs: site_url (required), inspection_url (required), language_code.

list_sitemapsA

Lists the sitemaps submitted for a property.

Args: site_url: Property URL, e.g. sc-domain:example.com.

Inputs: site_url (required).

list_sitesA

Lists all Search Console properties the authenticated account can access.

Returns each site's URL (e.g. sc-domain:example.com or https://example.com/) and the permission level on it.

Inputs: no named parameters.

search_analyticsA

Queries Search Console search-performance data (the Performance report).

Args: site_url: Property to query, exactly as it appears in Search Console, e.g. sc-domain:example.com or https://example.com/. start_date: Inclusive start date, YYYY-MM-DD. end_date: Inclusive end date, YYYY-MM-DD. dimensions: Group-by dimensions. Any of: query, page, country, device, date, searchAppearance. Omit for account totals. search_type: One of web, image, video, news, discover, googleNews. row_limit: Rows to return, 1-25000 (default 1000). start_row: Zero-based offset for pagination (default 0). dimension_filters: Optional list of filters, each a dict with keys dimension, operator (equals, contains, notContains, includingRegex, excludingRegex), and expression. data_state: final (default, finalized data) or all (includes fresh, not-yet-finalized data).

Returns: The raw API response, including a rows list with keys, clicks, impressions, ctr, and position.

Inputs: site_url (required), start_date (required), end_date (required), dimensions, +5 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of Search Console: site listing, sitemap management, URL inspection, and analytics queries. No overlap in functionality.

    Naming Consistency5/5

    All tool names follow a clear verb_noun pattern with lowercase and underscores: list_sites, list_sitemaps, get_sitemap, inspect_url, search_analytics. Perfectly consistent.

    Tool Count4/5

    5 tools is appropriate for a focused Search Console integration. It covers the core read operations without being overly heavy, though a few more write tools could be added.

    Completeness3/5

    The toolset covers listing, inspection, and analytics but lacks write operations like adding sites or submitting sitemaps, leaving notable gaps for full property management.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      MCP server for querying Google Search Console data — search analytics, URL inspection, sitemap monitoring, and more — read-only tools for any MCP-compatible AI client.
      7
      33 PyPI
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for Google Search Console API that enables querying search analytics, managing sites, inspecting URLs, and supporting domain delegation via service accounts.
      22 PyPI
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server for Google Search Console, enabling querying search analytics, URL inspection, sitemap management, and more via natural language.
      16,878 npm
      3
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for Google Search Console, enabling querying search performance, listing properties, and inspecting URL indexing status from MCP-compatible clients.
      4
      18 npm
      1
      MIT