Skip to main content
Glama

ExtensionDash

search_store

Search a store the way a shopper would, and read the results.

This is how you see a real SERP: who ranks for a term, in what order, with the titles and taglines they rank with. Results are not limited to extensions this account tracks — any competitor is visible — and, signed in, any result that IS one of yours carries its extension_id, so "where am I, and who is above me" is one call.

locale is a real ranking axis, not a translation of the page. The same term returns a different order, and partly different extensions, under hl=de than under hl=en. Search the market you care about.

Signed in, any row you already track as a competitor carries competitor_of, the ids of the extensions watching it, so you can read a page and see at a glance who is already on a roster and who is new.

Results are cached for a day and fetched in the background. A cold search returns status "pending": call again with the same arguments until it reads "ready". Rows are deliberately thin — call get_store_listing for a description, supported languages, or install counts. To rank rivals rather than read one page, use list_competitors with include_observed: it scores everyone already seen across every term you track, from recorded history, with no fetch at all.

Without an account this answers from cache only: a term nobody has fetched yet returns status "sign_in_required", and calling again will not change that.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoDefaults to 1.
termYese.g. "ad blocker". Squished and lowercased.
storeYes
localeNoStore language: "en", "de", "ru". Defaults to "en". Changes the results, not just the wording.
max_ageNoAccept a cached answer up to this many seconds old. Defaults to a day; never refetches more than once every 15 minutes.
page_sizeNoDefaults to 20.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the burden is on the description—and it delivers real behavioral disclosures: results are cached for a day, fetched in the background, a cold search returns status 'pending' requiring repeated polling, signed-out returns 'sign_in_required', and rows are deliberately thin. It doesn't describe auth requirements in detail (what constitutes 'signed in') or output field structure, but the status-code and caching contract is the critical part and is stated.

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

Conciseness3/5

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

The content is front-loaded with the SERP framing, but the prose is somewhat rambling—several sentences about competitor_of, locale, caching, and sign-in state intermix. Most of it earns its place, but the 'Signed in, any result that IS one of yours carries its extension_id' and 'competitor_of' passages could be tightened. It's longer than needed for the core contract.

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

Completeness4/5

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

For a 6-param search tool with no output schema, the description covers the important unknowns: caching behavior, async status handling, auth-dependent behavior, and what the rows contain (thin, with extension_id/competitor_of markers). It doesn't fully specify what the SERP response shape looks like, but it names the status states and the lightweight row contract, which is sufficient to call 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 83%, so the schema already documents most parameters (term squishing, max_age caching semantics, defaults). The description adds real meaning for 'locale' by explaining it's a 'real ranking axis, not a translation of the page' with concrete hl=de/hl=en examples—value beyond the schema. 'term' and 'page' get little added context, but the locale explanation compensates.

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 names a specific verb and resource ('Search a store... read the results') and immediately frames it as 'how you see a real SERP: who ranks for a term, in what order, with the titles and taglines they rank with.' It distinguishes itself from the sibling 'get_keyword_serp' by scoping to a store-level SERP with competitor visibility, and it explicitly routes page-reading to 'get_store_listing'.

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?

It tells you when to use this versus alternatives: 'To rank rivals rather than read one page, use list_competitors with include_observed', and it points to 'get_store_listing' for richer per-page data. It also covers the signed-out branch ('Without an account this answers from cache only'). No explicit when-not-to-use clause, but the routing guidance is clear and actionable.

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