Skip to main content

Multi-account Google Search Console MCP server

Project description

mcp-search-console

Multi-account Google Search Console MCP server. Connect any number of GSC accounts to Claude, Cursor, Codex, or any MCP-compatible AI assistant — and query them by name in the same session.

# Install:  uvx mcp-search-console-multi

# Ask your AI:
"Show me the top queries for my-site last month"
"Compare client-acme's performance between Q1 and Q2"
"Check indexing issues on client-beta's 5 product pages"

Why this one?

Most GSC MCP servers support one account per server process. This one lets you configure multiple accounts (your own sites + client sites) and switch between them per tool call — no restart needed.

Feature This server Others
Multiple accounts Yes — named, switchable No — one per process
OAuth + service account Both, mixed per account Usually one type
Auto token refresh Yes Sometimes
Rate limit retry Yes — exponential backoff No
Destructive op guard Yes — env flag required Sometimes
SSE transport (remote) Yes Varies

Quickstart (uvx — no clone needed)

1. Create your accounts config:

mkdir -p ~/.config/mcp-search-console
cp accounts.example.json ~/.config/mcp-search-console/accounts.json
# Edit it — add your accounts

2. Add to your MCP client config:

{
  "mcpServers": {
    "search-console": {
      "command": "uvx",
      "args": ["mcp-search-console-multi"],
      "env": {
        "GSC_ACCOUNTS_CONFIG": "/Users/you/.config/mcp-search-console/accounts.json"
      }
    }
  }
}

3. Restart your AI client. Done.


Accounts config

Copy accounts.example.json and edit it:

{
  "default": "my-site",
  "accounts": {
    "my-site": {
      "type": "oauth",
      "client_secrets_file": "~/.config/mcp-search-console/client_secrets.json",
      "token_file": "~/.config/mcp-search-console/my-site.token"
    },
    "client-acme": {
      "type": "service_account",
      "credentials_file": "~/.config/mcp-search-console/acme.json"
    }
  }
}

Set GSC_ACCOUNTS_CONFIG to its path, or put it at ~/.config/mcp-search-console/accounts.json (default).

OAuth setup

  1. Google Cloud Console → create project
  2. Enable the Search Console API
  3. Credentials → Create → OAuth client ID → Desktop app
  4. Download as client_secrets.json
  5. On first use, a browser window opens for you to authorise — token is saved automatically

Service account setup

  1. Google Cloud Console → Credentials → Create → Service Account
  2. Keys tab → Add Key → JSON → download
  3. In GSC, add the service account email as a user on each property

Using multiple accounts

Every tool accepts an optional account parameter. Omit it to use your default.

"Show top queries for my-site"                    # uses default
"Show top queries for client-acme"                # uses named account
"Compare client-beta performance Jan vs Feb"      # named account

Or set the default mid-session:

"Switch to client-acme as my default account"

Available tools

Account management

Tool What it does
list_accounts Show all configured accounts and which is default
set_default_account Change the default account
reauthenticate Re-run OAuth flow or reload credentials for an account

Properties

Tool What it does
list_properties List all GSC properties
get_site_details Verification + permission details for a property

Search analytics

Tool What it does
get_search_analytics Queries, pages, clicks, impressions, CTR, position
get_performance_overview Site-level totals for a period
compare_periods Side-by-side comparison of two date ranges
get_advanced_search_analytics Analytics with dimension filters (country, device, etc.)
get_search_by_page Queries driving traffic to a specific page

URL inspection

Tool What it does
inspect_url Indexing status, crawl date, mobile usability, rich results
batch_inspect_urls Inspect up to 10 URLs at once
check_indexing_issues Prioritised issue summary across multiple URLs

Sitemaps

Tool What it does
list_sitemaps All submitted sitemaps with status
get_sitemap Details for a specific sitemap
submit_sitemap Submit a new sitemap (requires GSC_ALLOW_DESTRUCTIVE=true)
delete_sitemap Remove a sitemap (requires GSC_ALLOW_DESTRUCTIVE=true)

Environment variables

Variable Default Description
GSC_ACCOUNTS_CONFIG ~/.config/mcp-search-console/accounts.json Path to your accounts config
GSC_ALLOW_DESTRUCTIVE unset Set to true to enable sitemap submit/delete
MCP_TRANSPORT stdio Set to sse for remote/Docker deployment
MCP_HOST 127.0.0.1 SSE bind host (use 0.0.0.0 for all interfaces)
MCP_PORT 3001 SSE bind port

Remote deployment (Docker / VPS)

docker build -t mcp-search-console .

docker run \
  -e MCP_TRANSPORT=sse \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_PORT=3001 \
  -e GSC_ACCOUNTS_CONFIG=/config/accounts.json \
  -v /path/to/config:/config \
  -p 3001:3001 \
  mcp-search-console

Your MCP client connects to http://your-server:3001/sse.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_search_console_multi-0.1.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_search_console_multi-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_search_console_multi-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_search_console_multi-0.1.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_search_console_multi-0.1.1.tar.gz
Algorithm Hash digest
SHA256 565ade9c12fc7165c00c4dba78f6696820f4eb90bc12e022fba431c645920402
MD5 e9ebca27e418b2320e12f838c2747ae7
BLAKE2b-256 9b47ccdc6d6190b2c1dae162c55908dd9d640b995433e202b7fc600d9c12147d

See more details on using hashes here.

File details

Details for the file mcp_search_console_multi-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mcp_search_console_multi-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_search_console_multi-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b177a2b0483be3cbda054149248d6e56dce68a9d1e3463f98d277375a8a86997
MD5 a46e3344d5660ee87fb563aa0526ca82
BLAKE2b-256 4c1b538a1ec0cddaba0cab6d02d0a666c73047388e9bd2898ecafab8be0ce23a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page