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
- Google Cloud Console → create project
- Enable the Search Console API
- Credentials → Create → OAuth client ID → Desktop app
- Download as
client_secrets.json - On first use, a browser window opens for you to authorise — token is saved automatically
Service account setup
- Google Cloud Console → Credentials → Create → Service Account
- Keys tab → Add Key → JSON → download
- 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
Release files for mcp-search-console-multi 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_search_console_multi-0.1.3.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_search_console_multi-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.0 kB
Release files / mcp_search_console_multi-0.1.3.tar.gz
| Download URL | mcp_search_console_multi-0.1.3.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f853ccb07d2ad1bf884317b6717a0a4249b219e566f1ef9d954dfbcc94c31dfc
|
|
BLAKE2b-256 checksum How to use checksums |
2701ad22367b65d8227d771fcb7bc2342ebba5a7828c63d6679c49d36d46be28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / mcp_search_console_multi-0.1.3-py3-none-any.whl
| Download URL | mcp_search_console_multi-0.1.3-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0fd5dda48262594ac5d0d8f0ffedb4632b11ba102d723abe70b21268437fe376
|
|
BLAKE2b-256 checksum How to use checksums |
118496aa8188a955233feca1c100e69c244bb675e3f39c805712ed3b1c5e96dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|