CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Google Search Console

acamolese/google-search-console-mcp
36 toolsSTDIOregistry active
Summary

Connects Claude and other MCP clients directly to Google Search Console via read-only API access. Exposes eight tools covering site lists, performance queries by dimension (query, page, country, device), indexing status checks, URL inspection, and sitemap enumeration. The standout is gsc_audit, which generates a complete brandable HTML report with Chart.js visualizations, automatic issue detection, and a 30/60/90 day SEO roadmap in a single call. Supports stateless deployment through environment variables or XDG config for desktop use. Runs via uvx straight from PyPI with no repository clone required. Useful when you're doing SEO work inside an AI assistant and want to skip the browser loop between Search Console and your chat.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

6 tools
GOOGLE_SEARCH_CONSOLE_GET_SITEMAPRetrieves information about a specific sitemap for a site.2 params

Retrieves information about a specific sitemap for a site.

Parameters* required
feedpathstring
The URL of the sitemap to retrieve. For example: https://www.example.com/sitemap.xml
site_urlstring
The site's URL, including protocol. For example: https://www.example.com/
GOOGLE_SEARCH_CONSOLE_INSPECT_URLInspects a URL for indexing issues and status in Google Search Console.4 params

Inspects a URL for indexing issues and status in Google Search Console.

Parameters* required
urlstring
The URL to inspect. For example: https://www.example.com/page
site_urlstring
The site's URL, including protocol. For example: https://www.example.com/
language_codestring
The language code of the page. For example: en-USdefault: en-US
inspection_urlstring
The URL of the property as defined in Search Console. For example: https://www.example.com/
GOOGLE_SEARCH_CONSOLE_LIST_SITEMAPSLists all sitemaps for a site in Google Search Console.2 params

Lists all sitemaps for a site in Google Search Console.

Parameters* required
site_urlstring
The site's URL, including protocol. For example: https://www.example.com/
sitemap_indexstring
The sitemap index to start listing from. Used for pagination.
GOOGLE_SEARCH_CONSOLE_LIST_SITESLists all sites owned by the authenticated user in Google Search Console.

Lists all sites owned by the authenticated user in Google Search Console.

No parameter schema in public metadata yet.

GOOGLE_SEARCH_CONSOLE_SEARCH_ANALYTICS_QUERYQueries Google Search Console for search analytics data including clicks, impressions, CTR, and position metrics.10 params

Queries Google Search Console for search analytics data including clicks, impressions, CTR, and position metrics.

Parameters* required
end_datestring
The end date of the date range for the query, in YYYY-MM-DD format.
site_urlstring
The site's URL, including protocol. For example: https://www.example.com/
row_limitinteger
The maximum number of rows to return. Must be between 1 and 5000.default: 1000
start_rowinteger
The first row to return from the result set. Used for pagination.default: 0
data_statestring
The data state to return. Possible values: final, alldefault: final
dimensionsarray
The dimensions to group the data by. Possible values: query, page, country, device, date
start_datestring
The start date of the date range for the query, in YYYY-MM-DD format.
search_typestring
The search type to filter by. Possible values: web, video, image, newsdefault: web
aggregation_typestring
How data is aggregated. Possible values: auto, byPropertydefault: auto
dimension_filter_groupsarray
Filters to apply to the dimensions. Each filter group contains dimension filters.
GOOGLE_SEARCH_CONSOLE_SUBMIT_SITEMAPSubmits a sitemap to Google Search Console for indexing.2 params

Submits a sitemap to Google Search Console for indexing.

Parameters* required
feedpathstring
The URL of the sitemap to submit. For example: https://www.example.com/sitemap.xml
site_urlstring
The site's URL, including protocol. For example: https://www.example.com/

Google Search Console MCP Server

PyPI version Python versions License: MIT PyPI downloads CI

Read this in: English | Italiano

Open-source Model Context Protocol (MCP) server for Google Search Console. Brings your Search Console performance data, URL inspection, indexing checks, and sitemaps into Claude Code, Claude Desktop, Cursor, Zed, Continue, and any MCP-compatible client, and generates complete brandable HTML SEO audit reports in a single call.

