Skip to main content
Glama
brewek

GG Deals MCP Server

by brewek

mcp-server-ggdeals

CI

A Model Context Protocol (MCP) server for integrating with gg.deals. Designed for Large Language Models to fetch game prices, historical lows, and bundles.

Installation & Usage

Use npx to run the server instantly in your MCP Client (e.g., Claude Desktop). No cloning required.

claude_desktop_config.json:

{
  "mcpServers": {
    "ggdeals": {
      "command": "npx",
      "args": ["-y", "mcp-server-ggdeals"],
      "env": {
        "GG_DEALS_API_KEY": "your_api_key_here"
      }
    }
  }
}

You can generate your API key at https://gg.deals/settings/ -> Connections -> GG.deals API key.

Related MCP server: isthereanydeal-mcp

Available Tools

`

  • search_games: Find a base game ID by title. (Note: This tool queries Steam Store API to retrieve Steam App ID, which is used for all gg.deals api calls).

  • get_game_prices: Fetch current prices (Official & Keyshops).

  • get_historical_low: Fetch the all-time lowest price.

  • get_game_bundles: Fetch Premium/Deluxe DLC bundles linked to a base game.

Architecture

Minimalist and modular codebase built with TypeScript and Zod:

  • src/index.ts: MCP routing & initialization

  • src/api.ts: Shared Axios client & error handling

  • src/search.ts: Search logic

  • src/prices.ts: Pricing & historical data

  • src/bundles.ts: Bundles discovery

Development

npm install
npm run build
npm run dev

Available Tools

4 tools
get_game_bundlesA

Fetch specific bundles and packages (like Premium Editions) associated with a base game ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYesThe unique base Steam App ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description indicates a read-only fetch. However, it does not disclose potential errors, limits, or response behavior beyond 'fetch'.

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

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with clear verb and resource.

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 simple read tool with one parameter and no output schema, the description adequately covers the main purpose. Could mention outcome format, but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the description adds minimal value by rephrasing 'base game ID' as 'base Steam App ID'.

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 clearly states the tool fetches bundles and packages for a game ID, using specific verb and resource. It distinguishes from sibling tools like get_game_prices and search_games.

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?

The description implies usage for fetching bundles but lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_game_pricesA

Get the current prices and deals for a specific game across various stores.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYesThe unique Steam App ID
regionNoThe region code for pricing (default: 'us')

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states it's a read operation ('get') but omits details like rate limits, error handling (e.g., invalid gameId), or response format. This is insufficient for a tool with no structural safety cues.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose. Every word is essential; no filler or redundancy. Ideal for quick parsing.

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

Completeness3/5

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

Given the tool's simplicity (2 params, no output schema), the description is adequate but lacks details on return format, which stores are queried, or what qualifies as a 'deal'. The sibling tools indicate more nuanced options, but for basic price retrieval, it meets minimum needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters described ('gameId' as Steam App ID, 'region' as region code with default). The tool description adds no extra meaning beyond the schema, meeting the baseline for high coverage but not enhancing understanding.

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 clearly states the tool retrieves current prices and deals for a specific game across stores. The verb 'Get' and resource 'current prices and deals' are specific, and it distinguishes from siblings like 'get_game_bundles' which implies bundle deals, and 'get_historical_low' which focuses on historical data.

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?

No explicit guidance is given on when to use this tool versus alternatives. While the purpose is clear, the description lacks when-not-to-use advice or comparisons with sibling tools. However, for a straightforward price lookup, basic usage is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_historical_lowB

Get the all-time lowest recorded price for a specific game.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYesThe unique Steam App ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It does not disclose what happens if the gameId is invalid, whether the data is cached, or any error handling. Despite being a simple read, it lacks behavioral details.

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

Conciseness5/5

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

The description is a single concise sentence with no filler. It communicates the core functionality efficiently.

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?

Given the low complexity (1 parameter, no output schema, no annotations), the description provides sufficient information for an agent to understand what the tool does. However, it could be more complete by noting return behavior or data freshness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'gameId' described as 'The unique Steam App ID'. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 clearly states the verb 'Get', the resource 'all-time lowest recorded price', and the scope 'for a specific game'. It is distinct from siblings: get_game_bundles (bundles), get_game_prices (current prices), search_games (search). The purpose is immediately understandable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of when to avoid it or prerequisites. The description only states what it does, not the context of use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_gamesA

Search for video games by title on Steam. Use this to find a game's Steam App ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the game to search for
limitNoMaximum number of results to return (default: 10)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it searches and finds App ID, but omits behavioral traits like rate limits, data freshness, default limit, or search algorithm details.

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?

Two sentences, front-loaded with action and purpose. Very concise, but could include more detail without becoming verbose. Efficient use of text.

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

Completeness3/5

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

No output schema, so description should hint at output format. It mentions finding App ID but lacks details on result structure, error handling, or pagination. Adequate for a simple search tool with well-documented parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description adds minimal extra meaning (e.g., 'by title' mapping to the title parameter). Baseline 3 is appropriate since no additional significant semantics beyond schema.

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?

Description clearly states 'Search for video games by title on Steam' with a specific verb and resource, and explicitly distinguishes the tool's purpose from siblings like get_game_bundles, get_game_prices, and get_historical_low.

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?

Description says 'Use this to find a game's Steam App ID', providing clear context for when to use. It does not explicitly state when not to use or mention alternatives, but sibling tools imply different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool serves a unique, clearly defined purpose: searching for games, fetching current prices, retrieving historical lows, and obtaining bundle information. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_game_prices, search_games), making the tool set predictable and easy to navigate.

Tool Count4/5

With 4 tools, the set is slightly small but well-scoped for a game deals domain. Each tool covers a key function, though a few additional tools (e.g., for trending deals) could enhance completeness.

Completeness4/5

The tool set covers the core workflow of searching for games and retrieving price/deal information, including bundles and historical lows. Minor gaps exist, such as missing game details or price alert management, but the essential use cases are addressed.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brewek/mcp-server-ggdeals'

If you have feedback or need assistance with the MCP directory API, please join our Discord server