# Organiq GEO (remote · organiqgeo.com)

Search Console and GA4 analysis (read-only Google): queries, decay, cannibalization, AI traffic.

- Trust score: 83/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `organiqgeo.com`: 83/100 (this document), [markdown](https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo.md), [page](https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo)

## Channel facts

- Endpoint: `https://organiqgeo.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.6.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 22412 tokens (~476/item across 47 items; 47 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 47 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 48 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Organiq GEO MCP server?

Organiq GEO is a hosted endpoint at https://organiqgeo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-organiqgeo-organiq 'https://organiqgeo.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-organiqgeo-organiq": {
      "url": "https://organiqgeo.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-organiqgeo-organiq": {
      "type": "http",
      "url": "https://organiqgeo.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-organiqgeo-organiq]
url = "https://organiqgeo.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-organiqgeo-organiq": {
      "type": "remote",
      "url": "https://organiqgeo.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-organiqgeo-organiq --url 'https://organiqgeo.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-organiqgeo-organiq:
    url: "https://organiqgeo.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-organiqgeo-organiq": {
      "Transport": "http",
      "Url": "https://organiqgeo.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-organiqgeo-organiq -t streamable-http -u 'https://organiqgeo.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-organiqgeo-organiq": {
      "type": "http",
      "url": "https://organiqgeo.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 82, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “set_bing_key” rewrote its description, which is the text the model reads
- [security] Tool “get_indexing_requests” rewrote its description, which is the text the model reads
- [security] Tool “request_indexing” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 20129 → 22412
- [functional] Server version: 0.5.5 → 0.6.0
- [functional] Server version: 0.5.3 → 0.5.5
- [functional] New tool “check_ai_access”
- [cosmetic] “analyze_cannibalization” reworded the description of “site”
- [cosmetic] “analyze_query_shapes” reworded the description of “site”
- [cosmetic] “analyze_sampling_impact” reworded the description of “site”
- [cosmetic] “breakdown_by_path” reworded the description of “site”
- [cosmetic] “detect_anomalies” reworded the description of “site”
- [cosmetic] “detect_change_points” reworded the description of “site”
- [cosmetic] “find_decaying_content” reworded the description of “site”
- [cosmetic] “find_page_poaching_opportunities” reworded the description of “site”
- [cosmetic] “forecast_traffic” reworded the description of “site”
- [cosmetic] “generate_seo_report” reworded the description of “site”
- [cosmetic] “get_annotations” reworded the description of “site”
- [cosmetic] “get_bing_performance” reworded the description of “site”
- [cosmetic] “get_branded_performance” reworded the description of “site”
- [cosmetic] “get_breakdown” reworded the description of “site”
- [cosmetic] “get_core_web_vitals” reworded the description of “site”
- [cosmetic] “get_ctr_curve” reworded the description of “site”
- [cosmetic] “get_genai_impressions” reworded the description of “site”
- [cosmetic] “get_indexing_requests” reworded the description of “site”
- [cosmetic] “get_indexing_tracker” reworded the description of “site”
- [cosmetic] “get_longtail_clusters” reworded the description of “site”
- [cosmetic] “get_page_performance” reworded the description of “site”
- [cosmetic] “get_position_distribution” reworded the description of “site”
- [cosmetic] “get_query_performance” reworded the description of “site”
- [cosmetic] “get_query_shape_trend” reworded the description of “site”
- [cosmetic] “get_ranking_changes” reworded the description of “site”
- [cosmetic] “get_site_summary” reworded the description of “site”
- [cosmetic] “get_timeseries” reworded the description of “site”
- [cosmetic] “get_weekly_digest” reworded the description of “site”
- [cosmetic] “list_sitemaps” reworded the description of “site”
- [cosmetic] “list_url_inspections” reworded the description of “site”
- [cosmetic] “query_countries” reworded the description of “site”
- [cosmetic] “query_devices” reworded the description of “site”
- [cosmetic] “query_top_pages” reworded the description of “site”
- [cosmetic] “query_top_queries” reworded the description of “site”
- [cosmetic] “request_indexing” reworded the description of “site”
- [cosmetic] “score_opportunities” reworded the description of “site”
- [cosmetic] “set_bing_site” reworded the description of “site”
- [cosmetic] “set_branded_terms” reworded the description of “site”
- [cosmetic] “set_ga4_property” reworded the description of “site”

### 2026-11-02 (score 82, +1)

- [security] Tool “get_indexing_requests” rewrote its description, which is the text the model reads
- [security] Tool “request_indexing” rewrote its description, which is the text the model reads
- [functional] The server now declares the “logging” capability
- [functional] Server version: 0.5.1 → 0.5.3

### 2026-11-01 (score 81, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_indexing_tracker” rewrote its description, which is the text the model reads
- [security] Tool “list_url_inspections” rewrote its description, which is the text the model reads
- [functional] The server now declares the “completions” capability
- [functional] The server now declares the “resources” capability
- [functional] Server version: 0.4.2 → 0.5.1
- [functional] New tool “get_indexing_requests”
- [functional] New tool “request_indexing”

### 2026-10-31 (score 81, +1)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.4.0 → 0.4.2
- [functional] Server version: 0.3.0 → 0.4.0

### 2026-10-30 (score 80)

First indexed and scored.

## MCP tools (47)

### `get_capabilities` (~129 tokens)

What Organiq provides

Returns a factual overview of this connector: what data it holds (Google Search Console synced daily into Organiq, plus GA4 referral sessions from AI assistants), the list of tools with when to use each, units, default periods, how to connect an account (OAuth or API key), rate limits and example questions. Works without signing in. Use it first when you do not know what this server can answer. / Visão geral factual do conector, sem login: dados, ferramentas, unidades, como conectar, limites.

Input parameters:

- `language` (string): Language of the texts (default en).

### `get_ctr_benchmark` (~144 tokens)

Generic CTR-by-position benchmark

Returns the generic organic click-through-rate curve by Google position (1–20, fraction 0–1) used by score_opportunities and find_page_poaching_opportunities as the fallback when a property lacks its own volume, optionally interpolated for a fractional position. No account needed; no property data involved. Use it to estimate expected clicks for a position or to explain a CTR gap. / Curva genérica de CTR por posição, sem login.

Input parameters:

- `impressions` (integer): Optional impressions to convert the expected CTR into expected clicks.
- `position` (number): Optional fractional position (e.g. 4.6) to get the interpolated expected CTR.

### `check_connection` (~125 tokens)

Connection status

Reports whether this request is authenticated and, if so, which Organiq account it uses (name, plan, how it authenticated), how many Search Console properties are available with their data coverage, and what is missing (no account, no properties, and per property GA4, Bing and branded terms) with the panel URL and the steps that resolve each gap. Without credentials it explains how to connect. Use it when a tool returned unauthorized/site_not_found or before a first analysis. / Diz se há conta, propriedades, plano e o que falta, com a URL para resolver.

### `check_ai_access` (~377 tokens)

AI crawler access check

Checks whether AI crawlers can read one public web page and whether the page is set up to be cited. For the exact URL path it evaluates the domain's robots.txt for 8 AI robots (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, Bingbot, CCBot, Applebot-Extended), each as allowed, blocked or no-rule (no rule for that robot or *, so allowed by default), or unknown when robots.txt could not be read; it checks for a valid /llms.txt (title, link count); and it reads the page's JSON-LD for citable types (Article, BlogPosting, FAQPage, HowTo…) and the fields that are missing (author Person with url, datePublished, dateModified, Organization.sameAs). Each part has a verdict (pass, warn, fail, info). Works without signing in and without a property: it fetches three public URLs of the site (the page, /robots.txt, /llms.txt) and stores nothing. Only public http/https addresses on the standard ports are accepted; private, local and internal addresses return invalid_argument. Use it to answer "can GPTBot / ClaudeBot / PerplexityBot read this page", "does this site have llms.txt" or "does this page have the structured data to be cited". It does not measure traffic or rankings. / Checa, sem login, se os robôs de IA podem ler uma página pública (robots.txt no caminho exato, llms.txt e JSON-LD de citação); não mede tráfego nem posição.

Input parameters:

- `url` (string, required): Public page address, e.g. example.com/blog/post or https://example.com/blog/post. The robots.txt rules are evaluated for this exact path.

### `list_sites` (~116 tokens)

Properties in the account

Lists the Search Console properties synced for the signed-in account: id, siteUrl (Search Console format), displayName, tags, branded_terms (used by the brand filter), whether GA4/Bing are mapped and the data coverage (dataFrom/dataTo, web search). Use it first when you do not know the exact name of a site or need the date range available. Default: visible properties only. / Propriedades da conta com cobertura de dados.

Input parameters:

- `includeHidden` (boolean): Include hidden properties (visible = false).

### `get_site_summary` (~509 tokens)

Property summary

Totals of clicks, impressions, CTR and average position for one property over the period, with the comparison period and the change (absolute, Pct as fraction, ctrPoints in percentage points, position difference where negative means improvement). Accepts all filters (country, device, brand, page, query). Start here for "how is site X doing". / Resumo da propriedade com comparação.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `query_top_queries` (~626 tokens)

Top queries

Search queries of one property over the period, aggregated and sorted. Use for "what people search to find us", growth/decline lists and ranking changes. Each row has clicks, impressions, ctr, position for the period and, with a comparison, prevClicks/prevImpressions/prevCtr/prevPosition plus clicksChange/clicksChangePct/positionChange (keys present in only one period show zeros in the other). sort: clicks (default), impressions, ctr, position (lowest first), growth (largest click gain vs comparison first) or decline (largest loss first). For ctr/position use minImpressions >= 20 to avoid noise. / Queries da propriedade, agregadas e ordenadas.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50, max 1000).
- `minImpressions` (integer): Drop keys with fewer impressions than this in both periods (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): Sort order (default clicks).
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `query_top_pages` (~625 tokens)

Top pages

Pages (URLs) of one property over the period, aggregated and sorted. Use for best/worst pages and pages that gained or lost clicks. Each row has clicks, impressions, ctr, position for the period and, with a comparison, prevClicks/prevImpressions/prevCtr/prevPosition plus clicksChange/clicksChangePct/positionChange (keys present in only one period show zeros in the other). sort: clicks (default), impressions, ctr, position (lowest first), growth (largest click gain vs comparison first) or decline (largest loss first). For ctr/position use minImpressions >= 20 to avoid noise. / Páginas da propriedade, agregadas e ordenadas.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50, max 1000).
- `minImpressions` (integer): Drop keys with fewer impressions than this in both periods (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): Sort order (default clicks).
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `query_countries` (~613 tokens)

By country

Countries (ISO-3166-1 alpha-3, lowercase, e.g. bra) of one property over the period. Each row has clicks, impressions, ctr, position for the period and, with a comparison, prevClicks/prevImpressions/prevCtr/prevPosition plus clicksChange/clicksChangePct/positionChange (keys present in only one period show zeros in the other). sort: clicks (default), impressions, ctr, position (lowest first), growth (largest click gain vs comparison first) or decline (largest loss first). For ctr/position use minImpressions >= 20 to avoid noise. / Por país.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50, max 1000).
- `minImpressions` (integer): Drop keys with fewer impressions than this in both periods (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): Sort order (default clicks).
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `query_devices` (~604 tokens)

By device

Devices (MOBILE, DESKTOP, TABLET) of one property over the period. Each row has clicks, impressions, ctr, position for the period and, with a comparison, prevClicks/prevImpressions/prevCtr/prevPosition plus clicksChange/clicksChangePct/positionChange (keys present in only one period show zeros in the other). sort: clicks (default), impressions, ctr, position (lowest first), growth (largest click gain vs comparison first) or decline (largest loss first). For ctr/position use minImpressions >= 20 to avoid noise. / Por dispositivo.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50, max 1000).
- `minImpressions` (integer): Drop keys with fewer impressions than this in both periods (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): Sort order (default clicks).
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_timeseries` (~471 tokens)

