mcp-search-console
Query Google Search Console data including search analytics, indexing status, sitemaps, and URL inspection across multiple accounts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-search-consoleShow top queries for my-site last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-search-console
Multi-account Google Search Console MCP server for operators who need one MCP surface across multiple sites or clients without restarting the server.
Release posture: beta package, version 0.1.3 from pyproject.toml.
Choose your path
You are... | Start here | Then |
Connecting the server to Claude/Codex/Cursor | Quick start below | |
Auditing account routing or destructive guards | ||
Reviewing packaging or registry metadata |
Related MCP server: searchconsole-mcp
Architecture
flowchart TD
U[AI operator] --> C[MCP client]
C --> S[FastMCP server]
S --> M[Account manager]
M --> F[Accounts config]
M --> A[OAuth or service-account auth]
S --> R[Retry wrapper]
R --> G[Google Search Console API]
G --> R --> SRequest flow
flowchart TD
P[Operator asks for analytics or indexing data] --> T[Selected MCP tool]
T --> A[Resolve named or default account]
A --> B[Build authenticated GSC client]
B --> C[Call Search Console endpoint]
C --> D{API call succeeds?}
D -- yes --> E[Return normalized JSON]
D -- retryable --> F[Backoff and retry]
F --> D
D -- no --> G[Return error payload]Quick start
Install the package.
python -m pip install mcp-search-console-multiCreate the accounts config.
mkdir -p ~/.config/mcp-search-console
cp accounts.example.json ~/.config/mcp-search-console/accounts.jsonRegister it in your MCP client.
{
"mcpServers": {
"search-console": {
"command": "uvx",
"args": ["mcp-search-console-multi"],
"env": {
"GSC_ACCOUNTS_CONFIG": "/Users/you/.config/mcp-search-console/accounts.json"
}
}
}
}Available tools
Tool group | Tools | Purpose |
Account routing |
| Inspect accounts, switch defaults, refresh auth |
Property inventory |
| Discover accessible properties and permissions |
Search analytics |
| Query search-performance data |
Inspection and sitemaps |
| Inspect indexing and manage sitemap submissions |
submit_sitemap and delete_sitemap stay behind the destructive flag documented in
docs/start-here.md.
Runtime proof
Claim | Proof |
Package entry point is stable |
|
Multi-account routing is first-class |
|
Search Console calls are retried |
|
Auth is file-driven per account |
Repo map
Path | Purpose |
FastMCP tool surface and response normalization | |
Account config, auth loading, client construction | |
OAuth and service-account auth implementations | |
Retry behavior for transient API failures | |
Setup, env, validation, common failures | |
Component map and runtime lifecycle |
Validation
Check | Command |
Import compiles |
|
Package builds |
|
README/docs links stay local |
|
License
MIT
Available Tools
17 toolsbatch_inspect_urlsA
Inspect multiple URLs at once. Returns one result per URL. Maximum 10 URLs per call (GSC API limit).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| page_urls | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the API limit of 10 URLs per call, which is useful. However, with no annotations provided, the description does not state whether the operation is read-only or has side effects, nor does it mention authentication requirements or other behavioral traits beyond the limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The key information (batch action, result per URL, limit) is front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a batch inspection tool given that a separate output schema exists (not described here). However, it lacks differentiation from the sibling tool 'inspect_url' and does not mention required parameters or common usage patterns, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Has 3 parameters with 0% schema description coverage. The description adds the constraint 'Maximum 10 URLs per call' related to page_urls, but does not explain account or site_url parameters. Most parameters remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Inspect multiple URLs at once' and the result 'Returns one result per URL'. It distinguishes from the sibling tool 'inspect_url' by indicating batch capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for multiple URLs but does not explicitly state when to use batch_inspect_urls versus inspect_url. Mentions a limit (max 10) but no when-not-to-use or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_indexing_issuesB
Check a list of URLs for indexing problems. Returns a prioritised summary of issues — more actionable than raw inspect_url output.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| page_urls | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It notes the output is a 'prioritised summary' but omits whether it is read-only, requires specific permissions, or has rate limits. This is a significant gap for a tool that likely reads data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 18 words, but it sacrifices necessary detail about parameters and behavior. It is front-loaded with the core action but could add value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of schema descriptions and annotations, the description should cover what each parameter means, whether the tool is read-only, and what the output schema provides. It fails to do so, leaving the agent with an incomplete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, yet the description provides no explanation of any parameter. 'site_url' and 'page_urls' are not defined, and the optional 'account' is not mentioned. This leaves the agent completely reliant on parameter names, which may be ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks URLs for indexing problems and provides a prioritised summary. It distinguishes itself from the sibling 'inspect_url' by claiming it is 'more actionable', which helps the agent differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a summarised, actionable view of indexing issues for multiple URLs is needed, contrasting with raw inspect_url output. However, it does not provide explicit when-not-to-use criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_periodsB
Compare search performance between two date ranges. Returns rows for both periods side-by-side with delta calculations.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| row_limit | No | ||
| dimensions | No | ||
| period1_end | Yes | ||
| period2_end | Yes | ||
| period1_start | Yes | ||
| period2_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that rows are returned side-by-side with delta calculations, but does not mention data format, authentication, or limitations. Output schema may fill some gaps but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Very efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to cover input parameters (8 params, 5 required, 0% schema coverage). The agent lacks crucial information on how to properly invoke the tool, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions in the schema. The description does not explain any of the 8 parameters (e.g., date format, dimensions), providing no semantic value for parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resource 'search performance between two date ranges', which is specific and distinguishes it from siblings like get_search_analytics (single period).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (compare periods) but offers no explicit guidance on when not to use or alternatives. It is adequate but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sitemapB
Delete a sitemap from Google Search Console. Requires GSC_ALLOW_DESTRUCTIVE=true.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| sitemap_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool is destructive and requires a flag, but does not disclose consequences, permissions, or irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. The purpose and a key requirement are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description leaves significant gaps: no parameter explanations, no usage dependencies (e.g., whether a sitemap must exist), and no mention of error scenarios. For a tool with 3 params and 0% schema coverage, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (account, site_url, sitemap_url). The agent gets no guidance on parameter meaning beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'sitemap from Google Search Console', which distinguishes it from sibling tools like submit_sitemap or list_sitemaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a requirement ('Requires GSC_ALLOW_DESTRUCTIVE=true'), which provides usage context. However, it does not specify when to use this tool versus alternatives or provide when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_advanced_search_analyticsC
Advanced search analytics with dimension filters.
filters format: [{"dimension": "country", "operator": "equals", "expression": "usa"}] operators: equals, notEquals, contains, notContains, includingRegex, excludingRegex
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| filters | No | ||
| end_date | Yes | ||
| site_url | Yes | ||
| row_limit | No | ||
| dimensions | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It explains the filter format but omits side effects, authentication requirements, rate limits, or error handling. The required parameters are not highlighted, leaving the agent uninformed about essential inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences and an example, no redundant text. The filter format is front-loaded, making it easy to parse. However, it could be slightly expanded to cover key parameters without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, an output schema, and multiple sibling tools, the description is insufficient. It lacks context on when to use this versus similar tools (e.g., get_search_analytics), required parameter rationale, and return value expectations (though output schema may cover the latter). The description feels incomplete for effective agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions), so the description must compensate. It adds meaning only to the filters parameter with format and operator examples, but fails to describe the other six parameters (account, end_date, site_url, row_limit, dimensions, start_date). This leaves most parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides advanced search analytics with dimension filters, using a specific verb ('get') and resource ('advanced search analytics'). It distinguishes from siblings like 'get_search_analytics' by implying enhanced functionality, but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a filters format and list of operators, offering usage guidance for the filters parameter. However, it does not specify when to use this tool over alternatives like get_search_analytics or get_performance_overview, nor does it mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_overviewA
Get a high-level performance summary: total clicks, impressions, CTR, average position. No dimension breakdown — use get_search_analytics for that.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| end_date | Yes | ||
| site_url | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes output metrics but does not disclose any behavioral traits like required permissions, date range behavior, or data freshness. Adequate for a read-only summary tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence states purpose and output, second provides alternative guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. However, parameter semantics are missing and there is no mention of date range interpretation or site_url constraints. Minimal but workable for a simple summary tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 4 parameters with 0% description coverage. Description does not mention any parameters or their roles, leaving the agent to rely solely on schema types. No additional meaning provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies verb 'Get' and resource 'high-level performance summary' with explicit metrics (clicks, impressions, CTR, avg position). It distinguishes from sibling tool 'get_search_analytics' by noting no dimension breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly tells when to use alternative ('use get_search_analytics for that'). Missing context on when not to use this tool beyond the dimension limitation, but the explicit alternative is strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_analyticsB
Fetch search analytics data (clicks, impressions, CTR, position).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account name from config (uses default if omitted) | |
| end_date | Yes | End date in YYYY-MM-DD format | |
| site_url | Yes | GSC property URL (e.g. 'https://example.com' or 'sc-domain:example.com') | |
| row_limit | No | Number of rows to return (default 25, max 1000) | |
| dimensions | No | List of dimensions — any of ['query', 'page', 'country', 'device', 'date'] | |
| start_date | Yes | Start date in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose behavioral traits like aggregation behavior, data freshness, authentication requirements, or limits beyond what parameters imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the action. Could be slightly expanded for context without losing conciseness, but currently efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having output schema and 6 parameters, the description is too brief. It does not clarify scope, common use cases, or how it differs from similar siblings, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The description adds no additional meaning beyond the schema, achieving the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Fetch' and the resource 'search analytics data', listing specific metrics ('clicks, impressions, CTR, position'), which distinguishes it from sibling tools like get_performance_overview or get_advanced_search_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_advanced_search_analytics or get_search_by_page. The description lacks context about scope or filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_by_pageC
Get search queries driving traffic to a specific page URL.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| end_date | Yes | ||
| page_url | Yes | ||
| site_url | Yes | ||
| row_limit | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the function, but does not mention that it is read-only, any authentication requirements, rate limits, pagination, or other behaviors. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words (10 words total). It is front-loaded with the verb and resource. Could be expanded slightly without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 6 parameters, an output schema, and many siblings, the description is too minimal. It does not mention return values, provide examples, or explain parameter relationships. The output schema's existence does not compensate for the missing description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage of parameter descriptions. The overall description does not explain any of the 6 parameters (site_url, page_url, etc.) beyond implying that page_url refers to a specific page. For a tool with required parameters, this is severely lacking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('search queries') with a clear scope ('driving traffic to a specific page URL'). This clearly distinguishes it from broader sibling tools like get_search_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as get_search_analytics or get_advanced_search_analytics. The description does not include any when-to-use, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_detailsB
Get verification and permission details for a specific GSC property.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It states 'Get' (read operation) but provides no details on authentication requirements, rate limits, or potential side effects. The minimal description offers little beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that directly conveys the tool's purpose without extraneous words. It is front-loaded and efficient, ideal for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of parameter descriptions and behavioral context, the description is incomplete for an agent to use effectively. The output schema exists, so return values are covered, but missing parameter semantics and usage cues limit completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only implies that 'site_url' is the property, but the 'account' parameter is entirely unexplained. Half of the parameters lack clarification, leaving ambiguity about its purpose or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'verification and permission details for a specific GSC property'. This differentiates it from sibling tools like list_properties or inspect_url, as it focuses on a single property's verification/permission status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_properties or get_performance_overview. No when-not-to-use or prerequisite information is given, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sitemapC
Get details and status of a specific sitemap.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| sitemap_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'get' implying read-only, but does not disclose permissions, side effects, or status semantics. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. However, it is too terse given the lack of parameter documentation, but conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, missing parameter explanations, and an output schema that is not described, the description is incomplete for an agent to use correctly. Complexity is moderate but unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any parameters. The account parameter's purpose and optionality are unclear. No added value beyond schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'specific sitemap', distinguishing it from sibling tools like list_sitemaps (list all) and delete_sitemap. However, it lacks additional specificity about what 'details and status' include.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor prerequisites or exclusions. The context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_urlB
Inspect a URL's indexing status, last crawl date, mobile usability, and rich result eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| page_url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It names the outputs (indexing status, crawl date, etc.) implying read-only behavior, but does not explicitly state side-effect absence, rate limits, or auth requirements. It is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence front-loads the purpose and lists key aspects concisely. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values need not be described. However, the description lacks parameter explanations and usage context, making it adequate but not comprehensive for a tool with 3 params and 0% schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameters (account, page_url, site_url) are not explained in the description. With 0% schema coverage, the description should compensate but adds no parameter meaning, leaving the agent to guess formats and relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects a URL's indexing status, last crawl date, mobile usability, and rich result eligibility. It uses a specific verb ('Inspect') and resource ('URL'), and distinguishes from siblings like batch_inspect_urls (multiple URLs) and get_search_analytics (analytics data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, prerequisites (e.g., property access), or when not to use it. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
List all configured GSC accounts and which is the current default.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description clearly states it lists accounts and the current default, implying a read-only operation with no side effects. This is sufficient for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no unnecessary words. It efficiently conveys the tool's core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description adequately covers what the tool does. The return format is presumably detailed in the output schema, so no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the input schema, and schema coverage is 100%. The description does not need to add parameter information; baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'configured GSC accounts', and explicitly mentions identifying the current default, which clearly states the tool's purpose and distinguishes it from siblings like set_default_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it could mention that this is useful before calling set_default_account to see available accounts and the current default.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_propertiesB
List all Google Search Console properties for the specified account.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. While 'list' implies a read-only operation, the description does not explicitly state that it is safe or disclose any other behavioral traits (e.g., authentication, pagination, effect on state).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 optional parameter, output schema exists), the description is adequate but lacks workflow context among siblings (e.g., it does not indicate that list_accounts should be called first to get account identifiers).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It mentions 'specified account', linking to the 'account' parameter, but does not explain what values are valid (e.g., format, source) or that default is null.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list), resource (Google Search Console properties), and scope (all for specified account), distinguishing it from siblings like list_accounts (lists accounts) and get_site_details (details of a specific property).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'for the specified account', but does not explicitly state when to use this tool versus alternatives (e.g., after list_accounts, before get_site_details). No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitemapsB
List all sitemaps submitted to GSC for this property.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states a read operation ('List') but does not disclose any behavioral traits such as rate limits, authentication needs, or handling of empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, front-loaded with the action and resource. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description does not need to detail return values. However, it lacks context about pagination or ordering, which would be helpful for a list operation. It is minimally adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description links site_url to 'this property' but does not explain the optional 'account' parameter or their formats, leaving ambiguity for the AI.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'sitemaps', clearly scoped to a property via site_url. It distinguishes from sibling tools like submit_sitemap, delete_sitemap, and get_sitemap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to list sitemaps for a property, but gives no guidance on when to choose this over siblings like list_accounts or list_properties, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reauthenticateA
Force re-authentication for an account. Clears the cached token and re-runs the OAuth flow (or reloads service account credentials). Useful when a token has been revoked or you need to switch Google accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fully discloses behavior: clears token, re-runs OAuth flow, works for service accounts. Good transparency, though could mention side effects like user interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and mechanism, then use cases. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core behavior and use cases well. Simple tool with one optional param and output schema present, so return values need no explanation. Missing prerequisite info but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one optional 'account' parameter with 0% description coverage. Description does not clarify the parameter's purpose, leaving the agent guessing. Must compensate for low coverage but fails.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (force re-authentication) and resource (account), with detailed mechanism (clears cached token, re-runs OAuth flow). Distinct from siblings focusing on data operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: token revoked or need to switch Google accounts. Implies specialized authentication tool among siblings, but lacks explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_accountA
Set the default account used when no account is specified in other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the immediate effect (setting the default account) but omits critical details such as persistence, scope (session vs global), validation of the account, and whether prior defaults are overwritten. This is a meaningful gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no superfluous words. It front-loads the verb and resource, making it immediately understandable. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose but lacks workflow context, such as referencing list_accounts to select a valid account, or clarifying whether the default persists across sessions. Given the tool's simplicity and the presence of an output schema, it is minimally adequate but leaves operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no additional meaning for the 'account' parameter. It does not specify whether the account is an ID, name, or email, nor how to discover valid values (e.g., via list_accounts). The parameter remains ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Set the default account used when no account is specified in other tools.' It uses a specific verb ('Set') and resource ('default account'), and explicitly distinguishes it from sibling tools by explaining its role as a global setting affecting other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool—when a default account is needed for other tools. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous and sufficient for a simple setter, earning a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_sitemapB
Submit a sitemap to Google Search Console. Requires GSC_ALLOW_DESTRUCTIVE=true.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| site_url | Yes | ||
| sitemap_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses destructive nature via the requirement flag, but lacks detail on post-submission behavior (e.g., validation, override). Without annotations, more context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with output schema, but lacks parameter descriptions and usage context, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description adds no explanations for the parameters, especially 'account' which has ambiguous type and purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (submit) and resource (sitemap to Google Search Console), and distinguishes it from siblings like delete_sitemap and get_sitemap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions requirement for GSC_ALLOW_DESTRUCTIVE=true, providing a usage prerequisite. However, no guidance on when to submit versus alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.1.3- First observed
batch_inspect_urls - First observed
check_indexing_issues - First observed
compare_periods - First observed
delete_sitemap - First observed
get_advanced_search_analytics - First observed
get_performance_overview - First observed
get_search_analytics - First observed
get_search_by_page - First observed
get_site_details - First observed
get_sitemap - First observed
inspect_url - First observed
list_accounts - First observed
list_properties - First observed
list_sitemaps - First observed
reauthenticate - First observed
set_default_account - First observed
submit_sitemap
TDQS
Scored across 17 tools
Each tool targets a specific operation with clear boundaries. Search analytics tools are differentiated by scope and features (overview, compare, advanced, per-page). URL inspection tools distinguish single, batch, and actionable issue-checking.
All tool names use lowercase with underscores following a consistent verb_noun pattern (e.g., list_accounts, submit_sitemap, inspect_url). No mixing of styles.
17 tools is slightly above the typical 3-15 range, but each tool serves a distinct purpose within the Google Search Console domain. The count is justified by the breadth of functionality covered.
The tool set covers the full lifecycle: account management, property details, sitemap operations, multiple search analytics views, and URL inspection (single, batch, issue analysis). No obvious gaps for common GSC workflows.
Maintenance
Related MCP Connectors
MCP server for Google search results via SERP API
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Google Ads MCP server — manage campaigns, keywords, and metrics.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceSelf-hosted MCP server that exposes Google Search Console tools (list sites, query analytics, inspect URL, list sitemaps) via natural language to AI assistants like ChatGPT and Claude.1MIT
- AlicenseAqualityCmaintenanceA lightweight, fast MCP server for Google Search Console. Query search analytics, manage sitemaps, and inspect URLs directly from your AI assistant.7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA unified MCP server that gives AI assistants direct access to Google Analytics 4, Google Search Console, Google Ads and Google Merchant Center data using OAuth2 user credentials.MIT
- FlicenseAqualityDmaintenanceMCP server integrating Google Search Console, Google Analytics 4, and GitHub, enabling AI clients to query search analytics, traffic data, and repository information.1-