Skip to main content
Glama

List the AI search visibility opportunities worth working on

visibility_list_opportunities
Read-onlyIdempotent

Returns the ranked work queue Hi, Moose builds from a project's stored AI search visibility results: the same rows as the Opportunities tab in the app. Each row names the exact gap (which AI systems, which prompt, which page or site, which competitors or claim), the one-sentence next step, the priority with its reasons, how consistently the gap held across runs, the effort, the status the team set in Hi, Moose, and an opportunity id. Five kinds of row: create-coverage (no page of yours answers a prompt competitors win), improve-page (a page of yours is cited or is the closest match but the brand is left out, ranked behind or cited without being named), earn-inclusion (a third-party page the AI systems cite names competitors but not the brand), correct-description (answers repeat a claim about the brand that needs checking) and investigate-change (the brand was named or cited before and is not any more). Reads stored results only, over the last lookbackDays (default 7) compared with the window before it; it does not run new checks. Call it again with opportunityId to get the full evidence for one row: every prompt and AI system with its state and answer id, competitors, pages cited instead, your page, flagged answers and what changed. Rows cover the tracked prompts on the tracked engines only; report the window and sample sizes plainly and never claim causation. Takes a few seconds to a minute.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many rows to return, best first. Default 10.
actionNoOptional: only rows of this kind.
projectYesThe Hi, Moose project, by its name as shown by list_projects. The projectId is also accepted.
priorityNoOptional: only rows with this priority.
lookbackDaysNoHow many days of stored results to read. Default 7, the same window as the Opportunities tab.
includeClosedNoOptional: also return rows the team marked done, dismissed or snoozed in Hi, Moose. Default false.
opportunityIdNoOptional: the opportunity id from an earlier result. Returns the full evidence for that one row instead of the list.

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 cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavioral facts: reads only stored results, compares the last lookbackDays window against the prior window, covers tracked prompts/engines only, and takes a few seconds to a minute. It also surfaces reporting constraints ('report the window and sample sizes plainly and never claim causation') that an agent could not derive from any structured field.

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?

Purpose and the five row kinds are front-loaded, and each block (what it returns, what it reads, the drill-down, the coverage caveats) earns its place. It is long and dense — the row-kind glosses and the reporting caveats could be tighter — but there is little pure filler for a tool this rich.

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 no output schema, the description carries the full burden of describing the return shape, and it does: it names every field family per row (gap identity, next step, priority with reasons, consistency, effort, status, opportunity id) plus the richer evidence payload from the opportunityId call. Nothing an agent needs to call this correctly or interpret the result 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 description coverage is 100%, so the schema carries the baseline; the description still adds value by explaining what each action enum value actually means (create-coverage, improve-page, earn-inclusion, correct-description, investigate-change) and by clarifying that opportunityId switches the tool from list mode to single-row evidence mode — a mode change the schema only hints at.

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?

Opening sentence gives a specific verb and resource ('returns the ranked work queue ... from stored AI search visibility results') and anchors it to a concrete UI artifact (the Opportunities tab). It then enumerates the five row kinds, which lets an agent distinguish this from visibility_list_results or visibility_get_summary without opening any schema.

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?

Clear about the operating mode — 'reads stored results only ... it does not run new checks' — and gives an explicit follow-up path: 'Call it again with opportunityId to get the full evidence for one row.' What's missing is naming of alternatives; it never says to use visibility_check_topic when fresh checks are needed or visibility_get_summary for aggregates, so the agent must infer that routing.

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