Skip to main content
Glama

Search catalog

search_catalog
Read-onlyIdempotent

Search one store's catalog of extensions fetched so far, for market and niche research: store "chrome" (default) or "firefox", one per call -- Chrome users are a rounded weekly count, Firefox's an exact daily average, so the two are never mixed. listed and known in each answer show how much of that store the catalog covers. rank is the position by users within the store; ties share a rank (rank_tied = others at the same count); recomputed weekly on rank_on; rank_change is the move since the week before, positive = up.

Filter by name words (match "all" or "any"; case and punctuation are ignored, and an exact name comes first unless you sort), by one category of that store (a slug such as "productivity/developer" or "privacy-security"; an unknown one is refused with the store's list) and by inclusive ranges on users, rating, reviews, language count and description length; sort by any of those or by last update. This never fetches the store. users, rating and reviews are null when the store shows no number, which is not zero. Each row says whether it is one of yours or a competitor you track; pass its store and id to add_competitor to start tracking it. For one extension's full listing, call get_listing.

Allows 60 calls a minute per account.

Works without an account too.

Input Schema

NameRequiredDescriptionDefault
dirNoDefaults to desc. Nulls always last.
pageNoDefaults to 1.
sortNoDefaults to users, with an exact name match first when query is given.
limitNoDefaults to 25.
matchNoDefaults to all.
queryNoName words, at most 8 words.
storeNoDefaults to chrome.
categoryNoOne category slug of the chosen store, as rows return it.
langs_maxNo
langs_minNo
users_maxNo
users_minNo
rating_maxNo
rating_minNo
reviews_maxNo
reviews_minNo
screenshots_maxNo
screenshots_minNo
description_length_maxNo
description_length_minNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Title keywords, at most 8 words."New value: +"Name words, at most 8 words."
    • changedInput schema / properties / sort / description
      Previous value: -"Defaults to users."New value: +"Defaults to users, with an exact name match first when query is given."
  2. Changed5 schema fields changed
    • addedInput schema / properties / category
      Added value: +{
      +  "description": "One category slug of the chosen store, as rows return it.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / screenshots_max
      Added value: +{
      +  "maximum": 2147483647,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / screenshots_min
      Added value: +{
      +  "maximum": 2147483647,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "users",
      -  "rating",
      -  "reviews",
      -  "langs",
      -  "description_length",
      -  "updated"
      -]New value: +[
      +  "users",
      +  "rating",
      +  "reviews",
      +  "langs",
      +  "description_length",
      +  "screenshots",
      +  "updated",
      +  "added"
      +]
    • addedInput schema / properties / store
      Added value: +{
      +  "description": "Defaults to chrome.",
      +  "enum": [
      +    "chrome",
      +    "firefox"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), and the description adds material context beyond them: 60 calls/minute per account, works without an account, nulls are not zeros, the catalog only covers what has been fetched, and the ranking is recomputed weekly with rank_change defined. This is exactly the operational context an agent cannot infer from schema or 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?

Purpose, store choice, and the get_listing alternative are front-loaded, and nearly every sentence carries operational value. The rank/rank_tied/rank_change paragraph is dense and slightly over-detailed relative to selection needs, but it is not padding.

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?

Despite 20 parameters and no output schema, the description explains the row fields the agent will see (listed, known, rank, rank_tied, rank_on, rank_change, owner-vs-competitor flag), which substitutes for a return-value schema. Combined with the rate limit and no-account note, an agent has enough to call it correctly on the first try.

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?

With 20 params and only 40% schema description coverage, the description carries real weight: it explains store semantics (weekly rounded Chrome counts vs exact Firefox averages, never mixed), query word matching with all/any and punctuation/case handling, category slug behavior including rejection with a valid list, and inclusive ranges. It omits the screenshot range params and 'added'/'screenshots' sort values, which appear only in the schema enum.

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 and resource ('Search one store's catalog of extensions fetched so far'), states the scope ('one store', 'fetched so far'), and names the use case (market and niche research). The agent can immediately distinguish it from get_listing (full listing) and list_extensions (tracked set).

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?

Explicitly routes to siblings: 'For one extension's full listing, call get_listing' and 'pass its store and id to add_competitor to start tracking it.' Also clarifies the tool never fetches the store, so the agent knows it operates on already-collected data. It stops short of contrasting with list_extensions, which is the main remaining ambiguity.

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