Docs menu
Get started
What is Opus GrowthQuickstartAdd to your AIHow it worksSafety and approvalCreditsPlansFAQAI apps
All AI appsChatGPTClaudeGrokPerplexityClaude CodeCodexGemini CLIOpenClawCursorVS CodeWindsurfOther MCPConnect ad platforms
Google AdsMeta AdsLinkedIn AdsMicrosoft AdvertisingTikTok AdsChatGPT AdsAgencies and MCCConnect data sources
Search ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWebsites and SEO
AI ServerWordPressSEO IntelligenceClick fraudTool reference
All toolsGoogle AdsMeta AdsTikTok AdsLinkedIn AdsMicrosoft AdvertisingChatGPT AdsSearch ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWordPressAI ServerSEO IntelligenceClick fraudCross-channelAccount and billingLanguage
Organic Search Performance
Search Console ORGANIC search performance: queries, pages, countries or devices with clicks, impressions, CTR (%) and average position.
- Type
- Reads only
- Credits
- 2
- Platform
- Search Console
- Approval
- Not needed, nothing changes
What it does
Search Console ORGANIC search performance: queries, pages, countries or devices with clicks, impressions, CTR (%) and average position. Organic data, independent of ads.
`dimension` takes ONE dimension or a COMBINATION separated by commas: `query`, `page`, `country`, `device`, `date` (daily series, returned in date order), or `page,query`. The combination is what answers "which page ranks for which term", so it is the one to use for cannibalisation work — two pages competing on the same query show up as two rows with the same query (issue #295).
`sort` = clicks | impressions | ctr | position. Search Console ALWAYS returns rows by clicks, and its own `orderBy` parameter is accepted and then ignored (measured). So a query with 520 impressions and 2 clicks sits far below the cut and CTR work — which is by definition about high-impression, low-click terms — was impossible. The sort is therefore done here, over every row fetched, and `rows_scanned` tells you how wide that base was (issue #296).
`page` / `query` filter to one page or one query (substring match), so the queries of one page come in one call. days: lookback days (Search Console data lags 2-3 days, so the newest days may be empty). start_date / end_date (YYYY-MM-DD) report an exact window instead of `days`; the reply's `period` is the range actually used. `limit` controls only the response page (0 = as many rows as fit); pass `page_token=next_page_token` to read the cached remainder without another Search Console query or credit.
MCP: gsc_performance
How to use it
You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.
Parameters
| Name | Type | Required | Default | |
|---|---|---|---|---|
| site_url | string | Required | · | Exact URL of the connected WordPress site to target when more than one site is available. |
| days | integer | Optional | 28 | Number of calendar days to look back from now for this analysis or report. |
| dimension | string | Optional | query | Exact dimension value for gsc performance. Supply text in the provider's required format; when it selects an existing resource, use the exact identifier returned by the relevant list or search operation. |
| limit | integer | Optional | 0 | Maximum number of rows returned in this response. When the result has_more flag is true, continue with next_page_token rather than assuming the list is complete. |
| sort | string | Optional | clicks | Sort field and direction accepted by this operation, in the provider's documented format. |
| page | string | Optional | · | Page number to read. Use the pagination value returned by the previous response when present. |
| query | string | Optional | · | Search or report query used to filter or select results. |
| start_date | string | Optional | · | Inclusive start date for the requested period, in the format required by this tool. |
| end_date | string | Optional | · | Inclusive end date for the requested period, in the format required by this tool. |
| page_token | string | Optional | · | Continuation token returned as next_page_token by a previous call. Leave empty for the first page; pass it unchanged to retrieve the cached next page. |