If you work with SEO and use an AI coding assistant, this MCP server removes the copy-paste loop between Search Console and your chat: ask for top queries, check which pages are indexed, inspect a URL, or produce a 30/60/90-day SEO roadmap as an HTML report, all without leaving the assistant.

Features

  • Read-only access to Search Console (no write operations to your properties, only the webmasters.readonly OAuth scope)
  • 8 tools covering sites, performance queries, pages, devices, countries, indexing, sitemaps, URL inspection
  • gsc_audit: one-call generator for a self-contained HTML SEO report with Chart.js graphs, automatic issue detection, concrete examples, actionable strategy and a 30/60/90-day roadmap
  • Brandable reports: customize logo, font, and color palette via branding.json, perfect for agencies delivering white-label audits
  • Stateless-friendly: credentials via environment variables (ideal for CI, Docker, hosted MCP) or via the XDG config directory
  • Zero setup with uvx: no clone, no virtualenv, runs straight from PyPI
  • Works with any MCP client: Claude Code, Claude Desktop, Cursor, Zed, Continue, Windsurf

Why use this MCP server

  • Skip the Search Console UI when you already live inside your AI assistant
  • Turn GSC data into a shareable client-ready HTML audit in a single prompt
  • Keep full control over credentials: choose env vars, XDG config, or legacy file layout
  • Safe by design: read-only scope means the server cannot edit or remove anything from your properties
  • Python 3.10+, MIT licensed, published on PyPI as mcp-google-search-console

Tools

ToolDescription
gsc_sitesList all verified sites
gsc_site_detailsDetails of a specific site
gsc_queryPerformance report with dimensions (query, page, country, device, date)
gsc_performance_overviewAggregated metrics for a period (clicks, impressions, CTR, position)
gsc_indexing_issuesCheck indexing status for a list of pages
gsc_inspect_urlDetailed URL Inspection for a single page
gsc_sitemapsList all sitemaps submitted for a site
gsc_auditGenerate a complete HTML audit report for a date range

Installation

Option A — uvx (recommended, zero setup)

Run directly from PyPI, no clone or venv required:

uvx mcp-google-search-console auth      # one-time OAuth authorization
uvx mcp-google-search-console            # start the MCP server

Option B — pipx

pipx install mcp-google-search-console
mcp-google-search-console auth
mcp-google-search-console

Option C — From source

git clone https://github.com/acamolese/google-search-console-mcp.git
cd google-search-console-mcp
uv venv && uv pip install -e .
.venv/bin/mcp-google-search-console auth

Configuration

1. Google Cloud setup

  1. Google Cloud Console → create a project
  2. Enable the Google Search Console API
  3. APIs & Credentials → Create Credentials → OAuth 2.0 Client ID → Desktop app
  4. Download the JSON

2. Provide the OAuth client credentials

You have three ways, pick whichever fits your setup. The server reads them in this order:

A — Environment variables (best for headless, CI, Docker, hosted MCP):

export GSC_CLIENT_ID="xxxxxxxxxxxx.apps.googleusercontent.com"
export GSC_CLIENT_SECRET="GOCSPX-xxxxxxxxxxxxxxxx"
export GSC_REFRESH_TOKEN="1//0xxxxxxxxxxxxxxxx"

With these three variables set, the server is fully stateless: no files are read or written.

B — XDG config directory (recommended for local desktop usage):

Save the OAuth client JSON as:

~/.config/mcp-google-search-console/oauth_credentials.json

Then run the interactive authorization flow:

mcp-google-search-console auth

This opens a browser, captures the OAuth consent and saves the refresh token to ~/.config/mcp-google-search-console/token.json. On Linux and macOS the path honors $XDG_CONFIG_HOME if set.

C — Legacy per-project directory (backward compatibility only):

Place files under ./credentials/oauth_credentials.json and ./credentials/token.json in the working directory where the server is launched. This mode is still supported for older setups but not recommended.