Time series

Clicks, impressions, CTR and position per day, week (Monday as key) or month (yyyy-mm) over the period, with filters. Use for trend, seasonality and to locate the date of a drop. Days without data are omitted. / Série temporal por dia, semana ou mês.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): Grouping (default day).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_breakdown` (~514 tokens)

Brand split and position bands

Splits the period's traffic into branded/nonBranded (by the property's branded_terms) and into position bands (1-3, 4-10, 11-20, 21+) with impressions and clicks per band, plus queryCount. Position of each query = impression-weighted average over the period. Without branded terms on the property everything counts as nonBranded and the response says where to set them. Use for "how much of our traffic is brand" and "how much sits on page 2". / Marca × sem marca e faixas de posição.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_annotations` (~279 tokens)

Annotations

Events annotated in the period for the property and globally: deploys, content changes, manual notes and Google algorithm updates (category "algo_update"). Use to correlate drops or gains with causes. Default: last 90 days. / Anotações e algo updates do período.

Input parameters:

- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_ai_traffic` (~313 tokens)

Traffic from AI assistants (GA4)

Referral sessions from AI assistants (chatgpt.com, perplexity.ai, gemini, copilot, claude…) according to GA4 (dimension ai_source): per source (sessions, activeUsers, engagedSessions, keyEvents) for the period and the comparison, totals and daily series. site also accepts "all" for the whole account. A property without GA4 returns the error no_data with the panel URL where GA4 is connected (site="all" returns hasGa4=false and a setup note instead). Limitation: Search Console does not separate clicks from AI Overviews / AI Mode; only referral traffic is measurable. / Sessões vindas de IAs segundo o GA4.

Input parameters:

- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `site` (string, required): Property (as in other tools) or "all" for the whole account.
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_ctr_curve` (~512 tokens)

