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 propertiesRead
list_sitesList selected propertiesList 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 propertyRead
get_siteGet propertyRead 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 performanceRead
query_search_analyticsQuery search performanceQuery 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 URLRead
inspect_urlInspect indexed URLRead 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 sitemapsRead
list_sitemapsList submitted sitemapsList 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 statusRead
get_sitemapGet sitemap statusRead 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 sitemapWrite
submit_sitemapSubmit sitemapSubmit 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 sitemapWrite
delete_sitemapRemove submitted sitemapRemove 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.