Skip to main content
Glama

seo_360

Read-onlyIdempotent

SEO 360 | the caller's OWN deterministic Google Search Console ACTION report, computed server-side from their connected GSC data (the exact numbers the user sees in the app | nothing re-derived, nothing estimated). The unit is the (query, page) pair and EVERY row ends in a concrete action, so this is the tool to call when a user asks "what should I write next", "which page should I fix first", "where am I losing clicks", "how are my rankings developing", "which pages are decaying", "how are my Core Web Vitals", "what technical SEO issues does my site have". Sections: page2_gaps (position 8-20 pairs ranked by potential click gain toward the top 3 | the core write-or-improve list), ctr_underperformers (ranks top-10 but the snippet loses the click | title/description work), orphan_demand (queries with demand whose best page is not about them | the page is missing, write it), cannibalization (one query split across pages | consolidate or differentiate), trends (click winners/losers AND position winners/losers vs the previous window, honestly flagged when the previous window is incomplete), rank_tracking (position series of the top + pinned queries with current vs 7d/28d deltas, ranking distribution Top3/4-10/11-20/21+, share-of-voice index, brand vs generic split), decay (the refresh queue: pages losing clicks across consecutive windows, ranked by lost clicks, with an optional EUR translation from the user's own click-value setting), vitals (Core Web Vitals p75 field data from the Chrome UX Report for the top pages, pass/fail per LCP/INP/CLS), audit (bounded own-site crawl snapshot: broken links, redirect chains, title/description issues, noindex/canonical conflicts, orphan pages, new-vs-fixed diff, internal-link opportunities), health (data coverage, staleness, which CTR-benchmark source applies). The CTR benchmark is the median of the caller's OWN data per position bucket, with a documented default curve as fallback per thin bucket. Deeper than audience_360 (which answers "who comes from where"): this one prescribes the next SEO action. Requires the caller's own autario account (API key or OAuth) with a Search Console connection | see get_app_context("seo-360").

Input Schema

NameRequiredDescriptionDefault
daysNoAnalysis window in days (7-90, default 28), anchored at the newest day of the caller's data. The trend comparison uses the same-length window before it.
brandNoThe brand (connector grouping) id to report on, as a uuid. Omitted means the brand selected in the autario app (the account's stored brand choice), so you see what the user sees on screen; with no brand selected, all of the account's brands. A brand that is not yours answers an error, never another brand's numbers.
formatNoOutput wire format for this MCP call. Default 'toon' (Token-Oriented Notation, fewest tokens, best for tabular rows). 'compact' = minified JSON. 'json' = pretty JSON for readability. The REST API always returns JSON regardless.
sectionsNoWhich report sections to return. Default ["page2_gaps","health"]. Request only what the question needs (token efficiency); call again for more.
instancesNoOptional comma-separated connector instance ids, to narrow the report to some of the connections inside the selected brand (for example one of two Search Console properties). Omitted means all of them. An id that is not yours, or not in that brand, answers an error rather than a quietly shorter report. The ids are the instance ids get_app_context returns for this app.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / brand
      Added value: +{
      +  "description": "The brand (connector grouping) id to report on, as a uuid. Omitted means the brand selected in the autario app (the account's stored brand choice), so you see what the user sees on screen; with no brand selected, all of the account's brands. A brand that is not yours answers an error, never another brand's numbers.",
      +  "type": "string"
      +}
    • addedInput schema / properties / instances
      Added value: +{
      +  "description": "Optional comma-separated connector instance ids, to narrow the report to some of the connections inside the selected brand (for example one of two Search Console properties). Omitted means all of them. An id that is not yours, or not in that brand, answers an error rather than a quietly shorter report. The ids are the instance ids get_app_context returns for this app.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / sections / items / enum
      Previous value: -[
      -  "page2_gaps",
      -  "ctr_underperformers",
      -  "orphan_demand",
      -  "cannibalization",
      -  "trends",
      -  "health"
      -]New value: +[
      +  "page2_gaps",
      +  "ctr_underperformers",
      +  "orphan_demand",
      +  "cannibalization",
      +  "trends",
      +  "rank_tracking",
      +  "decay",
      +  "vitals",
      +  "audit",
      +  "health"
      +]
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

With annotations covering the safety profile (readOnly, idempotent, non-destructive), the description still adds rich behavior: results are computed server-side and deterministic, require the caller's own autario account with a GSC connection, other-owner brands 'answer an error, never another brand's numbers', trends are 'honestly flagged when the previous window is incomplete', and the CTR benchmark is the median of the caller's own data with a documented fallback curve.

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?

Content is front-loaded (what the tool is, then the section inventory, then auth) and every clause is functional by pipe-delimited segment. It is nonetheless a very long single-paragraph wall of text that is harder to scan than a short list would be, which costs it the top score.

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

Completeness5/5

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

For a 5-parameter, 10-section tool with no output schema, the description is complete: it defines the unit of analysis, what each section returns, the benchmark methodology, auth/prerequisite requirements, and error behavior for foreign brands or instances. An agent has everything needed to invoke it correctly.

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 meaningfully interprets the sections enum by explaining what each of the ten sections actually returns (e.g. decay is 'the refresh queue: pages losing clicks across consecutive windows, ranked by lost clicks'). That is real semantics beyond the bare enum names, though days/brand/instances are largely left to the schema.

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?

The description states a precise verb+resource: a deterministic, server-computed Google Search Console ACTION report with the (query, page) pair as its unit. It explicitly distinguishes itself from the sibling audience_360 ('which answers who comes from where': this one prescribes the next SEO action). An agent can route to it without opening the schema.

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

Usage Guidelines5/5

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

It enumerates concrete user questions that select this tool ('what should I write next', 'where am I losing clicks', 'which pages are decaying') and names the alternative (audience_360) with the condition that separates them. The sections param guidance ('request only what the question needs; call again for more') adds explicit invocation strategy.

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.

Resources