Skip to content

MCP

Google Search Console MCPTool documentation

8 tool calls, their inputs and the limits of this connection. Implementation snapshot: 8 October 2026.

The complete tool reference.

6 read tools and 2 write tools. Open a tool to see its parameters and full JSON Schema. Unknown fields are rejected.

list_sitesList selected properties
Read

List only the Search Console properties selected for this MCP connection and their Google permission levels.

Input parameters

No parameters. Pass an empty object: {}.

Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_siteGet property
Read

Read the Google permission level for one selected Search Console property.

Input parameters

site_urlRequired
string · Max. characters: 2048
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    }
  },
  "required": [
    "site_url"
  ],
  "additionalProperties": false
}
query_search_analyticsQuery search performance
Read

Query clicks, impressions, CTR and position. Pacific dates; top rows, not exhaustive. Interactive limits: 93 days aggregate, 31 days with page or query, 7 days/5000 rows with both. Page with start_row; large exports are unavailable.

Input parameters

site_urlRequired
string · Max. characters: 2048
start_dateRequired
string · date
end_dateRequired
string · date
dimensionsOptional
array · Max. entries: 7 · Entries: string (country | device | page | query | searchAppearance | date | hour)
typeOptional
string · web | image | video | news | discover | googleNews
data_stateOptional
string · final | all | hourly_all
aggregation_typeOptional
string · auto | byPage | byProperty | byNewsShowcasePanel
row_limitOptional
integer · Default: 1000 · min. 1 · max. 25000
start_rowOptional
integer · Default: 0 · min. 0 · max. 50000
dimension_filter_groupsOptional
array · Max. entries: 10 · Entries: object
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "end_date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "dimensions": {
      "maxItems": 7,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "country",
          "device",
          "page",
          "query",
          "searchAppearance",
          "date",
          "hour"
        ]
      }
    },
    "type": {
      "type": "string",
      "enum": [
        "web",
        "image",
        "video",
        "news",
        "discover",
        "googleNews"
      ]
    },
    "data_state": {
      "type": "string",
      "enum": [
        "final",
        "all",
        "hourly_all"
      ]
    },
    "aggregation_type": {
      "type": "string",
      "enum": [
        "auto",
        "byPage",
        "byProperty",
        "byNewsShowcasePanel"
      ]
    },
    "row_limit": {
      "default": 1000,
      "type": "integer",
      "minimum": 1,
      "maximum": 25000
    },
    "start_row": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 50000
    },
    "dimension_filter_groups": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "groupType": {
            "type": "string",
            "const": "and"
          },
          "filters": {
            "minItems": 1,
            "maxItems": 30,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dimension": {
                  "type": "string",
                  "enum": [
                    "country",
                    "device",
                    "page",
                    "query",
                    "searchAppearance"
                  ]
                },
                "operator": {
                  "type": "string",
                  "enum": [
                    "contains",
                    "equals",
                    "notContains",
                    "notEquals",
                    "includingRegex",
                    "excludingRegex"
                  ]
                },
                "expression": {
                  "type": "string",
                  "maxLength": 4096
                }
              },
              "required": [
                "dimension",
                "expression"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "groupType",
          "filters"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "site_url",
    "start_date",
    "end_date"
  ],
  "additionalProperties": false
}
inspect_urlInspect indexed URL
Read

Read Google indexed-URL inspection results for a URL inside a selected property. Does not request indexing or run a live crawl.

Input parameters

site_urlRequired
string · Max. characters: 2048
inspection_urlRequired
string · Max. characters: 4096
language_codeOptional
string · Max. characters: 35
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "inspection_url": {
      "type": "string",
      "maxLength": 4096
    },
    "language_code": {
      "type": "string",
      "maxLength": 35,
      "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
    }
  },
  "required": [
    "site_url",
    "inspection_url"
  ],
  "additionalProperties": false
}
list_sitemapsList submitted sitemaps
Read

