Skip to main content
Glama

List compared stores

list_stores
Read-only

Return the stores getcheapgames compares, official stores and key marketplaces, with each one's coverage in the market's currency. Use it to say which stores are covered or which most often has the lowest price; for one game's price at each store use get_game_offers. country sets the currency the counts are taken in: timesCheapest is how many of the ofGamesCompared games a store is cheapest for right now, and a store with nothing priced in that currency has null counts, not zero. Also returns how offers are ranked and the site's totals of games and offers tracked.

Input Schema

NameRequiredDescriptionDefault
countryNoTwo-letter market code, any case, e.g. de, gb, us, br or pl (40 markets). It decides the currency prices come back in, which keys count as region-locked, and the market every link opens in. Omitted or unsupported codes fall back to ie (Ireland, euro).

Output Schema

NameRequiredDescriptionDefault
storesYes
currencyNo
gamesTrackedNo
offersTrackedNo
rankingMethodNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"Two-letter market code, e.g. de, gb, us, br. Decides the currency, which keys count as region-locked and the market every link points into. Defaults to ie (euro)."New value: +"Two-letter market code, any case, e.g. de, gb, us, br or pl (40 markets). It decides the currency prices come back in, which keys count as region-locked, and the market every link opens in. Omitted or unsupported codes fall back to ie (Ireland, euro)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "currency": {
      +      "type": "string"
      +    },
      +    "gamesTracked": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "offersTracked": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "rankingMethod": {
      +      "type": "string"
      +    },
      +    "stores": {
      +      "items": {
      +        "properties": {
      +          "cheapestCents": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "domain": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "everFetched": {
      +            "type": "boolean"
      +          },
      +          "lastCheckOk": {
      +            "type": "boolean"
      +          },
      +          "lastCheckedAt": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "ofGamesCompared": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "offersTracked": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "pricedInThisCurrency": {
      +            "type": "boolean"
      +          },
      +          "timesCheapest": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "stores"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint/non-destructive, so safety is covered. The description adds real behavioral context beyond that: stores with nothing priced in the chosen currency return null counts, not zero, and the response includes ranking methodology and site totals. That null-vs-zero caveat is exactly the kind of non-obvious trait that prevents misreading results.

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 the parameter's effect. Dense but every sentence carries weight. Slightly heavy on return-field explanation (timesCheapest, ofGamesCompared) that the output schema could carry, which keeps it from a 5.

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 one-optional-param read tool with annotations and an output schema, the definition is essentially complete: purpose, usage, alternative, and the null-count gotcha are all present. The explanation of ranking and totals is arguably redundant with the output schema but harmless.

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. The description adds meaning beyond the schema by explaining what `country` affects in the output — the currency the counts are taken in — and defines timesCheapest/ofGamesCompared, which the schema does not. That is genuine added value on top of a fully documented parameter.

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?

States a specific verb (Return) and resource (the stores getcheapgames compares, official stores and key marketplaces), plus the scope (coverage in the market's currency). It explicitly names the sibling it is not — get_game_offers — so an agent can distinguish them without opening a 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?

Gives explicit when-to-use cases ('which stores are covered or which most often has the lowest price') and routes the alternative case to get_game_offers ('for one game's price at each store'). Both the selection condition and the alternative are stated outright.

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.