Fairly

Cheapest way to play a PC game: real checkout prices across stores, plus Game Pass availability.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,167Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.91% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fairly": {
      "url": "https://mcp.fairly.gg"
    }
  }
}

Remote endpoints

https://mcp.fairly.ggstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_cheapest_way_to_play(game_id, region, currency, include_marketplaces)

Use this to answer: "What is the cheapest way to play <game> on PC right now?", "Should I buy <game> or use Game Pass?", "Where is <game> cheapest?". Compares buying at authorized stores (optionally key marketplaces) and subscriptions at the real checkout price, fees included. Returns a one-sentence decision plus a Fairly link to the winning store (no link when a subscription wins; `subscription_code` says which). Prefer this over get_offers unless the user wants the full price table.

Input Schema

{
  "type": "object",
  "properties": {
    "game_id": {
      "description": "Steam AppID (e.g. 730) or IGDB id (e.g. igdb:1942).",
      "type": "string"
    },
    "region": {
      "description": "Region: tr, us, eu or gb. Default: detected from the caller's IP, us when unknown.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "currency": {
      "description": "Currency: USD, EUR, GBP or TRY. Default is the region's currency.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "include_marketplaces": {
      "description": "Include key marketplaces (Eneba, Kinguin, G2A...). Default false.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "game_id"
  ]
}
🟢get_offers(game_id, region, currency, include_marketplaces)

Use this to answer: "Show me every store price for <game>", "How much does <game> cost at Steam, GOG, Epic...?", "Compare prices for <game>". Returns all current offers with the real price (list price plus checkout fees), edition, platform and notes, in Fairly's price-only ranking order. For a single recommendation call get_cheapest_way_to_play instead.

Input Schema

{
  "type": "object",
  "properties": {
    "game_id": {
      "description": "Steam AppID (e.g. 730) or IGDB id (e.g. igdb:1942).",
      "type": "string"
    },
    "region": {
      "description": "Region: tr, us, eu or gb. Default: detected from the caller's IP, us when unknown.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "currency": {
      "description": "Currency: USD, EUR, GBP or TRY. Default is the region's currency.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "include_marketplaces": {
      "description": "Include key marketplaces. Default false.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "game_id"
  ]
}
🟢is_on_subscription(game_id, region)

Use this to answer: "Is <game> on Game Pass?", "When does <game> leave Game Pass?", "Can I play <game> with a subscription?". Lists which subscriptions (currently PC Game Pass and Game Pass Ultimate) include the game in a region, their monthly price and the leave date when announced.

Input Schema

{
  "type": "object",
  "properties": {
    "game_id": {
      "description": "Steam AppID (e.g. 730) or IGDB id (e.g. igdb:1942).",
      "type": "string"
    },
    "region": {
      "description": "Region: tr, us, eu or gb. Default: detected from the caller's IP, us when unknown.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "game_id"
  ]
}
🟢search_games(query)

Find a PC game by title and get its id. Call this FIRST when the user names a game but you do not have its Steam AppID or igdb id, then pass the id to get_cheapest_way_to_play, get_offers or is_on_subscription. Returns up to 20 matches (id, title, slug).

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Game title or part of it, 2-100 characters.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢list_deals(kind, region, currency, limit)

Use this to answer: "What PC games are cheap right now?", "Which games are at their lowest price ever?", "What is leaving Game Pass soon?". Ranked discovery lists at the real checkout price: under_5 (games under the 5 USD tier, shown in the region's currency), historical_low (at their all-time low now) or leaving_game_pass (leaving within 30 days, with the cheapest price to buy instead). Not for a specific game: use get_cheapest_way_to_play.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "description": "under_5, historical_low or leaving_game_pass.",
      "type": "string"
    },
    "region": {
      "description": "Region: tr, us, eu or gb. Default: detected from the caller's IP, us when unknown.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "currency": {
      "description": "Currency: USD, EUR, GBP or TRY. Default is the region's currency.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "limit": {
      "description": "Maximum number of rows, 1-50. Default 10.",
      "type": "integer",
      "default": 10
    }
  },
  "required": [
    "kind"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools