Skip to main content
Glama

QuerySail: Google Search Console

Server Details

Hosted, read-only Google Search Console MCP: performance, comparisons, URL inspection, sitemaps.

Ownership verified
Status
Healthy
Uptime
88.8% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
querysail/querysail-gsc
GitHub Stars
0
Server Listing
QuerySail: Google Search Console

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation4/5

compare_performance and get_performance both surface the same metrics (clicks, impressions, CTR, position), which is the only real overlap; descriptions clearly separate one-period retrieval from two-period comparison. inspect_urls, list_properties and list_sitemaps each target a distinct resource with no plausible confusion.

Naming Consistency5/5

All five tools follow a consistent snake_case verb_noun pattern: compare_performance, get_performance, inspect_urls, list_properties, list_sitemaps. Verbs map predictably to action type (get/compare for analytics, list for collections, inspect for URL-level checks).

Tool Count4/5

Five tools is slightly lean but well matched to a read-only Search Console surface, with each tool earning its place. No redundancy or filler tools inflate the count.

Completeness4/5

Covers the main read workflows: property discovery, sitemap listing, search performance retrieval and comparison, and URL inspection. Write operations (submitting sitemaps, requesting indexing/recrawl) are absent, but the server explicitly scopes itself to read-only, so this is a minor, consistent gap rather than a dead end.

Available Tools

5 tools
compare_performanceCompare Search Console performanceA
Read-onlyIdempotent
Inspect

Use this when the user asks what changed between two periods, why traffic went up or down, or which pages, queries, countries or devices gained or lost. Compares clicks, impressions, CTR and average position for one property between a current period and the previous period (default), the same weekdays a year earlier, or explicit dates. Returns both totals with absolute and percent changes, the click change split into an impressions part and a CTR part, and, with a dimension, the top gainers and losers ranked by change in clicks or impressions. Dates are Pacific Time; with no dates the current period is the last 28 finalized days. Filters and search type apply to both periods. Changes are observed differences and do not identify causes. Read-only; does not change anything in Search Console.

NameRequiredDescriptionDefault
moversNoGainers and losers to return each. Default 10, maximum 50.
filtersNoApplied to both periods, combined with AND. Same format as get_performance filters.
rank_byNoRank movers by change in clicks (default) or impressions.
end_dateNoCurrent period end, YYYY-MM-DD (Pacific Time). Provide together with start_date.
dimensionNoOptional breakdown for top gainers and losers. Omit for totals only.
compare_toNo'previous_period' (default) is the same number of days immediately before; 'previous_year' is 52 weeks earlier, so weekdays line up. Not used with explicit previous dates.
data_stateNo'final' (default) uses finalized data only; 'all' includes recent preliminary days.
start_dateNoCurrent period start, YYYY-MM-DD (Pacific Time). Provide together with end_date.
property_idYesExact property ID from list_properties, e.g. 'sc-domain:example.com' or 'https://example.com/'.
search_typeNoWhich results to compare. Default 'web'. discover and googleNews have no queries.
connection_idNoOptional: force a specific Google connection when the property is visible to several.
previous_end_dateNoOptional explicit comparison period end, YYYY-MM-DD.
previous_start_dateNoOptional explicit comparison period start, YYYY-MM-DD. Must end before the current period starts.

Output Schema

NameRequiredDescription
notesNo
unitsNo
losersNo
totalsNo
gainersNo
requestNo
coverageNo
propertyNo
freshnessNo
requestIdNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, and the description corroborates without contradicting while adding substantial behavior: Pacific Time, the 'last 28 finalized days' default window, that click change is decomposed into impressions and CTR parts, that filters/search type apply to both periods, and a candid caveat that changes are observed differences and do not identify causes. This is disclosure well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the triggering scenario, then flows from scope to comparison modes to return shape to caveats. The single dense paragraph is efficient, though it is long enough that the return-value and timezone details could be split for faster scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter comparative tool with an output schema and full annotation coverage, the description covers the decision to use it, the comparison-mode semantics, defaults, timezone, and the limits of what the output means. Nothing an agent needs to select or invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented, but the description still adds defaults and cross-parameter semantics the schema lacks: 'previous_period' as the implicit default window, the last-28-finalized-days behavior with no dates, and the rule that explicit previous dates override compare_to. Useful additive context rather than mere repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compares) and resource (clicks, impressions, CTR, average position for a property between two periods), and implicitly distinguishes itself from the single-period sibling get_performance by framing the whole tool around change between periods. An agent can immediately tell this is the 'what changed' tool rather than a raw metrics fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with explicit trigger conditions ('when the user asks what changed between two periods, why traffic went up or down, or which pages/queries/countries/devices gained or lost'), and the compare_to enum plus the 'Not used with explicit previous dates' note disambiguates the comparison modes. It also references get_performance for filter format, anchoring the sibling relationship.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_performanceGet Search Console performanceA
Read-onlyIdempotent
Inspect

