steam-games-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STEAM_API_KEY | No | Your Steam Web API key (optional — enables player tools). Obtain from https://steamcommunity.com/dev/apikey | |
| STEAM_COUNTRY | No | Steam store price region (e.g., US) — optional | |
| STEAM_LANGUAGE | No | Steam store language (e.g., english) — optional |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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; |
| 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 |
| 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. |
| 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
| Name | Description |
|---|---|
| what_should_i_play | Recommend games from the Steam catalog based on a player's library and taste, excluding what they already own. |
| is_it_worth_buying | Gather price, reviews (lifetime + recent trend) and Steam Deck compatibility for a buying verdict. |
| deals_digest | A curated list of well-reviewed discounted games from Steam's catalog. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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