Skip to main content
Glama

MisarSEO MCP Server

get_search_console_performance

Read-onlyIdempotent

Query the connected Search Console property's Search Analytics: clicks, impressions, CTR, and average position by query/page/country/device/date. First-party data — use it for what already ranks, near-ranking queries, and pages with real demand. ctr is a 0-1 fraction; position is a 1-based average; dates are Pacific Time; the last ~3 days may be incomplete. Read-only and FREE (no credits) — Search Console is first-party data and meters nothing. It does spend Google's per-property request quota. Google omits rows it will not disclose (anonymised queries) and returns at most rowLimit of the rest, so what it withholds is not measured rather than absent: zero rows is not zero demand, and a total summed from these rows is a floor, never the property's real total. When hasMore is true you have seen only part of the match set — page with startRow before reporting any sum or count as complete.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoSearch type (default web).
endDateNoExplicit end (YYYY-MM-DD, Pacific Time). Use with startDate.
filtersNoAND-combined filters. To get the queries for one page: [{dimension:'page',operator:'equals',expression:'https://example.com/post'}] with dimensions ['query'].
rowLimitNoRows per call (default 1000, max 1000). GSC sorts by clicks desc and can't filter by position — filter 'striking distance' positions client-side, and paginate with startRow when hasMore is true.
startRowNoPagination offset.
dataStateNo'all' (default) includes fresh/incomplete recent data.
dateRangeNoConvenience window (default last_28_days). End is set ~3 days back for GSC data lag. Ignored if startDate+endDate are given. Max lookback is 16 months.
projectIdYesRequired. The MisarSEO project ID to scope this call to. Get one from list_projects.
startDateNoExplicit start (YYYY-MM-DD, Pacific Time). Use with endDate.
dimensionsNoGroup rows by these dimensions. Default ['query']. Use ['page'] for top pages, ['query','page'] to map queries to pages / spot cannibalization, ['date'] for a time series.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial context: it is FREE (no credits) but consumes Google's per-property quota, Google withholds anonymised rows so sums are a floor not a total, dates are Pacific Time, the last ~3 days may be incomplete, and hasMore means the result is truncated. This is exactly the behavioral burden the annotations cannot carry.

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

Conciseness4/5

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

Front-loaded with what the tool returns before the operational caveats, and every sentence carries weight (fraction units, quota cost, anonymisation floor, pagination). It is dense but slightly long; no fluff sentences, though the caveats could be tightened marginally.

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

Completeness5/5

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

With 10 parameters, no output schema, and complex semantics, the description covers data units, quota cost, incompleteness windows, anonymisation truncation, and pagination completeness — everything an agent needs to call and correctly interpret the result. Nothing materially important is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds interpretation semantics the schema lacks: ctr is a 0-1 fraction, position is a 1-based average, and pagination must use startRow when hasMore is true. It clarifies how outputs relate to the filter/pagination parameters, going beyond raw schema documentation.

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

Purpose5/5

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

States a specific verb (Query) and resource (Search Console Search Analytics) and enumerates the metrics (clicks, impressions, CTR, average position) and dimensions (query/page/country/device/date). This distinguishes it from siblings like get_search_console_coverage, get_search_console_hourly_performance, and get_gsc_ctr_by_position, which are narrower views.

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

Usage Guidelines4/5

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

Gives clear usage context: 'use it for what already ranks, near-ranking queries, and pages with real demand,' and the schema guidance reinforces when to filter by page vs query. It never explicitly names when NOT to use it versus the narrower GSC siblings, so it falls short of full when/when-not/alternatives guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.