Use this to retrieve Google Search Console search performance (clicks, impressions, CTR, average position) for one property. With no dimensions it returns property totals. Add dimensions to break results down by date, hour, query, page, country, device or searchAppearance, and filters to narrow to specific queries, pages, countries, devices or search appearances (for example mobile traffic to pages containing '/blog/'). search_type selects web (default), image, video, news, discover or googleNews results; discover and googleNews have no queries. For what happened in the last hours or days, group by hour (data_state 'hourly', last 10 days only, preliminary). Dates are Pacific Time. If no dates are given it uses the last 28 finalized days (or yesterday and today for hourly) and reports the exact dates it used. Covers one period at a time. Rows are bounded (default 20, max 100); page through with the returned cursor. Google returns only top rows for query/page breakdowns, so results are not guaranteed to be complete, and a missing row does not mean zero. Figures are observed values and do not identify causes. Read-only; cannot request indexing or change anything in Search Console.

NameRequiredDescriptionDefault
cursorNoOpaque cursor from coverage.nextCursor of the previous call with the same arguments.
filtersNoAll filters are combined with AND.
end_dateNoInclusive end date, YYYY-MM-DD (Pacific Time). Provide together with start_date.
row_limitNoRows per call. Default 20, maximum 100.
data_stateNo'final' (default) returns finalized data only; 'all' includes recent preliminary data; 'hourly' is required (and implied) when grouping by hour.
dimensionsNoGroup results by these dimensions. Omit for a single totals row. 'hour' cannot be combined with 'date' and needs a range within the last 10 days. 'searchAppearance' lists search features such as review snippets or video and must be the only dimension; to break one feature down further, filter by searchAppearance instead.
start_dateNoInclusive start date, YYYY-MM-DD (Pacific Time). Provide together with end_date.
property_idYesExact property ID from list_properties, e.g. 'sc-domain:example.com' or 'https://example.com/'.
search_typeNoWhich results to report. Default 'web' (the combined 'All' tab). 'news' is the News tab in Search; 'googleNews' is news.google.com and the Google News app.
connection_idNoOptional: force a specific Google connection when the property is visible to several.
include_totalsNoWhen grouping by dimensions, also fetch a separate property-level totals row. Default false.

Output Schema

NameRequiredDescription
rowsNo
unitsNo
totalsNo
requestNo
coverageNo
propertyNo
freshnessNo
requestIdNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, and the description adds substantial context on top: Pacific Time semantics, the exact default date window, cursor-based paging with row bounds, the critical caveat that query/page breakdowns are truncated to top rows so a missing row does not mean zero, and that figures are observed values not causes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and dense with useful constraints, with no filler sentences. It is long, but nearly every clause encodes a distinct behavioral rule; a small amount of tightening would be possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with an output schema, the description covers everything an agent needs to invoke it correctly: defaults, time zone, pagination, dimension/filter interactions, search-type semantics, and data-completeness caveats. Return-value structure is left to the output schema, which is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already carries per-parameter detail and the baseline is 3. The description still adds meaning beyond it, notably the interaction rules (hour cannot combine with date, searchAppearance must be the only dimension, discover/googleNews have no queries) and a concrete filter example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('retrieve Google Search Console search performance') and enumerates exactly what the metrics are (clicks, impressions, CTR, average position). It is immediately distinguishable from the sibling compare_performance by its stated single-property, single-period scope ('Covers one period at a time').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions for every major mode: omit dimensions for totals, add dimensions to break down, use filters to narrow, group by hour for last-hours/days analysis, and pick search_type per result surface. It also states the default window when no dates are supplied and warns that hourly is limited to the last 10 days.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_urlsInspect URLs in Search ConsoleA
Read-onlyIdempotent
Inspect

Use this when the user asks whether specific pages are indexed by Google, why a page is not on Google, or which canonical Google chose. Runs Search Console URL Inspection for 1 to 20 full URLs of one property and returns, per URL: whether it is on Google, the coverage state (for example 'Crawled - currently not indexed'), robots.txt and noindex blocking, the page fetch result, last crawl time and crawler, the canonical Google chose versus the one the page declares, sitemaps and referring pages that list it, and detected rich results with their issues. Results describe the version Google last indexed, not a live test. Each URL must belong to the property, given by its exact property_id. Read-only; cannot request indexing, a recrawl or change anything in Search Console.

NameRequiredDescriptionDefault
urlsYesFull page URLs to inspect, including https://. All must belong to the property. Duplicates are inspected once.
property_idYesExact property ID from list_properties, e.g. 'sc-domain:example.com' or 'https://example.com/'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.

Output Schema

NameRequiredDescription
notesNo
resultsNo
summaryNo
propertyNo
freshnessNo
requestIdNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint/idempotentHint already establish safety), the description discloses scope limits (1–20 URLs, single property), the important caveat that results describe the last-indexed version rather than a live test, and an explicit capability boundary ('cannot request indexing, a recrawl or change anything'). These are exactly the non-obvious behaviors an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the trigger condition before the mechanics and return payload, and every sentence carries information. It is dense and fairly long, but the length is justified by the enumerated return fields and the live-vs-indexed caveat, so nothing reads as filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain returns, yet it does so usefully while also covering scope, caveats, and limits. For a 3-parameter read tool with full schema coverage, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both required parameters are already documented in the schema (including the 1–20 bounds and the property-membership requirement). The description restates the URL-count limit and the property_id constraint without adding syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (runs Search Console URL Inspection for full URLs of one property) and enumerates the returned per-URL fields, which cleanly separates it from the sibling performance/sitemap/property tools. An agent can identify this tool's domain without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit trigger list ('when the user asks whether specific pages are indexed by Google, why a page is not on Google, or which canonical Google chose'), which is clear usage context. It does not, however, name or exclude any sibling alternative (e.g. get_performance or list_sitemaps), so routing among siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_propertiesList Search Console propertiesA
Read-onlyIdempotent
Inspect