Own CTR curve vs benchmark

The property's real CTR by position (bucket = round(position), 1–20, impression-weighted) compared with the generic benchmark (31.7% at position 1 … 18.6% at 3 … 2.0% at 10). deltaPoints in percentage points (negative = below expected: likely title/meta problem); reliable = bucket with enough impressions. Use to find where titles underperform. / Curva de CTR própria × benchmark.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `minImpressions` (integer): Minimum impressions for a bucket to be reliable (default 500).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `find_decaying_content` (~650 tokens)

Decaying content

Pages (or queries) that lost clicks between a BASELINE and the RECENT period. Recent = days/startDate/endDate; baseline = compare (previous = window before, year = one year earlier) or explicit comparisonStartDate/comparisonEndDate (for slow decay compare with 6–12 months ago). Classifies the drop: severe > 50%, moderate 20–50%, mild < 20%; sorted by absolute clicks lost; pattern hints the diagnosis (position_slipped, impressions_collapsed, ctr_dropped, disappeared, mixed). Use for "which pages are dying" and refresh candidates. / Conteúdo em decaimento.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `comparisonEndDate` (string): Explicit baseline end.
- `comparisonStartDate` (string): Explicit baseline start (with comparisonEndDate; overrides compare).
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `dimension` (string): page (default) or query.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50).
- `minBaselineClicks` (integer): Ignore keys with fewer clicks than this in the baseline (default 5; small sites: 1–3).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `analyze_cannibalization` (~588 tokens)

Query cannibalization

Queries where 2+ pages of the property compete for the same search in the period. Per cluster: totals, Shannon entropy of impressions across pages (bits; higher = more even split = worse; level high >= 1.5, medium >= 1.0), normalized (0–1), winner (most clicks; tie: best position) and the contenders with clicks/impressions/ctr/position/impressionShare. Sorted by entropy and impressions. Protocol/host/hash variants of one URL are canonical hygiene, not cannibalization; brand + home + deep page is usually sitelinks. Use when asked which page should rank for a keyword. / Canibalização de queries.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Clusters (default 50).
- `minImpressions` (integer): Minimum cluster impressions (default 10; large sites 100).
- `minPages` (integer): Minimum pages per query (default 2).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `score_opportunities` (~555 tokens)

Opportunity score (CTR gap)

Queries between minPosition and maxPosition whose CTR is below the expected CTR for their position. expectedCtr comes from the property's own curve (ctrSource "own", when the bucket has volume) or from the benchmark; ctrGap = expected − ctr (fraction); lostClicks = impressions × gap; score 0–100 log-normalized by the largest lostClicks (level high >= 80, medium >= 60). Use for title/meta-description quick wins. / Oportunidades por CTR abaixo do esperado.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 25).
- `maxPosition` (number): Maximum position (default 30).
- `minImpressions` (integer): Minimum query impressions (default 20).
- `minPosition` (number): Minimum position (default 3).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `find_page_poaching_opportunities` (~593 tokens)