Client configuration

All examples below assume you installed with uvx. Adjust the command if you used pipx (mcp-google-search-console) or cloned from source (/path/to/.venv/bin/mcp-google-search-console).

Claude Code

Edit ~/.claude/.mcp.json:

{
  "mcpServers": {
    "google-search-console": {
      "command": "uvx",
      "args": ["mcp-google-search-console"]
    }
  }
}

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "google-search-console": {
      "command": "uvx",
      "args": ["mcp-google-search-console"]
    }
  }
}

Cursor

Edit ~/.cursor/mcp.json (or the project-local .cursor/mcp.json):

{
  "mcpServers": {
    "google-search-console": {
      "command": "uvx",
      "args": ["mcp-google-search-console"]
    }
  }
}

Zed

Add to your Zed settings.json under context_servers:

{
  "context_servers": {
    "google-search-console": {
      "command": {
        "path": "uvx",
        "args": ["mcp-google-search-console"]
      }
    }
  }
}

Continue, Windsurf, and other MCP clients

Any MCP client that supports stdio servers can use the same pattern:

{
  "mcpServers": {
    "google-search-console": {
      "command": "uvx",
      "args": ["mcp-google-search-console"]
    }
  }
}

Stateless configuration with environment variables

If you prefer not to persist anything on disk, pass credentials inline:

{
  "mcpServers": {
    "google-search-console": {
      "command": "uvx",
      "args": ["mcp-google-search-console"],
      "env": {
        "GSC_CLIENT_ID": "xxxxxxxxxxxx.apps.googleusercontent.com",
        "GSC_CLIENT_SECRET": "GOCSPX-xxxxxxxxxxxxxxxx",
        "GSC_REFRESH_TOKEN": "1//0xxxxxxxxxxxxxxxx"
      }
    }
  }
}

Usage examples

Once the MCP server is wired into your client, you can ask things like:

  • "List my verified sites in Search Console"
  • "Show the top 50 queries for sc-domain:example.com over the last 30 days"
  • "Check if these 5 pages are indexed: ..."
  • "Generate a complete audit of example.com for the period 2026-01-01 → 2026-03-31"

The gsc_audit tool writes a self-contained HTML file to ~/gsc-reports/ and returns the path. Open it in any browser.

Tips

  • Use sc-domain:example.com for domain properties or https://example.com/ for URL-prefix properties.
  • Available dimensions for gsc_query: query, page, country, device, date (combine with commas).
  • Maximum 25,000 rows per request.

Customizing the audit report

The audit report layout uses a Jinja2 template in src/google_search_console_mcp/templates/report.html.j2 with colors and fonts driven by branding.json.

To customize without touching the package, create your own branding.json in the XDG config directory:

~/.config/mcp-google-search-console/branding.json

Example:

{
  "brand_name": "Acme SEO Studio",
  "logo": "logo.png",
  "font_family": "Poppins",
  "font_url": "https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap",
  "colors": {
    "primary": "#ff6b35",
    "primary_dark": "#cc4a1f",
    "secondary": "#004e89",
    "accent": "#00b894",
    "danger": "#e74c3c",
    "warning": "#f39c12",
    "text": "#004e89",
    "text_muted": "#5a6c7d",
    "text_light": "#8395a7",
    "bg": "#f8f9fc",
    "surface": "#ffffff",
    "border": "#e1e8ed"
  }
}

The logo field accepts either a local file name (resolved against the XDG config dir, then the package dir) or a full URL. Local files are automatically base64-encoded into the HTML so the report stays self-contained.

You can also pass a custom branding file per report via the branding_path parameter of gsc_audit:

"Generate an audit of example.com using the branding at /path/to/client-branding.json"

FAQ

What is an MCP server?

MCP (Model Context Protocol) is an open protocol that lets AI assistants like Claude or Cursor talk to external data sources and tools through a standard interface. An MCP server exposes a set of tools (functions) and resources that the assistant can call during a conversation. This project is an MCP server that exposes Google Search Console as tools your assistant can use.

Does this work with Claude Desktop, Claude Code, Cursor, Zed, and Continue?

Yes. Anything that can speak MCP over stdio can use this server. Ready-to-paste configuration snippets for each client are in Client configuration.

Can this server change or delete data in my Search Console account?

No. The server only requests the webmasters.readonly scope from Google, which is read-only by design. It cannot submit sitemaps, request indexing, or modify any property settings.

How do I obtain the OAuth client credentials?

Create a Google Cloud project, enable the Google Search Console API, then create an OAuth 2.0 Client ID of type Desktop app and download the JSON. Full steps are in the Configuration section.

Can I use a service account instead of OAuth?

Not currently. The Search Console API requires that the identity has been granted access to the property, and Google's own docs recommend OAuth user credentials for most use cases. If you need service account support, open an issue.

Can I customize the SEO audit report?

Yes. Drop a branding.json file in ~/.config/mcp-google-search-console/ to override logo, font, and the full color palette. See Customizing the audit report. You can also pass a per-report branding_path parameter when calling gsc_audit, which is ideal for agencies producing white-label audits for multiple clients.

Where are the audit reports saved?

gsc_audit writes a self-contained HTML file to ~/gsc-reports/ and returns the path. The file is fully inlined (CSS, charts, images base64-encoded) so you can share it without worrying about external assets.

What's the difference between sc-domain: and URL-prefix properties?

sc-domain:example.com covers the entire domain, including all subdomains and both http/https. https://example.com/ only covers that specific prefix. Use whichever matches how you verified the property in Search Console.

Does it work on headless servers or in Docker?

Yes. Set GSC_CLIENT_ID, GSC_CLIENT_SECRET, GSC_REFRESH_TOKEN as environment variables and skip the browser auth flow. The server is fully stateless in this mode and never writes to disk.

Security

  • Never commit oauth_credentials.json, token.json, or .env files with real secrets.
  • The XDG config directory is the default storage location and is outside the repository.
  • The server only requests the webmasters.readonly scope.

Troubleshooting

  • 401 Unauthorized on first call: token expired or missing. Run mcp-google-search-console auth or set GSC_REFRESH_TOKEN.
  • "No OAuth client credentials found": neither env vars nor files are configured. See the Configuration section.
  • Browser flow fails on headless machines: skip auth entirely and export GSC_CLIENT_ID, GSC_CLIENT_SECRET, GSC_REFRESH_TOKEN as environment variables.

Migration from legacy installs (pre-f2fe60e)

The package was restructured in commit f2fe60e and no longer ships a top-level server.py. If your MCP client was configured to launch the server with python server.py, it will now fail at startup with:

can't open file '.../server.py': [Errno 2] No such file or directory

Update your client config to use the installed entry-point instead:

"google-search-console": {
  "command": "uvx",
  "args": ["mcp-google-search-console"]
}

Equivalent forms are listed under Client configuration.

License

MIT © Andrea Camolese. Not affiliated with Google or Anthropic. "Google Search Console" is a trademark of Google LLC.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Search & Web Crawling
Registryactive
Packagemcp-google-search-console
TransportSTDIO
UpdatedApr 14, 2026
View on GitHub

Related Search & Web Crawling MCP Servers

View all →
Google Search

com.mcparmory/google-search

Scrape Google search results with SERP data, ads, and knowledge panels
25
Brave Search

io.github.pipeworx-io/brave-search

Brave Search MCP — independent web index (no Google/Bing dependency)
Serper Search and Scrape

marcopesani/mcp-server-serper

Serper MCP Server supporting search and webpage scraping
154
Brave Search Mcp Server

brave/brave-search-mcp-server

Brave Search MCP Server: web results, images, videos, rich results, AI summaries, and more.
1.2k
Google Search Console

com.mcparmory/google-search-console

Query search analytics, manage sitemaps, and inspect site URLs and status
25
Google Search Console

io.github.sarahpark/google-search-console

Google Search Console MCP server — search analytics, URL inspection, and sitemaps
2