Use this when the user asks which Google Search Console sites or properties they can access, or to find the exact property_id for a site. Returns exact property IDs (Domain properties look like 'sc-domain:example.com', URL-prefix properties like 'https://example.com/'), the permission level, and connection status. The same site is listed once even if several connected Google accounts can see it. A site name can match more than one property, for example a Domain property and a URL-prefix property. Read-only. Does not change anything in Google Search Console.

NameRequiredDescriptionDefault
cursorNoOpaque cursor from a previous result's coverage.nextCursor.
connection_idNoOptional: only list properties visible to this Google connection (connectionId from a previous result).

Output Schema

NameRequiredDescription
notesNo
coverageNo
requestIdNo
propertiesNo
connectionsNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered; the description adds genuinely new behavior: deduplication across connected accounts, one site name possibly matching multiple properties, and the returned permission level and connection status. It does restate read-only, which duplicates annotations, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the usage trigger and return summary; sentences are efficient and purposeful. The closing 'Read-only. Does not change anything' mildly duplicates annotation data but is brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations, a full output schema, and 100% parameter coverage, the description supplies what's needed to select and invoke the tool. Pagination via cursor is left to the schema, which is acceptable given the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (cursor, connection_id) are already documented in the schema. The description adds nothing about cursor pagination or connection filtering, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list Search Console properties/sites) and clarifies it returns exact property IDs, distinguishing it from siblings like list_sitemaps or get_performance. The added detail about ID formats ('sc-domain:example.com', 'https://example.com/') makes the resource concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear trigger conditions: 'when the user asks which Google Search Console sites or properties they can access, or to find the exact property_id for a site.' No explicit when-not condition or named alternative sibling, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitemapsList Search Console sitemapsA
Read-onlyIdempotent
Inspect

Use this when the user asks which sitemaps a site has in Search Console, whether Google read them, or whether they have errors or warnings. Lists the sitemaps submitted for one property with type, whether it is an index, pending status, last submitted and last read times, error and warning counts, and how many URLs each lists by content type. Pass sitemap_index to list the sitemaps inside a sitemap index. URL counts are listed URLs, not indexed URLs. Read-only; cannot submit, resubmit or delete sitemaps.

NameRequiredDescriptionDefault
property_idYesExact property ID from list_properties, e.g. 'sc-domain:example.com' or 'https://example.com/'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.
sitemap_indexNoOptional: full URL of a sitemap index from a previous result, to list the sitemaps inside it.

Output Schema

NameRequiredDescription
notesNo
summaryNo
propertyNo
sitemapsNo
freshnessNo
requestIdNo
sitemapIndexNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/destructive=false, so the bar is lower. The description still adds real value: the caveat that 'URL counts are listed URLs, not indexed URLs' prevents misinterpretation, and it explicitly scopes out write operations (cannot submit, resubmit or delete).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the usage trigger before the descriptive detail, and each sentence carries a distinct purpose (trigger, output shape, sitemap_index, caveat, read-only scope). Slightly dense but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so enumerating return fields is partially redundant, but the usage trigger, index-recursion behavior, listed-vs-indexed caveat and read-only scope make the definition fully actionable for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the sitemap_index behavior ('list the sitemaps inside a sitemap index') but adds no format or edge-case detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lists the sitemaps submitted for one property') and enumerates the returned fields, making it clearly distinct from siblings like list_properties and get_performance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with an explicit trigger condition ('Use this when the user asks which sitemaps a site has... whether Google read them, or whether they have errors'), plus a second usage case for sitemap_index. It never names an alternative or a when-not condition, so it falls short of a 5.

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.

  1. 5 tool updates
    • First observedcompare_performance
    • First observedget_performance
    • First observedinspect_urls
    • First observedlist_properties
    • First observedlist_sitemaps

Publisher details

Operator
QuerySail (operated by Gidian Bateman, South Africa) · Publisher source
Operator website
https://querysail.com
Vendor relationship
Independent
Trust center
Not available
Restrictions
Requires a QuerySail account with Google Search Console connected. 7-day free trial without a card, then a paid plan ($8/month). · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP clients to query Google Search Console search performance, inspect indexing, analyze sitemaps, and run SEO analyses such as cannibalisation detection, query clustering, and wins/losses, all with read-only access.
    20
    40 npm
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for Google Search Console data, enabling search analytics, URL inspection, indexing diagnostics, and sitemap management through MCP clients.
    8 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables local, read-only access to Google Search Console data, allowing users to query site performance, identify ranking opportunities, inspect URL indexing, and review sitemap status through MCP clients.
    8
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.