Google Search Console
Google Search Console for SEO reporting: sites, sitemaps, search analytics, and URL inspection
16 tools available
Installation
Claude Desktop
{
"mcpServers": {
"hopkin-google-search-console": {
"url": "https://gsc.mcp.hopkin.ai",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
CLI
npm install -g @hopkin/cli
hopkin auth set-key hpk_live_...
hopkin google-search-console ping
Tools
ch-console-get-search-analytics
google_search_console_get_search_analytics Get Search Analytics Data
Query Google Search Console search analytics data. Returns clicks, impressions, CTR, and position. Args: site_url (string, required): The Search Console property URL. start_date (string, required): Start date in YYYY-MM-DD format. end_date (string, required): End date in YYYY-MM-DD format (must be >= start_date). dimensions (array, optional): Group by dimensions. Valid: query, page, device, country, date, searchAppearance. Note: searchAppearance cannot be combined with query, page, device, or country — only with date. search_type (string, optional): web (default), image, video, news, discover, googleNews. dimension_filter_groups (array, optional): Filter by dimension values. Note: Cannot combine aggregate_by=byPage with a page dimension filter. aggregate_by (string, optional): auto (default), byPage, byProperty, byNewsShowcasePanel. row_limit (int, optional): Number of rows to return. Range: [1, 25000]. Default: 25. start_row (int, optional): 0-based row offset for pagination. Default: 0. Returns: data: array of { keys, clicks, impressions, ctr, position } rowCount, responseAggregationType, firstIncompleteDate (if data is incomplete) Note: Data freshness lag — recent dates (last 3+ days) may be incomplete. Check firstIncompleteDate in response.
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
start_date required | string | Start date in YYYY-MM-DD format. |
end_date required | string | End date in YYYY-MM-DD format. Must be >= start_date. |
reason required | string | Why this tool call is needed |
6 optional parameters
| Parameter | Type | Description |
|---|---|---|
dimensions | array | Group results by these dimensions. searchAppearance can only be combined with date. |
search_type | string | Filter by search type. Default: web. |
dimension_filter_groups | array | Filter rows by dimension values. |
aggregate_by | string | Aggregation level. byPage cannot be combined with page dimension filters. |
row_limit | integer | Number of rows to return. Range: 1-25000. Default: 25. |
start_row | integer | Zero-based row offset for pagination. Default: 0. |
ch-console-get-top-queries
google_search_console_get_top_queries Get Top Search Queries
Get top queries with clicks, impressions, CTR, and position. Automatically identifies high-opportunity queries (position 4-20, impressions >100, CTR <5%). Args: site_url (string, required): The Search Console property URL. days (int, optional): Number of days to look back. Range: [1, 90]. Default: 28. start_date / end_date (string, optional): Explicit date range (overrides days). page_filter (string, optional): Filter to queries for a specific URL (exact match). device (string, optional): Filter by device type. Valid: desktop, mobile, tablet. search_type (string, optional): web (default), image, video, news. row_limit (int, optional): Max queries to return. Default: 25. start_row (int, optional): Pagination offset. Default: 0. Returns: data: top query rows highOpportunityQueries: queries with ranking potential (position 4-20, impressions >100, CTR <5%) site_url, dateRange
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
reason required | string | Why this tool call is needed |
8 optional parameters
| Parameter | Type | Description |
|---|---|---|
days | integer | Number of days to look back. Default: 28. Range: 1-90. |
start_date | string | Override start date (YYYY-MM-DD). Takes precedence over days if both provided. |
end_date | string | Override end date (YYYY-MM-DD). Takes precedence over days if both provided. |
page_filter | string | Filter to queries driving traffic to this page (absolute URL or relative path, e.g. "/blog"). |
device | string | Filter by device type. |
search_type | string | |
row_limit | integer | |
start_row | integer |
ch-console-compare-performance
google_search_console_compare_performance Compare Search Performance (Period Over Period)
Compare current vs previous period performance in a single call. Makes 4 parallel API calls internally and returns deltas for clicks, impressions, CTR, and position. Args: site_url (string, required): The Search Console property URL. days (int, optional): Length of each period in days. Range: [1, 90]. Default: 28. current_end_date (string, optional): Override the end date of the current period (YYYY-MM-DD). Default: today minus 3 days. search_type (string, optional): web (default), image, video, news. Returns: currentPeriod, previousPeriod: { startDate, endDate, clicks, impressions, ctr, position } delta: { clicks, clicksPct, impressions, impressionsPct, ctr, position } trend: "improving" (clicks up >10%), "declining" (clicks down >10%), or "stable" topQueries, previousTopQueries: top 50 queries for each period (may be null if sub-query failed) errors: list of sub-query failures (if any) — overall metrics are always present Periods are adjacent and non-overlapping: previousEnd + 1 day = currentStart.
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
days | integer | Window size in days for each period. Default: 28. |
current_end_date | string | End date of the current period (YYYY-MM-DD). Default: today - 3 days (data freshness lag). |
search_type | string |
ch-console-get-performance-overview
google_search_console_get_performance_overview Get Search Performance Overview
Get a complete overview of search performance in a single call: overall metrics, top queries, top pages, and daily trend. Makes 4 parallel API calls internally. Args: site_url (string, required): The Search Console property URL. days (int, optional): Number of days to look back. Range: [1, 90]. Default: 28. search_type (string, optional): web (default), image, video, news. Returns: overall: aggregate metrics { startDate, endDate, clicks, impressions, ctr, position } topQueries: top 10 queries by clicks topPages: top 10 pages by clicks byDate: daily breakdown dateRange: { startDate, endDate } errors: list of sub-query failures (if any) — partial results are returned when sub-queries fail
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
reason required | string | Why this tool call is needed |
2 optional parameters
| Parameter | Type | Description |
|---|---|---|
days | integer | Number of days to look back. Default: 28. |
search_type | string |
ch-console-check-auth-status
google_search_console_check_auth_status Check Google Search Console Auth Status
Troubleshoot authentication issues. Only use this when another tool fails with a permission or auth error — do NOT call proactively. Returns: authenticated status, user_id, email, and a human-readable message.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
ch-console-list-connections
google_search_console_list_connections List Google Search Console Connections
List the Google Search Console connections available to you — both ones you own and ones shared with you via an organization. Only Google connections with Search Console (webmasters.readonly) scope are returned. Use this to discover connection IDs for set_default / share / rename / revoke.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
ch-console-set-default-connection
google_search_console_set_default_connection Set Default Google Search Console Connection
Set the Google Search Console connection that should be used by default for subsequent Google Search Console tool calls. The default is scoped to the calling actor (your user account, or the API key being used).
| Parameter | Type | Description |
|---|---|---|
connection_id required | string | UUID of the connection to mark as the actor's default Google Search Console connection. |
reason required | string | Why this tool call is needed |
ch-console-share-connection
ch-console-unshare-connection
ch-console-rename-connection
google_search_console_rename_connection Rename Google Search Console Connection
Rename the display name of an owned Google Search Console connection. The OAuth grant and underlying account are unaffected — this only changes the human-readable label. You must be the owner.
| Parameter | Type | Description |
|---|---|---|
connection_id required | string | UUID of the connection to mark as the actor's default Google Search Console connection. |
reason required | string | Why this tool call is needed |
ch-console-revoke-connection
google_search_console_revoke_connection Revoke Google Search Console Connection
Revoke (soft-delete) an owned Google Search Console connection. Any defaults pointing to it are invalidated and shared org members lose access. The OAuth grant at Google is NOT revoked by this tool — the user must disconnect via the dashboard if they want to fully revoke at Google. You must be the owner.
| Parameter | Type | Description |
|---|---|---|
connection_id required | string | UUID of the connection to mark as the actor's default Google Search Console connection. |
reason required | string | Why this tool call is needed |
ch-console-developer-feedback
google_search_console_developer_feedback Submit Developer Feedback
Submit feedback about missing tools, improvements, bugs, or workflow gaps in the Search Console MCP toolset. Not for user-facing issues (auth errors, API errors). Args: feedback_type: new_tool, improvement, bug, workflow_gap title: Short description (5-200 chars) description: What is needed and why (20-2000 chars) current_workaround (optional): How you're working around the gap priority (optional): low, medium (default), high Returns: confirmation that feedback was recorded.
| Parameter | Type | Description |
|---|---|---|
feedback_type required | string | Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow) |
title required | string | Concise title summarizing the feedback |
description required | string | What is needed and why |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
current_workaround | string | Current workaround, if any |
priority | string | Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue) |
interface | string | Interface the feedback originated from: MCP (default) or CLI |
ch-console-ping
google_search_console_ping Ping Google Search Console MCP Server
Health check. Returns server status, version, and timestamp.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
message | string | Optional message to echo back |
ch-console-list-sites
google_search_console_list_sites List Search Console Properties
List all Google Search Console properties (sites) the user has access to. Use this tool first to discover which properties are available before calling other tools. Results are cached for 15 minutes; pass refresh=true only when you need the latest list. Args: refresh (bool, optional): Force a fresh fetch from the API, bypassing cache. Default: false. Returns: List of site properties with siteUrl and permissionLevel (siteOwner, siteFullUser, siteRestrictedUser, siteUnverifiedUser).
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
refresh | boolean | Force a fresh fetch from the API, bypassing cache |
ch-console-list-sitemaps
google_search_console_list_sitemaps List Search Console Sitemaps
List sitemaps submitted to Google Search Console for a property. Args: site_url (string, required): The Search Console property URL (e.g. https://example.com/ or sc-domain:example.com). refresh (bool, optional): Force a fresh fetch from the API, bypassing cache. Default: false. Returns: List of submitted sitemaps with path, last submission date, pending/error status, and error/warning counts.
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
refresh | boolean | Force a fresh fetch from the API, bypassing cache |
ch-console-inspect-url
google_search_console_inspect_url Inspect URL (Google Search Console)
Get detailed indexing and crawl status for a specific URL using the Google Search Console URL Inspection API. Args: inspection_url (string, required): Fully-qualified URL to inspect. Must be under the site_url property. site_url (string, required): The Search Console property that contains the URL (e.g. https://example.com/ or sc-domain:example.com). language_code (string, optional): IETF BCP-47 language code for translated issue messages (e.g. en-US). Returns: verdict (PASS/FAIL/NEUTRAL), coverage state, robots.txt state, indexing state, page fetch state, last crawl time, crawled as (mobile/desktop), Google canonical URL, user canonical URL, sitemap references. Note: Use google_search_console_list_sites first to discover valid site_url values.
| Parameter | Type | Description |
|---|---|---|
site_url required | string | The Search Console property URL (e.g. sc-domain:example.com or just example.com). |
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
refresh | boolean | Force a fresh fetch from the API, bypassing cache |