List sitemaps submitted to a selected property. Optionally list children of a sitemap index.

Input parameters

site_urlRequired
string · Max. characters: 2048
sitemap_indexOptional
string · Max. characters: 4096
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "sitemap_index": {
      "type": "string",
      "maxLength": 4096
    }
  },
  "required": [
    "site_url"
  ],
  "additionalProperties": false
}
get_sitemapGet sitemap status
Read

Read processing status, warnings and errors for a submitted sitemap in a selected property.

Input parameters

site_urlRequired
string · Max. characters: 2048
sitemap_urlRequired
string · Max. characters: 4096
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "sitemap_url": {
      "type": "string",
      "maxLength": 4096,
      "description": "Sitemap URL within the selected property."
    }
  },
  "required": [
    "site_url",
    "sitemap_url"
  ],
  "additionalProperties": false
}
submit_sitemapSubmit sitemap
Write

Submit a sitemap URL to Google Search Console for the selected property. Changes Google configuration; use only for a user-requested submission. Does not guarantee indexing.

Input parameters

site_urlRequired
string · Max. characters: 2048
sitemap_urlRequired
string · Max. characters: 4096
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "sitemap_url": {
      "type": "string",
      "maxLength": 4096,
      "description": "Sitemap URL within the selected property."
    }
  },
  "required": [
    "site_url",
    "sitemap_url"
  ],
  "additionalProperties": false
}
delete_sitemapRemove submitted sitemap
Write

Remove a submitted sitemap record from Google Search Console. Requires explicit user intent. Does not delete the hosted sitemap file or directly remove pages from the Google index.

Changes existing configuration or campaign status. Requires explicit user intent.

Input parameters

site_urlRequired
string · Max. characters: 2048
sitemap_urlRequired
string · Max. characters: 4096
Full input schema (JSON)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "site_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Exact selected Search Console property, e.g. sc-domain:example.com or https://example.com/."
    },
    "sitemap_url": {
      "type": "string",
      "maxLength": 4096,
      "description": "Sitemap URL within the selected property."
    }
  },
  "required": [
    "site_url",
    "sitemap_url"
  ],
  "additionalProperties": false
}

A concrete tool call.

JSON-RPC request after MCP initialization. Sample IDs and dates: replace them with your selected resource and reporting period. The AI client handles transport and authorization.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "query_search_analytics",
    "arguments": {
      "site_url": "sc-domain:example.com",
      "start_date": "2026-09-01",
      "end_date": "2026-09-07",
      "dimensions": [
        "query"
      ],
      "row_limit": 100
    }
  }
}

How results come back.

structuredContent
Contains the tool result as a JSON object. Google field names are retained. The same JSON is also returned as a text block in content.
Data by tool
Search performance returns rows with keys, clicks, impressions, ctr and position when data is available. URL inspection returns inspectionResult. Site lists use siteEntry. Sitemap submissions/removals return status: submitted or removed.
isError: true
Tool failures return structuredContent.error and request_id, optionally retry_after_seconds. For example: scope_missing for missing access or service_unavailable when a service cannot be reached. Do not repeat an uncertain write blindly.

Access and technical limits.

Search performance: at most 93 aggregate days, 31 days with page or query, 7 days and 5,000 rows with both. Filter dimensions also count; dimensions must be unique. Default limit 1,000, maximum 25,000 rows for other queries; use start_row for further rows. Google returns top rows, not a complete export. Dates use Pacific Time. URL inspection reads stored index status; no live crawl or indexing request. These write tools do not use operation_id.

Connection uses MCP Streamable HTTP with bearer authorization. The server checks read/write scope and the selected resource for each call. Both your Google permissions and MCP connection permissions must allow the operation. Clients discover tools using tools/list; these pages document the tool registry.

Read scope: mcp:gsc:read. Write scope: mcp:gsc:write.

Sitemap writes require explicit user intent. Writes are not retried automatically.