Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STEAM_API_KEYNoYour Steam Web API key (optional — enables player tools). Obtain from https://steamcommunity.com/dev/apikey
STEAM_COUNTRYNoSteam store price region (e.g., US) — optional
STEAM_LANGUAGENoSteam store language (e.g., english) — optional

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_games

Search the Steam store by title — term can be partial or approximate, not an exact match; returns matches with their appid (needed by the other game tools), price, Metacritic score and platforms. No API key required.

get_game

Get full store details for one game: description, price/discount, genres, platforms, release date, developers/publishers, Metacritic, age rating, DLC and PC requirements. Identify the game by appid (from search_games) OR by name — a title is resolved to the closest store match. No API key required.

get_game_reviews

Get the review summary (score label, positive/negative counts, %) and a few recent reviews for a game by appid. Get the appid from search_games. No API key required.

get_review_histogram

Get how a game's reviews trend over time by appid: a long-term (monthly) history and the recent per-day breakdown, each with positive/negative counts and positive %. Good for 'are reviews improving / did an update hurt reception'. Get the appid from search_games. No key.

get_prices

Get current price and discount for a batch of games by appid in one call — efficient for checking a whole list (e.g. a wishlist) for deals. Handles up to 500 appids; if you also need review %, hardware compatibility or tags, use get_items instead (max 100 appids). Rows come back in the same order as the given appids, one per id (unavailable ones marked available:false, never dropped). Each row has the final/initial price and discount_percent (or is_free). No API key required. Get appids from search_games or get_wishlist.

get_specials

List games currently on special (discounted) on the Steam store front page, with the discount % and original/final price. For ALL catalog discounts (not just the front page), use discover_games with min_discount. No API key required.

get_featured

Get the Steam store's featured sections: specials, top sellers, new releases and coming soon (each a list of games with appid and price), all in one call — for a general 'what's on the store front page' overview. For just current discounts use get_specials (lighter), or discover_games for catalog-wide deals with filters. No API key required.

get_game_news

Get recent news / patch notes for a game by appid (title, date, author, excerpt, link). Get the appid from search_games. Works without an API key.

get_global_achievements

Get the global unlock percentage of each achievement in a game by appid — how rare each achievement is across all players. Returns each achievement's internal name and its unlock percent (no display names/descriptions — for those, use get_game_achievements). Get the appid from search_games. Works without a key.

get_itemsA

Get price/discount, review % (positive), hardware compatibility, popular user tags and release date for a LIST of games by appid in ONE keyless call. The efficient way to price-, rating-, tag- and compat-check a wishlist or library without a request per game. For a bigger batch (up to 500 appids) when you only need price, use get_prices instead. Each item carries four compatibility fields, each verified/playable/unsupported/unknown: steam_deck (Steam Deck), steam_os (SteamOS in general), steam_machine (the Steam Machine console specifically), and steam_frame (Steam Frame VR headset); a vr_support flag (none/supported/required — distinct from steam_frame, which is a Steam Frame HARDWARE compat rating, not whether the game itself has a VR mode); a tags list (top user tags like 'Roguelike', 'Souls-like', most-relevant first); a clickable store_url to the game's Steam page; and, when on sale, discount_end (ISO UTC time the discount expires — for 'how long is this deal valid'). Get appids from search_games / get_wishlist / get_owned_games.

discover_games