Striking distance (page poaching)

Queries just outside the top (default positions 4–20) with the estimated click gain if they reached the CTR of the target position (default 3 → 18.6% benchmark, or the property's own CTR at that position when it has volume: see ctrSource). estimatedGain = max(0, round(impressions × (targetCtr − ctr))). Sorted by impressions (default) or by gain. Use for "what is close to page one / top 3". / Queries perto do topo com ganho estimado.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 25).
- `maxPosition` (number): Maximum position (default 20).
- `minImpressions` (integer): Minimum query impressions (default 20).
- `minPosition` (number): Minimum position (default 4).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): Sort (default impressions).
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).
- `targetPosition` (integer): Target position whose CTR defines the gain (default 3).

### `get_ranking_changes` (~664 tokens)

Ranking changes between periods

Classifies each query (or page) of the property by what happened between the comparison period and the current one: new (appeared), lost (disappeared), improved (position better by >= minPositionChange), declined (worse) or stable. Rows carry clicks/impressions/ctr/position for both periods, positionChange (negative = improved) and clicksChange; summary counts every status plus clicks gained from new and lost keys. Sorted by impressions then by size of the move. Use for "what did we gain or lose in rankings", "which queries fell off", "new queries this month". / Queries ou páginas novas, perdidas, que subiram ou caíram entre dois períodos.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `dimension` (string): query (default) or page.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Rows (default 50).
- `minImpressions` (integer): Ignore keys with fewer impressions than this in both periods (default 10).
- `minPositionChange` (number): Positions a key must move to count as improved/declined (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).
- `status` (string): Only this status (default all = every status except stable).

### `get_position_distribution` (~558 tokens)

Position bands per day

How the property's queries spread across position bands 1-3, 4-10, 11-20 and 21+ for each day (or week) of the period: number of queries, clicks, impressions and impression share per band. Each query's position for a day is its impression-weighted average that day. Also returns the period aggregate and the share shift between the first and the last week (sharePoints, percentage points). Use for "are we moving from page 2 to page 1", "how much visibility sits beyond position 10", or to see when a band changed. / Faixas de posição por dia ou semana, com deslocamento entre a primeira e a última semana.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): day (default) or week (Monday as key).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_branded_performance` (~573 tokens)

Branded vs non-branded, daily

Daily series of branded and non-branded traffic (clicks, impressions, ctr, position per group, plus brandedClickShare) with totals for the period and the comparison, using the property's branded_terms. brandedTermsConfigured=0 means no terms are set and everything counts as non-branded (set them in the "Integrações" block of the property in the Organiq panel; the response carries the URL). Use to separate brand demand from SEO work, to check whether a drop was brand or non-brand, and to track brand share over time. / Marca × sem marca por dia, com totais e comparação.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): day (default) or week.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `breakdown_by_path` (~606 tokens)

By subdomain and folder

Groups the property's pages by host (subdomain) and by the first `depth` path segments (1–4), e.g. "example.com/blog/*": pages per group, clicks, impressions, ctr, position, clickShare, comparison (prevClicks, clicksChange, clicksChangePct, positionChange) and the top 3 pages of each group. Sorted by clicks. Use for "which section drives traffic", "is the blog growing", "how is the /pt/ folder doing" and to compare subdomains. / Tráfego por subdomínio e pasta (profundidade 1–4).

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `depth` (integer): Path depth (default 1: first folder).
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `limit` (integer): Groups (default 50).
- `minClicks` (integer): Hide groups with fewer clicks than this in both periods (default 0).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_query_performance` (~536 tokens)

One query over time

Daily performance of ONE search query on the property (optionally on one page). Returns totals for the period and the comparison with change, the daily (or weekly) series and the top counterparts (pages ranking for the query). Exact match (case-insensitive for queries); when nothing matches, the error lists up to 5 candidates containing the text. / Série de uma query exata.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `counterparts` (integer): Top pages to include (default 10).
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): Series grouping (default day).
- `page` (string): Optional exact page URL to restrict the query to one page.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string, required): The exact query text (case-insensitive). Required.
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_page_performance` (~564 tokens)

One page over time

Daily performance of ONE page (URL) of the property. Returns totals for the period and the comparison with change, the daily (or weekly) series and the top counterparts (queries bringing the page traffic). Exact match (case-insensitive for queries); when nothing matches, the error lists up to 5 candidates containing the text. / Série de uma página exata.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `counterparts` (integer): Top queries to include (default 10).
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): Series grouping (default day).
- `page` (string, required): The exact page URL as stored by Search Console (full URL, e.g. https://example.com/blog/post). Required.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_longtail_clusters` (~595 tokens)

Head / chunky middle / long tail

Splits the period's queries into head, chunky middle and long tail by word count (preset balanced: 1–2 / 3–4 / 5+ words; strict: 1 / 2–3 / 4+; loose: 1–3 / 4–5 / 6+), with queries, clicks, impressions, ctr, position, shares and top examples per tier, plus a Pareto view (share of clicks held by the top 10 % / 25 % / 50 % of queries). Use for "how dependent are we on a few head terms", "how much comes from long-tail", content-planning by intent length. / Cauda longa por nº de palavras e curva de Pareto.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `examples` (integer): Examples per tier (default 5).
- `minImpressions` (integer): Minimum impressions per query (default 1).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `preset` (string): Word-count thresholds (default balanced).
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `analyze_sampling_impact` (~382 tokens)

Hidden (anonymized) clicks

How much of the property's traffic Search Console hides from the query/page rows because of anonymization: exact totals per day (no dimensions) minus the sum of the query × page rows = hidden clicks/impressions, with hiddenShare (fraction), level (ok < 5 %, warn 5–15 %, high > 15 %), the worst day and an optional daily table. Only searchType applies (dimension filters do not make sense here). Use to explain why top-queries totals do not add up to the summary, and before trusting query-level shares on small sites. / Cliques escondidos pela anonimização do Search Console.

Input parameters:

- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `includeDaily` (boolean): Include the per-day table (default false).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `analyze_query_shapes` (~727 tokens)

Query shapes (incl. AI-style)

Classifies the period's queries into shapes and aggregates each: branded, question, comparison, transactional, local, longtail (5+ words), head (<= 2 words), other, with queries, clicks, impressions, ctr, position, shares, comparison (clicksChangePct, impressionSharePoints) and top example queries per shape. Also reports the "AI-style" split used by the Organiq dashboard (conversational marker or >= 5 words: the kind of query AI Overviews / AI Mode answer) — a proxy, since Search Console does not expose AI-feature data in the API. Shapes: branded = contains one of the property's branded terms; question = interrogative (how, what, why, como, o que, qual…); comparison = compares options (vs, best, melhor, diferença entre…); transactional = buying intent (price, buy, comprar, preço, promoção…); local = local intent (near me, perto de mim, address…); longtail = 5+ words without another marker; head = 2 words or fewer; other = 3–4 words without a marker. Use for intent mix, "how much of our demand is questions", GEO (generative engine) planning. / Formatos de query (perguntas, comparação, transacional, marca, longas "estilo IA") com shares e exemplos.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison: previous (default) = same-length window immediately before; year = same dates one year earlier; none. / Comparação.
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `examples` (integer): Example queries per shape (default 3).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_query_shape_trend` (~527 tokens)

Query shape share over time

Weekly share of impressions (or clicks) per query shape (branded, question, comparison, transactional, local, longtail, head, other) and of "AI-style" queries over the period (default 12 weeks), with sharePointsChange = last weeks minus first weeks in percentage points. Weeks are keyed by Monday; incomplete first/last weeks are listed in partialWeeks. Use to see whether questions / conversational queries are growing, i.e. demand shifting toward AI-style searches. / Tendência semanal da participação de cada formato de query, inclusive "estilo IA".

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `metric` (string): Share basis (default impressions).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `detect_anomalies` (~622 tokens)

Daily anomalies (weekday-robust)

Flags days in the period whose clicks (or impressions, ctr, position) deviate from what the same weekday did in the previous baselineWeeks weeks (default 8): expected = median of those weekdays, scale = scaled MAD, zScore = (value − expected) / scale; anomaly when |z| >= threshold (sensitivity low 4, medium 3, high 2.5). Robust to outliers in the baseline and to the weekly cycle (weekends are compared with weekends). Each anomaly has direction (drop/spike; for position, drop = visibility loss), severity, deviationPct and the baseline size. Use for "did anything unusual happen", to date a drop before looking at causes (get_annotations), or to check a release day. / Dias anômalos comparados com o mesmo dia da semana nas semanas anteriores.

Input parameters:

- `baselineWeeks` (integer): Weeks of same-weekday history used as baseline (default 8).
- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `metric` (string): Metric (default clicks).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `sensitivity` (string): low = only extreme, medium (default), high = more alerts.
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `detect_change_points` (~634 tokens)

Sustained level shifts (change points)

Finds the dates where the property's clicks (or impressions) moved to a new sustained level — a step up or down that holds for several weeks, as after a Google update, a migration or a content launch — using a robust CUSUM on the weekly (default) or daily series. Each point has date, direction, before/after averages (4 observations each), change, changePct and how many following observations stayed on the new level. Isolated spikes are not change points (see detect_anomalies). Default period 52 weeks. Use to date a lasting drop or gain and then correlate with get_annotations. / Degraus sustentados na série (semanal ou diária), com antes × depois.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): week (default; incomplete edge weeks dropped) or day.
- `limit` (integer): Most recent change points to return (default 10).
- `metric` (string): Metric (default clicks).
- `minChangePct` (number): Minimum |after − before| / before to report (default 0.15).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `sensitivity` (string): low = only large steps, medium (default), high = smaller steps.
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `forecast_traffic` (~757 tokens)

Traffic forecast

Projects the property's clicks (or impressions) for the next `horizon` weeks (default 12) or months (default 6) from the history in the period (default 364 days): aggregates the daily series, estimates a multiplicative seasonal index when >= 2 full cycles exist (otherwise 1.0, stated in seasonality), fits linear / logarithmic / exponential / power / polynomial trendlines and keeps the best adjusted R² (model=auto) or the one requested; forecast points carry baseline, low/high (±1.96 × residual sd, widening with the horizon), seasonalIndex and, with growthRate, a growth scenario (baseline × (1 + growthRate)); cvr + aov add revenue (= visits × cvr × aov). Returns an error when fewer than 8 full weeks / 6 full months exist. Use for "what should we expect next quarter", target setting and scenario planning; treat it as a trend extrapolation, not a promise. / Previsão semanal ou mensal com sazonalidade, trendline auto-selecionada, faixa e cenário de crescimento.

Input parameters:

- `aov` (number): Average order value for revenue (any currency).
- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `cvr` (number): Conversion rate as a fraction (0.02 = 2 %) for revenue.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `granularity` (string): week (default) or month.
- `growthRate` (number): Scenario multiplier as a fraction (0.1 = +10 % over baseline).
- `horizon` (integer): Periods ahead (default 12 weeks / 6 months; max 52 weeks or 24 months).
- `metric` (string): Metric (default clicks).
- `model` (string): Trendline (default auto = best adjusted R²).
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_core_web_vitals` (~335 tokens)

Core Web Vitals (CrUX)

Field Core Web Vitals of the property's origin (or a URL) from the Chrome UX Report history, weekly, per form factor (PHONE, DESKTOP): latest p75 of LCP, INP, CLS, FCP, TTFB with rating (good / needs_improvement / poor by Google's thresholds), share of good experiences, trend vs 4 weeks earlier, passesCoreWebVitals, alerts when a metric changed rating or worsened >= 20 %, and up to 26 weeks of history. CrUX only exists for origins with enough Chrome traffic; the response lists what is available. Use for "is the site fast enough for Google", regressions after a release, mobile vs desktop. / Core Web Vitals reais (CrUX) por semana e dispositivo, com tendência e alertas.

Input parameters:

- `formFactor` (string): Device (default: all available).
- `originOrUrl` (string): Origin or URL as stored (default: all targets of the property).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `weeks` (integer): Weeks of history to consider (default 40).

### `get_indexing_tracker` (~344 tokens)

Indexing health (URL inspections)

Indexing status of the property's inspected URLs (Search Console URL Inspection results stored by Organiq, plus the tracked_urls watch list): healthScore 0–100 (70 % indexed share + 30 % fresh-crawl share), indexed / not indexed counts, breakdown by coverageState and verdict, crawl freshness (fresh <= 30 days, aging, stale >= 120 days, never), alerts (deindexed since an earlier check, fetch errors, robots blocks, canonical mismatch, stale crawl, not indexed) and coverage over time by week of check. hasData=false means no inspection has been stored for this property yet (the inspection sync is not enabled for the account). The submissions field adds the last indexing request per URL (request_indexing: last submission time, state, cause, last inspection). Use for "are my pages indexed", "did Google drop a page", crawl staleness. / Saúde de indexação das URLs inspecionadas: nota 0–100, cobertura, frescor de crawl e alertas.

Input parameters:

- `alertLimit` (integer): Alerts to return (default 50).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…

### `list_url_inspections` (~289 tokens)

URL inspection results

Latest stored URL Inspection result per URL of the property: verdict, coverageState, indexingState, robotsState, pageFetchState, Google vs user canonical, lastCrawlTime, crawledAs, mobileVerdict, checkedAt, whether the URL is on the tracked list and lastSubmittedAt (last indexing request made with request_indexing, null if none). Filter by status (indexed / not_indexed) or by URL text. hasData=false when no inspection is stored yet. Use after get_indexing_tracker to see specific URLs, or to check one URL's state. / Resultado da inspeção de cada URL (indexada?, canonical, último crawl).

Input parameters:

- `limit` (integer): Rows (default 100).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `status` (string): Filter (default all).
- `urlContains` (string): Only URLs containing this text.

### `request_indexing` (~535 tokens)

Request indexing of URLs

Queues up to 100 URLs of one property for submission to search engines, by two routes: IndexNow (Bing, Yandex, Naver, Seznam, Yep; needs the IndexNow key set for the property) and Google through the Indexing API (optional per property). Google route (Indexing API) only sends pages with JobPosting or BroadcastEvent structured data, as Google requires; other URLs are checked at send time, not here: get_indexing_requests later shows them skipped, error starting google_not_eligible, and go through IndexNow when configured. Parameters: urls (absolute URLs of the property), action update (default) or delete, engines (indexnow and/or google; default: the configured routes). Returns queued (url + engine), skipped with a reason per URL (invalid_url, outside_property, duplicate_24h, daily_limit_indexnow, daily_limit_google, google_not_allowed_by_plan, google_not_configured, indexnow_not_configured) and creditsLeft ({indexnow, google}: URLs still allowed today on each route; null = no daily limit on that route). A submission is a request, not a confirmation: see get_indexing_requests and list_url_inspections. Writes only to Organiq (the request queue) and sends the URLs to the engines; never changes Search Console. Needs mcp:write. Errors: indexing_not_configured with the panel step; plan_limit only when no requested engine is allowed by the plan. A spent daily credit is not an error: the URLs come back in skipped (daily_limit_*). / Envia até 100 URLs para indexação (IndexNow e, opcional, Google Indexing API); grava só no Organiq e não altera o Search Console.

Input parameters:

- `action` (string): update (default): the URL was created or changed; delete: the URL was removed.
- `engines` (array): Routes to use (default: the ones configured for the property).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `urls` (array, required): Absolute URLs inside the property, 1–100.

### `get_indexing_requests` (~359 tokens)

Indexing requests

Lists the indexing requests made for the property (from request_indexing, the panel or the sitemap job), newest first: url, engine (indexnow / google), action, source (manual / sitemap / agent), status (queued, submitted, failed, skipped), queuedAt, submittedAt, httpStatus and error (the cause of a failed or skipped request; starts with google_not_eligible when the page has no JobPosting or BroadcastEvent structured data). Filter by status; days = how far back (default 7, max 365). Returns counts per status and per engine, plus the daily credit per route (indexnow and google: used, limit, left; null = no limit). Reads only Organiq data. A sent request is not a confirmation; the confirmed state comes from the inspection (get_indexing_tracker). Use after request_indexing to see what was sent or why a request failed. / Pedidos de indexação da propriedade, com status por motor e crédito do dia.

