Server facts
Google Search Console MCP Server
Project
- Author
- AminForou
- Repository
- github.com/AminForou/mcp-gsc
- License
- MIT
- Category
- Data & Analytics
Tech
- Runtime / language
- pythonPython
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 1,950
- Last commit
- Data as of
Tags
- Google Search Console
- Indexing
- Python
- Search Analytics
- Seo
Overview
Google Search Console MCP Server brings site performance and indexing data into conversations with an AI assistant. Its tools cover properties, search analytics, URL inspection, and sitemap management. Analysts can inspect clicks, impressions, click-through rate, and position, compare date ranges, or filter results by country, device, query, and page. Page-specific query reports help connect search terms with landing pages. URL tools expose crawl and indexing details, including batch inspection of up to ten URLs per call. A capabilities tool reports the available operations and authentication status.
The README recommends launching the mcp-search-console package through uvx, which handles the Python runtime. Source-checkout installation instead requires Python 3.11 or newer. Authentication can use a downloaded desktop OAuth client configuration, with browser login on first use, or a service-account key whose email has been granted access to the Search Console property. Examples cover desktop and command-line MCP clients, and recommend an absolute uvx path for GUI hosts. Potentially destructive site and sitemap operations are disabled unless explicitly enabled. A data-state setting selects dashboard-like data or finalized results, with the latter carrying a reporting lag. The README promotes a separate hosted offering with additional GA4 tools, but those should not be assumed to belong to this local server. Its primary scope is authenticated access to the user's Search Console properties.
Install & configure
Requirements
- uv / uvx
- Google project with Search Console API enabled
- OAuth desktop client credentials or a service-account key
- Access to the relevant Search Console property
/FULL/PATH/TO/uvx mcp-search-consoleReplace /FULL/PATH/TO/uvx with the actual executable path. This example uses OAuth and opens a browser on first use. Service-account setup instead uses GSC_CREDENTIALS_PATH and GSC_SKIP_OAUTH. The source-install path needs Python 3.11+.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-gsc": {
"command": "/FULL/PATH/TO/uvx",
"args": [
"mcp-search-console"
],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "<Absolute path to downloaded desktop OAuth client JSON>"
}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-gsc": {
"command": "/FULL/PATH/TO/uvx",
"args": [
"mcp-search-console"
],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "<Absolute path to downloaded desktop OAuth client JSON>"
}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"mcp-gsc": {
"type": "stdio",
"command": "/FULL/PATH/TO/uvx",
"args": [
"mcp-search-console"
],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "<Absolute path to downloaded desktop OAuth client JSON>"
}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-gsc": {
"command": "/FULL/PATH/TO/uvx",
"args": [
"mcp-search-console"
],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "<Absolute path to downloaded desktop OAuth client JSON>"
}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-gsc": {
"type": "stdio",
"command": "/FULL/PATH/TO/uvx",
"args": [
"mcp-search-console"
],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "<Absolute path to downloaded desktop OAuth client JSON>"
}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| get_capabilities | List available tools and report authentication status. |
| list_properties | List the Search Console properties available to the account. |
| get_site_details | Retrieve information about a selected property. |
| get_search_analytics | Report query and page metrics for a selected date range. |
| get_performance_overview | Summarize property performance over a time period. |
| compare_search_periods | Compare metrics between two date ranges. |
| get_search_by_page_query | Find queries contributing traffic to a particular page. |
| get_advanced_search_analytics | Filter analytics by country, device, query, or page. |
| inspect_url_enhanced | Inspect detailed indexing and crawl status for a URL. |
| batch_url_inspection | Inspect up to ten URLs in one request. |
| check_indexing_issues | Check several URLs for indexing problems. |
| get_sitemaps | List sitemaps for a property. |
| list_sitemaps_enhanced | Retrieve sitemap details including errors and warnings. |
| manage_sitemaps | Submit or delete a sitemap, subject to configuration. |
| reauthenticate | Restart browser OAuth login to authenticate again or switch accounts. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Compare search traffic between reporting periods.
- Find queries driving visits to a specific page.
- Inspect crawl and indexing problems across URLs.
- Review sitemap errors and submit sitemaps.
- Filter performance by device or country.
Strengths
- Combines search reporting, URL inspection, and sitemap workflows.
- Supports OAuth and service-account authentication.
- Destructive operations require explicit enablement.
Limitations
- Requires Google API credential setup and property access.
- Batch URL inspection is limited to ten URLs per call.
- Finalized data has a documented reporting lag.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.