Find games across the whole Steam catalog (keyless), filtered by ANY combination of: discount (min_discount — for 'what's on sale'), release recency (released_after / released_within_days — for 'new games'), hardware compatibility (steam_deck for Steam Deck, steam_os for SteamOS in general, steam_machine for the Steam Machine console specifically, steam_frame for the Steam Frame VR headset), native OS build (platform — windows/mac/linux), review quality (min_review / min_reviews), and user tags (tags — e.g. ['Roguelike', 'Deckbuilding'] for 'games like X'). Each result returns price/discount, review %, all four compat statuses, a vr_support flag (none/supported/required), popular tags, a clickable store_url, discount_end (when a deal expires) and release date in one call. Examples: '>80% off with 90%+ reviews' → set min_discount + min_review; 'recent well-reviewed games that run on Steam Deck' → set released_within_days + steam_deck + min_review; 'roguelike deckbuilders on sale' → tags:['Roguelike','Deckbuilding'] + min_discount; 'games that run on the Steam Machine' → steam_machine; 'games that run on SteamOS' → steam_os. No appids needed — unlike get_items, which prices a list you already have. For 'games like X' from a SINGLE named title, get its tags via get_items and pass them here; for taste inferred from the player's WHOLE library instead, use get_recommended_games (key-gated). Note: the Steam catalog API has no release-date/tag sort or filter, so results are scanned popularity-first and the recency, compat and tag filters are applied over that window — great for popular titles; a niche match may fall outside the top count (raise count for stricter filters).

get_current_players

Get how many people are playing a game right now (live concurrent player count) by appid. Get the appid from search_games. Works without a key.

get_followed_games

List the games a player 'follows' on the Steam store, by SteamID64 — a lighter opt-in (get sale/update notifications) that's separate from the wishlist; many players follow more games than they wishlist. Works without a key, but only if that player's follows/profile are public — otherwise it returns found:false. Returns appids + store_url only (no price/name); pass the appids to get_items for price, review % and compat. Convert a vanity name with resolve_vanity_url first.

get_wishlist

List a player's Steam wishlist by SteamID64. Works without a key, but only if that player's wishlist/profile is public — otherwise it returns found:false. By default returns a light list of appids (sorted by priority, no names). Set include_details for full store cards in ONE call (name, price/discount, review %, Deck/SteamOS/Machine/Frame compat, vr_support, tags, release) — no need to follow up with get_items. Narrow it in the SAME call with tags (e.g. ['Metroidvania']), platform (NATIVE windows/mac/linux build), steam_deck / steam_os / steam_machine / steam_frame (Proton compatibility — distinct from a native build), min_review and min_discount / on_sale_only, or country / language (the light appid list carries no price, so setting either implies include_details too) — these are applied before the output cap, so a deeply-discounted niche match past the display cap is never hidden by it (e.g. 'top metroidvanias on my wishlist with a good discount and reviews' → tags:['Metroidvania'] + min_discount + min_review). Results ranked by discount when a discount filter is set, else by wishlist priority; matched reports the pre-cap count. Steam itself only attaches store data to roughly the first 100 wishlist entries per call — on a bigger wishlist, enriched reports how many of total got checked, and note explains when some were skipped (their filter/price data isn't available at all, not that they don't match). Convert a vanity name with resolve_vanity_url first.

get_game_achievements

List ALL achievements of a game by appid with their names, descriptions, hidden flag and global unlock % (rarity). Requires STEAM_API_KEY (the achievement schema needs a key). For just the rarity by internal id without a key, use get_global_achievements; for a few named highlights, see get_game's achievements_highlighted. Get the appid from search_games.

resolve_vanity_urlA

Convert a Steam custom (vanity) profile name — the part after /id/ in a profile URL — into the 17-digit SteamID64 that the player tools need. Requires STEAM_API_KEY.

get_friend_list

List a player's Steam friends by SteamID64: name, online state, current game and how long they've been friends, most-recently-added first. Requires STEAM_API_KEY and the friends list to be public. For 'which of my friends own game X', use find_friends_who_own instead — it checks each friend's full library, not just this list. Get the SteamID64 from resolve_vanity_url.

find_friends_who_own

Check which of a player's Steam friends own one or more games by appid, with each owner's playtime_hours — 'which of my friends have Portal 2 and how long have they played'. Checks each friend's FULL library, unlike get_friend_list which caps at the top 50 games by playtime — so a friend's rarely-played or unplayed copy is never missed (its playtime_hours may still be low or 0). For the PLAYER'S OWN ownership instead of a friend's, use get_owned_games's check_appids. Requires STEAM_API_KEY and the player's friends list to be public; friends with a private library are listed separately in private_friends (can't be checked) rather than silently counted as non-owners. Get appids from search_games.

compare_players

Find games two players both own, with each one's playtime — 'what can my friend and I both play', 'do we have anything in common'. Checks each player's FULL library, unlike get_owned_games which caps at the top 50 by playtime. Requires STEAM_API_KEY and both profiles' game-details to be public. Omit steamid to compare against yourself (STEAM_ID).

get_player_summary

Get a player's public profile by SteamID64: display name, online state, country, account age, Steam level, and the game they're currently in. Requires STEAM_API_KEY and a public profile. For VAC/game/trade ban status instead, use get_player_bans.

get_player_bans

Check a player's VAC, game, community and economy (trade) ban status by SteamID64 — 'is this player banned', useful before trading or adding a friend. Ban status is always public — this works even when the rest of the profile is private. Requires STEAM_API_KEY.

get_owned_games

List the games a player owns with playtime (hours), most-played first (the games list is capped to the top 50 by playtime — a lightly-played or unplayed game may not appear there). To reliably check whether the player owns one or more SPECIFIC appids regardless of that cap — 'do I own game X' — pass check_appids; the owns field then checks the FULL, uncapped library, with each result's own playtime_hours (null if not owned). For checking a FRIEND's ownership instead of the player's own, use find_friends_who_own. Requires STEAM_API_KEY and a public profile + game-details visibility. Get the SteamID64 from resolve_vanity_url.

get_recently_played

List the games a player has played in the last two weeks, with recent and total playtime. For all-time top games by playtime instead (capped to the top 50), use get_owned_games. Requires STEAM_API_KEY and a public profile.

get_recommended_games

Recommend unowned Steam catalog games personalized to this player: tags on their own most-played owned games become weighted preferences (more playtime on a tag = more weight), discounted by each candidate's review score so a tag match on a poorly-received game doesn't outrank a better one, then ranked against a broad catalog page, excluding anything already owned. based_on_tags shows which of the player's own top tags drove the ranking; each result carries matched_tags and match_score alongside the usual price/review/compat card. Set exclude_tags to steer away from a genre despite it matching by playtime (e.g. 'recommend me something except Souls-like'), or min_discount for 'recommend something on a good discount' (e.g. 'suggest games on sale, not RPGs or shooters' → exclude_tags:['RPG','Shooter','FPS'], min_discount:30). Different from discover_games (which needs YOU to name the filters) — this infers taste from the player's WHOLE library instead, for 'what should I play next' / 'recommend me something'. For 'something like THIS ONE game' (a single named title), get its tags via get_items and call discover_games with them instead. Note: candidates are scored from a large but fixed-size catalog scan, so a heavy exclude_tags/min_discount combination can return fewer than count — there's no larger scan to fall back to. Requires STEAM_API_KEY and a public profile with game-details visible (same requirement as get_owned_games).

get_player_achievements

Get a player's achievement progress for one game (unlocked count, % complete, per-achievement unlock dates) by SteamID64 + appid. For the game's full achievement list (names, descriptions, global rarity) independent of any player, use get_game_achievements instead; for just the rarity without a key, use get_global_achievements. Requires STEAM_API_KEY and a public profile.

Prompts

Interactive templates invoked by user choice

NameDescription
what_should_i_playRecommend games from the Steam catalog based on a player's library and taste, excluding what they already own.
is_it_worth_buyingGather price, reviews (lifetime + recent trend) and Steam Deck compatibility for a buying verdict.
deals_digestA curated list of well-reviewed discounted games from Steam's catalog.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/Grinv/steam-games-mcp'

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