Input parameters:

- `days` (integer): Days back (default 7).
- `limit` (integer): Rows (default 100).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `status` (string): Only requests with this status.

### `list_sitemaps` (~226 tokens)

Sitemaps

Sitemaps known to Search Console for the property: path, lastSubmitted, lastDownloaded, isPending, errors, warnings and contents per type (web, image, video, news: submitted URL counts). Search Console no longer reports indexed counts per sitemap through the API, so `indexed` is usually 0 — use get_indexing_tracker for indexing. Use to confirm Google is fetching the sitemap, spot errors/warnings and count submitted URLs. / Sitemaps da propriedade com status de download, erros e URLs enviadas.

Input parameters:

- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…

### `get_bing_performance` (~383 tokens)

Bing Webmaster performance

Organic performance on Bing (Bing Webmaster Tools, weekly data) for the property: view=traffic gives weekly clicks/impressions with totals and change vs the previous same-length window; view=queries or view=pages gives the top keys with clicks, impressions, impression-weighted position, previous-period values and growth/decline sorting. Period is in whole weeks ending on the last synced Bing week (default 12 weeks). A property without Bing returns no_data with the panel URL where Bing is connected; hasBing in list_sites tells which properties have it. Use for "how do we do on Bing", Bing vs Google query overlap, Copilot-era visibility. / Bing: tráfego semanal, queries e páginas com comparação.

Input parameters:

- `compare` (string): previous (default) = the same number of weeks before; none.
- `contains` (string): queries/pages: only keys containing this text.
- `endWeek` (string): Last week_start (Monday-based date as stored) to include; default = latest synced.
- `limit` (integer): queries/pages rows (default 50).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `sort` (string): queries/pages sort (default clicks).
- `view` (string): traffic (default), queries or pages.
- `weeks` (integer): Weeks in the window (default 12).

### `get_genai_impressions` (~362 tokens)

Impressions in AI Overviews / AI Mode

Daily impressions of the property in Google's generative AI features (AI Overviews and AI Mode) from the Search Console "Generative AI features" report, imported into Organiq (this report is not in the Search Analytics API and has no clicks). kind = all (default), text or multimodal. Returns totals for the period and the comparison with change, the daily series and the import coverage (firstDate, lastDate, importedAt). hasData=false when nothing was imported for the property. Requires the GEO add-on (error plan_limit otherwise). Use for GEO: "how visible are we inside AI Overviews", trend after content changes, share vs classic impressions (compare with get_site_summary). / Impressões na Visão geral de IA e no Modo IA (relatório importado), com série diária e comparação.

Input parameters:

- `compare` (string): Comparison (default previous).
- `days` (integer): Window in days ending on the last imported date (default 28).
- `endDate` (string): Explicit range yyyy-mm-dd (default end = last imported date).
- `kind` (string): Search type of the report (default all).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string)

### `generate_seo_report` (~618 tokens)

SEO report (markdown)

One compact report for a property over the period (default 28 days, 7–180) with the comparison period: headline KPIs with change and year-over-year, top movers (queries and pages up/down), daily anomalies and sustained level shifts, Google updates and annotations, decaying pages, cannibalized queries, CTR quick wins, brand share, Core Web Vitals, indexing health, AI search (GA4 sessions from assistants, impressions in AI Overviews / AI Mode, AI-style query share), Bing, and up to three data-derived next actions. Parts without data (no GA4, no CrUX, no imports) or outside the plan are listed in skipped instead of failing. format=markdown (default) or json (the structured parts). Use for monthly client reports or a full status check in one call. / Relatório SEO completo em markdown (ou JSON) numa chamada.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `compare` (string): Comparison (default previous).
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `days` (integer): Window length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
- `device` (string): Device.
- `endDate` (string): End yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
- `format` (string): markdown (default) or json.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `rows` (integer): Rows per table (default 5).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `startDate` (string): Start yyyy-mm-dd. Default: endDate − (days − 1).

### `get_weekly_digest` (~485 tokens)

Weekly digest

Short weekly digest for a property: the last 7 synced days vs the 7 before (and year-over-year), top 3 queries/pages up and down, anomalies of the week, Google updates and annotations, quick wins, technical alerts (Core Web Vitals, indexing), AI search lines and three next actions. Computed live from the synced data; when the account's weekly report job has run, storedReport carries the saved report's KPIs and actions (the same the e-mail/Slack digest sent) and alerts lists the alerts raised in the week. endDate moves the week (default: last synced date). Use for "what changed this week", Monday stand-ups, a client's weekly update. / Resumo da semana com movers, anomalias, alertas e 3 ações.

Input parameters:

