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.0.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.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_search_console_multi-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 ea8beff21b3696d28ea3ec1ab5029bae01b30b35ebb37f268c70f06c8d6a0ee6
MD5 4a6c45dce7cd85180766558eb43e9495
BLAKE2b-256 d8eee2206e152319103eef91708022efac8341cdf15076156de281d452ccba73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_search_console_multi-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dce4f12d92ee6530e46ff278c05134482426a02b3757ce773d4afe108aa87cb
MD5 e9c1c16b271e72973d941f4862492a3d
BLAKE2b-256 dac27bf99d280b11b7195c1a2fafda5f2328d5250f4ab9d432726c26630bd17d

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