Skip to main content
Glama

SEO metrics

seo_metrics
Read-only

Answer questions about search visibility and search demand — keywords, rankings, links, domains, and how interest in a subject moves over time and across a country.

Use when the question is about how a site or a market performs in search rather than about what a page says: which keywords a domain ranks for, which pages earn its traffic, who competes with it, what links to it, how a keyword's demand and difficulty compare, whether interest in a subject is rising or falling, and which of a country's regions search for it most.

Examples:

  • "keywords ahrefs.com ranks in the top 3 for, with real volume"

  • "which pages of this site bring the most organic traffic"

  • "who competes with this domain and how big are they"

  • "keyword ideas around link building that are not brutally competitive"

Ask in plain language. Do not write field names, operators or query syntax — the request is composed from your question, and what came back is described in the answer so you can check it matched what you meant.

Not for: what a specific page says (use advanced_web_fetch), or what people are posting right now (use advanced_web_search).

Results are stored as citable Data records — a large report comes back as a summary plus a line index, so read the parts you need with read_collected_records or search across them with grep_collected_records. Every relevant result carries mdOrHtmlDownloadUrl — a ready-to-use link that downloads that record as Markdown, no key attached, so it can be passed on as-is. Swap its ?type=md for ?type=html and the same link hands back the page's original HTML exactly as the site served it, markup and all — what an SEO reader needs and what Markdown drops; web-page fetches only.

If status: "running" is returned, poll get_task_results({ taskIds }).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestsYesOne or more questions. Each pairs a question with the sources to ask it of; requests and sources run in parallel.
isResearchNoDefault true. True means this call is part of an investigation: you will come back to what it collects, weigh it against other sources and cite it, so it is worth preparing the material for repeated use. Set false for a one-off question you are waiting on right now and will answer in this same turn — that trades the preparation for the fastest reply the source allows.
maxWaitSecNoHow long to wait before returning `status: "running"` with a `taskId` to poll via `get_task_results`. Defaults to 50 seconds, which is also the server's ceiling — a larger value is clamped down to it, not honoured. Results stream as they are produced: each completed unit of work appears in `streaming.chunks[]` as soon as it is ready.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true; the description adds substantial behavior beyond that: async semantics (status:'running' → poll get_task_results), streaming chunks, results persisted as citable Data records with a line index, and the mdOrHtmlDownloadUrl ?type=md→?type=html swap. It also explains clamping of maxWaitSec rather than honoring oversized values. No contradiction with annotations.

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 purpose, then usage, then operational details in a logical order. It is long, but the tool is complex and most paragraphs earn their place; the main cost is mild redundancy — the prose inventory of question types partly repeats the five examples and the sources enum in the schema.

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?

Complex tool (nested request objects, five source enums, async polling, streaming, download links) with no output schema, so the description must explain returns — and it does: summary plus line index, Data records with mdOrHtmlDownloadUrl, streaming.chunks[], and the running-status path. Coverage of the trends source's three limits appears both in schema and description. Nothing an agent needs to call or follow up on this tool 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% with richly described parameters, so the baseline is 3. The description adds value beyond the schema: it instructs the agent to speak in plain language and avoid syntax (directly shaping query/options), explains that requests and sources run in parallel, and clarifies the isResearch trade-off in operational terms. A modest but real increment over the schema's own descriptions.

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?

Opens with a specific verb+resource — 'Answer questions about search visibility and search demand' — and enumerates the exact data kinds (keywords, rankings, links, domains, trends). It explicitly names the sibling tools it is not (advanced_web_fetch for page content, advanced_web_search for current posts), so an agent can distinguish it from all six siblings without opening schemas.

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?

Gives an explicit 'Use when' test ('how a site or a market performs in search rather than about what a page says'), a 'Not for' section naming the alternatives, concrete example queries, and even routes follow-up behavior to read_collected_records/grep_collected_records. Nothing about when to pick this tool is left to inference.

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