- `brand` (string): all (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument…
- `country` (string): Country as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
- `device` (string): Device.
- `endDate` (string): Last day of the week (default: last synced date).
- `format` (string): markdown (default) or json.
- `pageContains` (string): Only pages whose URL contains this text (case-insensitive), e.g. "/blog/".
- `query` (string): Only queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
- `searchType` (string): Search type (default web).
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…

### `list_ga4_properties` (~157 tokens)

GA4 properties of the Google account

Lists the Google Analytics 4 properties the connected Google account can see (Analytics Admin API accountSummaries.list): id (numeric, the value set_ga4_property takes), displayName and the GA4 account name, sorted by account. Needs an active Google connection in the Organiq account that granted analytics.readonly; otherwise no_data with reason scope_missing / no_connection / token_revoked and the step that fixes it. Use it before set_ga4_property to find the property id, or when the user does not know their GA4 property id. Guide: https://organiqgeo.com/connect/ga4. / Lista as propriedades GA4 da conta Google conectada, para escolher o id em set_ga4_property.

### `set_ga4_property` (~335 tokens)

Link a GA4 property

Links a Google Analytics 4 property to one Search Console property in Organiq (the same setting as the panel's "Integrações" block): ga4PropertyId is the numeric id from list_ga4_properties ("123456789" or "properties/123456789"); null unlinks. Returns the property settings. When the value changes, the GA4 data already synced from the previous property is deleted and the next daily sync rebuilds the history from the new one (Search Console data is untouched); get_ai_traffic answers after that sync. Needs the write scope (mcp:write). Use it when check_connection lists no_ga4 or the user asks to connect GA4. Guide: https://organiqgeo.com/connect/ga4. / Liga a propriedade GA4 à propriedade do Search Console; trocar apaga o GA4 já sincronizado e o sync refaz.

Input parameters:

- `ga4PropertyId` (required): Numeric GA4 property id ("123456789" or "properties/123456789"), from list_ga4_properties; null unlinks.
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…

### `set_bing_site` (~343 tokens)

Set the Bing Webmaster site

Sets the site URL registered in Bing Webmaster Tools for one Search Console property in Organiq (same rule as the panel): https, no query/fragment, and on the property's own domain (an sc-domain property accepts the domain and its subdomains; a URL-prefix property requires the same host under its path); null clears it. Returns the property settings and whether the account's Bing API key is set (set_bing_key). When the value changes, the Bing data already synced is deleted and the next daily sync rebuilds it; get_bing_performance answers after a sync with both the site and the key in place. Needs the write scope (mcp:write). Use it when check_connection lists no_bing or the user asks to connect Bing. Guide: https://organiqgeo.com/connect/bing. / Grava a URL do site no Bing Webmaster Tools para a propriedade; precisa também da chave da conta (set_bing_key).

Input parameters:

- `bingSiteUrl` (required): Site URL as registered in Bing Webmaster Tools, e.g. "https://www.example.com/"; null clears it.
- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…

### `set_bing_key` (~312 tokens)

Store the Bing Webmaster API key

Tests the Bing Webmaster Tools API key against Bing (GetUserSites) and, only if Bing accepts it, stores it for the Organiq account (one key per account; it serves every property with a Bing site set by set_bing_site). The key is generated by the user in Bing Webmaster Tools under Settings → API access ("Configurações → Acesso à API") and pasted in the chat; it is stored encrypted, never returned by any tool and not logged. Format: 16–128 letters, digits, "-" or "_". Bing refuses the key → bing_key_invalid and the previously stored key, if any, stays; Bing down or slow → upstream_unavailable and nothing is stored (retry in a few minutes). Only an owner or admin of the account can store it (insufficient_scope otherwise). Returns { set, setAt, bingSites }: bingSites are the site URLs Bing lists for the key, to check the value given to set_bing_site. Needs the write scope (mcp:write). Use it after set_bing_site, or when get_bing_performance / check_connection report the key missing. Guide: https://organiqgeo.com/connect/bing. / Testa a chave da API do Bing no próprio Bing e só grava, cifrada, se ele aceitar; chave recusada não substitui a anterior.

Input parameters:

- `key` (string, required): API key generated in Bing Webmaster Tools (Settings → API access) and pasted by the user.

### `set_branded_terms` (~301 tokens)

Set the branded terms

Replaces the branded terms of one Search Console property in Organiq (the list used by the brand filter, get_breakdown, get_branded_performance and the branded shape of analyze_query_shapes): brand and product names as people type them, up to 20 terms of 2–40 characters, lower-cased and de-duplicated; a query counts as branded when it contains one of them. The whole list is replaced (send the full list; [] clears). Takes effect immediately on the next read (no sync needed). Needs the write scope (mcp:write). Use it when check_connection lists no_branded_terms or brand=branded was rejected. / Substitui os termos de marca da propriedade (até 20); vale na hora.

Input parameters:

- `site` (string, required): Property: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). lis…
- `terms` (array, required): Full list of branded terms (max 20, each 2–40 characters); [] clears.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo#diagnostics

## Score history

- 2026-11-05: 83
- 2026-11-04: 83
- 2026-11-03: 82
- 2026-11-02: 82
- 2026-11-01: 81
- 2026-10-31: 81
- 2026-10-30: 80

## Common questions

### What is the Organiq GEO MCP server?

Organiq GEO is an MCP server listed in the public MCP registry as com.organiqgeo/organiq. Search Console and GA4 analysis (read-only Google): queries, decay, cannibalization, AI traffic. This page covers its hosted endpoint (https://organiqgeo.com/mcp).

### Is the Organiq GEO MCP server safe to use?

Organiq GEO scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Organiq GEO MCP server expose?

Organiq GEO exposes 47 tools: get_capabilities, get_ctr_benchmark, check_connection, check_ai_access, list_sites, and 42 more. Their descriptions and schemas cost roughly 21,472 tokens of context every time the server is loaded.

### Does the Organiq GEO MCP server require authentication?

Yes. Organiq GEO asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Organiq GEO MCP server still maintained?

Organiq GEO is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://organiqgeo.com/mcp
- Repository: https://github.com/organiqgeo/organiq-plugin
- Website: https://organiqgeo.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo.json
- HTML version of this page: https://verifymcp.io/servers/com-organiqgeo-organiq/organiqgeo
