Back to Directory/Analytics & BI

MCP Search Console

Multi-account Google Search Console MCP: analytics, URL inspection, sitemaps across named accounts.

Analytics & BIPythonv0.1.3

mcp-search-console

Multi-account Google Search Console MCP server for operators who need one MCP surface across multiple sites or clients without restarting the server.

Release posture: beta package, version 0.1.3 from pyproject.toml.

Choose your path

You are...Start hereThen
Connecting the server to Claude/Codex/Cursordocs/start-here.mdQuick start below
Auditing account routing or destructive guardsdocs/architecture.mdgsc/server.py
Reviewing packaging or registry metadatapyproject.tomlserver.json

Architecture

flowchart TD
  U[AI operator] --> C[MCP client]
  C --> S[FastMCP server]
  S --> M[Account manager]
  M --> F[Accounts config]
  M --> A[OAuth or service-account auth]
  S --> R[Retry wrapper]
  R --> G[Google Search Console API]
  G --> R --> S

Request flow

flowchart TD
  P[Operator asks for analytics or indexing data] --> T[Selected MCP tool]
  T --> A[Resolve named or default account]
  A --> B[Build authenticated GSC client]
  B --> C[Call Search Console endpoint]
  C --> D{API call succeeds?}
  D -- yes --> E[Return normalized JSON]
  D -- retryable --> F[Backoff and retry]
  F --> D
  D -- no --> G[Return error payload]

Quick start

  1. Install the package.
python -m pip install mcp-search-console-multi
  1. Create the accounts config.
mkdir -p ~/.config/mcp-search-console
cp accounts.example.json ~/.config/mcp-search-console/accounts.json
  1. Register it in your MCP client.
{
  "mcpServers": {
    "search-console": {
      "command": "uvx",
      "args": ["mcp-search-console-multi"],
      "env": {
        "GSC_ACCOUNTS_CONFIG": "/Users/you/.config/mcp-search-console/accounts.json"
      }
    }
  }
}

Available tools

Tool groupToolsPurpose
Account routinglist_accounts, set_default_account, reauthenticateInspect accounts, switch defaults, refresh auth
Property inventorylist_properties, get_site_detailsDiscover accessible properties and permissions
Search analyticsget_search_analytics, get_performance_overview, compare_periods, get_advanced_search_analytics, get_search_by_pageQuery search-performance data
Inspection and sitemapsinspect_url, batch_inspect_urls, check_indexing_issues, list_sitemaps, get_sitemap, submit_sitemap, delete_sitemapInspect indexing and manage sitemap submissions

submit_sitemap and delete_sitemap stay behind the destructive flag documented in docs/start-here.md.

Runtime proof

ClaimProof
Package entry point is stablemcp-search-console-multi = "gsc.server:main" in pyproject.toml
Multi-account routing is first-classAccountManager() and _get_manager() in gsc/server.py
Search Console calls are retriedwith_retry() in gsc/server.py and gsc/retry.py
Auth is file-driven per accountaccounts.example.json and gsc/accounts.py

Repo map

PathPurpose
gsc/server.pyFastMCP tool surface and response normalization
gsc/accounts.pyAccount config, auth loading, client construction
gsc/auth/OAuth and service-account auth implementations
gsc/retry.pyRetry behavior for transient API failures
docs/start-here.mdSetup, env, validation, common failures
docs/architecture.mdComponent map and runtime lifecycle

Validation

CheckCommand
Import compilespython -m compileall gsc
Package buildspython -m build
README/docs links stay localrg '\\]\\(([^)]+\\.md)\\)' README.md docs/

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-search-console-multi

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-ayo-fam-mcp-search-console": {
      "command": "uvx",
      "args": [
        "mcp-search-console-multi"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-search-console-multipypi

Compatible MCP Clients

MCP Search Console works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More