Skip to main content
Glama

Find game deals

get_deals
Read-onlyIdempotent

Find game deals, discounts, sales, free games and store offers. game matches game titles, not slugs; store matches store names. maxPrice compares prices in each offer's own currency, without conversion. Returns up to three deals per section; pass section for up to 25 of one section. The gamesGgStore section is the GAMES.GG Store, and its urls are GAMES.GG product pages. Every other deal url identifies the retailer; hubUrl is the GAMES.GG deals page. A localized hubUrl does not mean the deal data is translated. Results are limited by the account's access. Always pass the user's language in locale; pt maps to pt-BR.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_deals"
  }
}

Input Schema

NameRequiredDescriptionDefault
gameNoGame title search; the deals feed has no game slugs.
storeNoStore name, such as Steam, GOG, Epic or Nintendo eShop.
localeNoAlways pass the user's language as a site locale, e.g. pt or pt-BR, es, fr; default en.
sectionNoOnly this section, with up to 25 deals instead of 3.
maxPriceNoMaximum numeric sale price in each deal's own currency. No currency conversion.
platformNo

Output Schema

NameRequiredDescriptionDefault
hubUrlYesGAMES.GG deals or calendar page in the requested locale.
localeYes
lockedNo
sectionsYes
totalDealsYes
localeFallbackNo
savingsByCurrencyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedOutput schema / properties / upsell
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "ctaUrl": {
      -      "format": "uri",
      -      "type": "string"
      -    },
      -    "message": {
      -      "type": "string"
      -    },
      -    "reason": {
      -      "enum": [
      -        "deals_locked",
      -        "calendar_beyond_7_days",
      -        "games_plus_info"
      -      ],
      -      "type": "string"
      -    },
      -    "retry": {
      -      "additionalProperties": false,
      -      "description": "When the user says they upgraded, call this tool again with these arguments. A new membership applies within 10 seconds without reconnecting.",
      -      "properties": {
      -        "arguments": {
      -          "additionalProperties": {},
      -          "propertyNames": {
      -            "type": "string"
      -          },
      -          "type": "object"
      -        },
      -        "tool": {
      -          "enum": [
      -            "discover_games",
      -            "find_game",
      -            "search_guides",
      -            "read_guide",
      -            "search_editorial",
      -            "read_editorial",
      -            "get_deals",
      -            "get_calendar",
      -            "get_games_plus",
      -            "preview_membership",
      -            "save_game",
      -            "unsave_game",
      -            "save_guide",
      -            "unsave_guide",
      -            "follow_codes",
      -            "unfollow_codes",
      -            "my_games",
      -            "my_saved_guides",
      -            "my_code_follows"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "tool",
      -        "arguments"
      -      ],
      -      "type": "object"
      -    },
      -    "trialEligible": {
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "reason",
      -    "message",
      -    "ctaUrl",
      -    "trialEligible"
      -  ],
      -  "type": "object"
      -}
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description still adds substantial behavior: results are capped by the account's access, maxPrice is compared in each offer's own currency with no conversion, and a localized hubUrl does not imply translated deal data. It also explains what each url field points to (GAMES.GG product page for gamesGgStore vs. retailer for all others), which the agent cannot infer from 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 is front-loaded and every sentence carries information — no filler, no restatement of the title. The middle section is a dense run of caveats (urls, hubUrl, translation, account limits) that would read more cleanly grouped, but nothing is expendable.

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 an output schema present, return-value explanation is optional, yet the description still clarifies per-section result caps and url semantics. Combined with annotations covering the safety profile and high schema coverage, the only omission is the platform parameter, which is minor for a six-parameter, all-optional search tool.

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 high (83%), so the baseline is 3, but the description adds genuine meaning: the locale mapping rule ('pt maps to pt-BR', always pass the user's language) and the section behavior (3 deals by default, up to 25 when section is set). The main gap is platform, which has no description in the schema and no coverage in the description text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb plus resource set: 'Find game deals, discounts, sales, free games and store offers.' An agent immediately knows this is a deal-hunting search tool. It does not, however, contrast itself with plausible siblings such as find_game or discover_games, so differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real operational guidance — pass section for up to 25 results instead of 3, and always pass the user's language in locale. But there is no explicit statement of when to choose this tool over a sibling (e.g., find_game for a single title) and no exclusions or prerequisites. Usage is implied rather than directed.

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