Steam (read-only)
Read-only Steam: friends, games, achievements, sales, plus game recommendations and co-op nights.
Connector by Sarg338 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Claude Desktop, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/sarg338-steam-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 41 read · 0 write · 0 deleteRead-only
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 41
Read from the source code; the running server may list different tools.
Read 41 · Look things up without changing anything.
steam_analyze_app_reviewssteam_analyze_gamesteam_analyze_librarysteam_compare_gamessteam_compare_playerssteam_discoversteam_find_friends_who_ownsteam_get_app_detailssteam_get_app_newssteam_get_app_regional_pricingsteam_get_app_reviewssteam_get_app_tags
Show 29 more tools
steam_get_current_playerssteam_get_deck_compatibilitysteam_get_dlcsteam_get_featured_specialssteam_get_friend_liststeam_get_game_schemasteam_get_global_achievement_percentagessteam_get_inventorysteam_get_market_pricesteam_get_owned_gamessteam_get_package_detailssteam_get_player_achievementssteam_get_player_badgessteam_get_player_banssteam_get_player_summarysteam_get_rarest_unlockssteam_get_recently_played_gamessteam_get_steam_levelsteam_get_store_highlightssteam_get_update_impactsteam_get_user_game_statssteam_get_user_groupssteam_get_wishliststeam_get_workshop_itemsteam_plan_coop_nightsteam_recommendsteam_resolve_vanity_urlsteam_search_appssteam_should_i_buy
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
STEAM_API_KEY
Other settings (environment variables or headers).
STEAM_MCP_TOOLSSTEAM_USER
Network hosts it talks to 4
api.steampowered.com· found in codegithub.com· found in install command, codesteamcommunity.com· found in codestore.steampowered.com· found in code
Tools (41)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
steam_analyze_app_reviewsAnalyze a Steam Game's Reviewsread-onlyAnalyze thousands of a game's reviews: sentiment over time, by language, playtime, Deck, key vs Steam purchase, dev replies. Answers "when did the reviews turn", "do long-time players like it", "are Deck players happy", "do key activations skew the score", "does the developer reply", "how many reviewers refunded it". Reads up to `max_reviews` of the newest reviews (optionally only the last `day_range` days) and returns aggregates plus a few example reviews per group; for just the score, use steam_get_app_reviews. A big corpus can be analyzed in installments by passing `next_cursor` back as `c…
steam_analyze_gameAnalyze a Steam Game (One-Call Brief)read-onlyOne-call brief on a game — price, all-time and 30-day reviews, players now, Deck, tags, latest update's effect, and news. The "tell me about X" / "is X worth a look right now?" starting point: what steam_get_app_details, steam_get_app_reviews, steam_get_current_players, steam_get_app_tags, steam_get_update_impact and the news would say, in one call. Review scores count what the store page counts, and the 30-day score is exact. Facts, not a verdict. No API key required. Args: params (AnalyzeGameInput): appid, country_code. Returns: str: Markdown brief or JSON: the game's snapshot (pr…
steam_analyze_libraryAnalyze Steam Library / Backlogread-onlyAnalyze a whole game library: backlog, playtime distribution, abandoned games. Answers "what should I play", "what have I never touched", "where do my hours go", and "what did I love but abandon". Computed from one owned-games call (plus a small persona lookup for the header), so it spans the entire library cheaply. Requires the profile's Game Details to be Public. Needs an API key. Reports total games and hours; the never-played backlog; a playtime histogram (0h / <1h / 1-5h / 5-20h / 20-100h / 100h+); most-played games; recently active games; and 'abandoned' games (played, but not launched…
steam_compare_gamesCompare Steam Games Side by Sideread-onlyCompare 2-5 games side by side — price, reviews and their trend, players now, Deck, co-op, tags — for "X or Y?" questions. One call instead of five tools per game. Review scores count what the store page counts; the recent score is the last 30 days. Also names the best-reviewed, most-played and cheapest game and the tags they share, so the answer can say how they differ. States facts, not a verdict. No API key required. Args: params (CompareGamesInput): appids (2-5), country_code. Returns: str: Markdown table or JSON: one row per game (price, discount, release, review score + %,…
steam_compare_playersCompare Two Steam Playersread-onlyCompare two users' libraries: shared games and who has played each more. Answers "what games do we both own" and "who has more hours in the games we share". Built on each user's owned-games list. Requires BOTH profiles' game details to be Public. Needs an API key. Args: params (ComparePlayersInput): steamid_a, steamid_b, limit. Returns: str: Markdown or JSON. each user's game count, the shared-game count, and the top shared games with each player's hours.
steam_discoverDiscover / Recommend Steam Gamesread-onlyDiscover games by criteria — tags, max price, on-sale, platform — optionally personalized to a user's taste; for filter-based search, not "games like X" (use steam_recommend for that). The discovery/recommendation tool. Filters the whole store by community tags (by name), max price, on-sale, platform, and free text, sorted by review score (default), recency, or price. Pass a steamid to PERSONALIZE: it seeds the tag filter from that user's most-played + recently-played games and, by default, excludes games they already own — so it recommends NEW games matching their taste. Answers "find co-op …
steam_find_friends_who_ownFind Friends Who Own a Gameread-onlyList which of a user's friends own (or are playing) a specific game — "who can I play X with" (about friends' libraries, not store search). Answers "who can I play X with". Cross-references the user's friend list with each friend's owned games, then annotates owners with their playtime and whether they are in the game right now (use playing_now=true to filter to just those). Requires the USER's friend list to be Public AND each FRIEND's game details to be Public — friends with private libraries can't be determined and are reported separately. Checks up to max_friends friends concurrently. Nee…
steam_get_app_detailsGet Steam App Detailsread-onlyGet comprehensive store details for a game — the best 'tell me about X' tool. Returns name, type, price/discount, developers & publishers, genres, release date, Metacritic, review count, achievement count, supported languages (and which have full audio), platforms, DLC, mature-content flags, and — most usefully — play modes and features derived from Steam's category list. Also exposes a `features` object of boolean flags so an LLM can filter directly (is_singleplayer, is_coop, is_online_coop, is_local_coop, has_controller_support, has_cloud_saves, has_trading_cards, remote_play_together, fami…
steam_get_app_newsGet Steam App News/Updatesread-onlyGet recent news/update posts for a game (patch notes, announcements). Answers "what's new in X" / "latest update for X". No API key required. Args: params (AppNewsInput): appid, count. Returns: str: Markdown or JSON. Per item: title, date, source feed, url, and a short excerpt of the contents.
steam_get_app_regional_pricingGet Steam Regional Pricingread-onlyCompare a game's price across regions (each in its own local currency). Fetches the store price for the same app in several countries at once. Note the amounts are in different currencies (USD, EUR, BRL, JPY, …), so they are NOT directly comparable without an exchange rate — this shows each region's local price and discount, not a converted ranking. No API key required. Args: params (RegionalPricingInput): appid, countries. Returns: str: Markdown or JSON. game name plus, per country, the localized price, discount, and on-sale flag.
steam_get_app_reviewsGet Steam App Reviews & Ratingread-onlyGet the review score and sample reviews for a game (lifetime and/or recent). Answers "is X any good", "what's the rating of X", and "how are the RECENT reviews for X". Always returns Steam's lifetime verdict (e.g. 'Very Positive'). With review_filter='recent', it ALSO computes the last-N-days positive % by tallying the newest reviews — Steam's API has no recent-summary field, so this is derived from individual reviews and is marked 'sampled' if the game has more recent reviews than `recent_max_reviews` (default 600). By default both scores count the population the store page does: Steam purch…
steam_get_app_tagsGet Steam Community Tagsread-onlyGet a game's top community tags (Souls-like, Roguelike, Cozy, …) by weight. Community tags are player-applied descriptors that capture sub-genres and vibes Steam's official `genres` miss — the best signal for "is this a soulslike / cozy / bullet-hell". Returns the most-weighted tags for the app. Built from the storefront's modern item API plus its public tag dictionary; no API key required. Args: params (AppTagsInput): appid, limit, country_code. Returns: str: Markdown (comma-separated tag list) or JSON (per tag: tag, tagid, weight), ordered most-weighted first.
steam_get_current_playersGet Steam Live Player Countread-onlyGet the number of players currently in-game for a title (live concurrency). Answers "how many people are playing X right now" / "is X still popular". No API key required. Args: params (AppOnlyInput): appid. Returns: str: The current concurrent player count, or an Error string.
steam_get_deck_compatibilitySteam Deck Compatibilityread-onlySteam Deck rating for a game: Verified, Playable, Unsupported, or Unknown. Answers "can I play this on my Steam Deck" and "why is it only Playable" — returns Valve's official Deck compatibility category plus the per-criterion test results (default controller config, interface text legibility, default performance, etc.), each marked pass (✓) or caveat (⚠). No API key required. Args: params (DeckCompatInput): appid, language, response_format. Returns: str: Markdown or JSON — the category and the list of Deck test-result notes.
steam_get_dlcGet Steam Game DLCread-onlyList a game's DLC (add-ons), optionally with live prices and sale status. Answers "what DLC does X have", "how much is all the X DLC", and "is any X DLC on sale". steam_get_app_details exposes only bare DLC appids; this resolves them to names + current prices (concurrently) and can filter to just the discounts via on_sale_only. Prices are returned in the country_code's local currency. No API key required. Args: params (DlcInput): appid (the base game), limit, enrich, on_sale_only, country_code. Returns: str: Markdown or JSON. base game name, total DLC count, and per entry: …
Show 26 more tools
steam_get_featured_specialsGet Steam Featured Sales/Specialsread-onlyList games currently ON SALE (featured specials) on the Steam store. Answers "what's on sale right now" and "any good Steam deals". Returns the discounted price, original price, and discount percent for each. Regional via country_code. No API key required. For top sellers / new releases / coming soon, use steam_get_store_highlights. Args: params (FeaturedInput): limit, country_code. Returns: str: Markdown or JSON list: appid, name, original_price, final_price, discount_pct.
steam_get_friend_listGet Steam Friend Listread-onlyList a user's Steam friends, enriched with name and current status. Combines GetFriendList (which returns only IDs) with GetPlayerSummaries so each friend includes their persona name and live status (Online / Away / In-Game / Offline). Requires the target profile's friend list to be PUBLIC. Args: params (FriendListInput): steamid, limit, offset, online_only. Returns: str: Markdown or JSON list. Per friend: steamid, name, status, current_game (if any), friends_since. Includes pagination metadata in JSON.
steam_get_game_schemaGet Steam Game Schemaread-onlyGet the achievement and stat definitions for a game (not user-specific). Useful to see the full list of achievements a game offers, with display names and descriptions, independent of any player. Args: params (GameSchemaInput): appid, limit. Returns: str: Markdown or JSON. game name, achievement_count, and up to `limit` achievement definitions (api_name, display_name, description, hidden); JSON flags `truncated` when there are more.
steam_get_global_achievement_percentagesGet Global Achievement Rarityread-onlyGet the global unlock percentage (rarity) of each achievement in a game. Lower percentages mean rarer achievements. Pair with steam_get_player_achievements to tell a user which of their unlocks are rarest. Args: params (GlobalAchievementsInput): appid, limit. Returns: str: Markdown or JSON. achievement_count plus, for up to `limit` achievements: api_name, global_pct (sorted rarest first); JSON flags `truncated` when there are more.
steam_get_inventoryGet Steam Inventoryread-onlyList a user's Steam inventory — game items or generic Community items. Works for any app's inventory: a game (CS2 730, TF2 440, Dota 2 570 — items, skins, cosmetics) or the **Steam Community** inventory (app 753 — trading cards, emoticons, profile backgrounds, gems). Aggregates duplicate items by quantity and flags whether each is tradable/marketable. The context is auto-picked from the app unless you set context_id. Requires the target's **inventory privacy to be Public**; no API key required (use a SteamID64 or profile URL to skip vanity resolution, which does need a key). Args: params…
steam_get_market_priceGet Steam Community Market Priceread-onlyGet the Community Market price for a single item, with rarity and condition. Returns the current lowest and median sale price plus 24-hour volume, and (by default) the item's type/rarity (e.g. "Classified Rifle", "Mythical Bow") and listing count. For CS2 it also surfaces the wear/exterior, StatTrak™, Souvenir, and ★ flags parsed from the name. The item is identified by its exact Market Hash Name — which already encodes the variant (condition, StatTrak, etc.). No API key required. Uses Steam's Community Market endpoints, which are undocumented and tightly rate-limited; results are cached bri…
steam_get_owned_gamesGet Steam Owned Gamesread-onlyList the games a user owns, with total and recent hours played. Use this for "how many hours have I played X", "what are my most-played games", and "how many games do I own". Requires the target's Game Details to be PUBLIC. Args: params (OwnedGamesInput): steamid, limit, offset, sort_by ('playtime'|'name'), include_free_games. Returns: str: Markdown or JSON. Per game: appid, name, playtime_hours, playtime_2weeks_hours. JSON includes game_count and pagination metadata.
steam_get_package_detailsGet Steam Package/Bundle Detailsread-onlyGet store details for a Steam package (a sub/bundle of one or more games). Answers "how much is the X package" and "what games are in this bundle". appdetails covers single games; this covers multi-game packages. No API key required. Args: params (PackageDetailsInput): packageid, country_code. Returns: str: Markdown or JSON. name, price, discount, release date, and the list of apps the package includes.
steam_get_player_achievementsGet Steam Player Achievementsread-onlyGet a user's achievement progress for a specific game. Reports how many achievements are unlocked vs total, and lists locked ones. Use steam_search_apps or steam_get_owned_games first if you only know the game name and need its appid. Requires the profile's game details to be PUBLIC and the game to have achievements. Args: params (PlayerAchievementsInput): steamid, appid, limit. Returns: str: Markdown or JSON. Includes game name, unlocked count, total count, completion percentage, and up to `limit` locked achievements (JSON flags `locked_truncated` when there are more).
steam_get_player_badgesGet Steam Player Badgesread-onlyGet a user's badges and the XP breakdown behind their Steam level. Answers "what badges do I have" and "how is my Steam level made up". Reports the level, total XP, XP needed to reach the next level, badge count, and the highest-XP badges. Requires the profile to be Public. Needs an API key. Args: params (PlayerInput): steamid. Returns: str: Markdown or JSON. player_level, player_xp, xp_needed_to_level_up, badge_count, and top badges (badgeid, appid, level, xp, scarcity).
steam_get_player_bansGet Steam Player Bansread-onlyGet VAC / game / community / economy ban status for a user. Args: params (PlayerInput): steamid. Returns: str: Ban summary (VACBanned, NumberOfVACBans, DaysSinceLastBan, CommunityBanned, EconomyBan, NumberOfGameBans), or an Error string.
steam_get_player_summaryGet Steam Player Summaryread-onlyGet profile + current status for one or more Steam users. Returns persona name, profile visibility, online status (Online / Away / Busy / Snooze / Offline), and the game they are currently playing (if any). This is the primary tool for "is X online" and "what is X playing right now". Args: params (PlayersInput): steamids (list of up to 100 IDs/vanity names/URLs). Returns: str: Markdown or JSON. Per player: steamid, name, status, current_game, visibility, profile_url, country (if public), last_logoff.
steam_get_rarest_unlocksGet Player's Rarest Achievement Unlocksread-onlyShow a player's RAREST unlocked achievements in a game (by global unlock %). Joins the player's unlocked achievements with each one's global unlock rarity to surface their most impressive "flexes" — achievements few players ever earn. Does in one step what pairing steam_get_player_achievements with steam_get_global_achievement_percentages would. Requires the profile's game details to be PUBLIC and the game to have achievements. Needs an API key. Args: params (RarestUnlocksInput): steamid, appid, limit. Returns: str: Markdown or JSON. game name, total unlocked count, and the rarest …
steam_get_recently_played_gamesGet Steam Recently Played Gamesread-onlyList games a user has played in the last two weeks, with hours. Args: params (PlayerInput): steamid. Returns: str: Markdown or JSON. Per game: appid, name, playtime_2weeks_hours, playtime_hours (total).
steam_get_steam_levelGet Steam Levelread-onlyGet a user's Steam community level (the XP-based account level). Args: params (PlayerInput): steamid. Returns: str: The Steam level, or an Error string.
steam_get_store_highlightsGet Steam Store Highlightsread-onlyList a Steam storefront section: top sellers, new releases, or coming soon. Answers "what's popular on Steam right now", "what new games just came out", and "what's coming soon". Also supports 'specials' (same data as steam_get_featured_specials). No API key required. Args: params (StoreHighlightsInput): section ('top_sellers' | 'new_releases' | 'coming_soon' | 'specials'), limit, country_code. Returns: str: Markdown or JSON list: appid, name, final_price, original_price, discount_pct.
steam_get_update_impactDid a Steam Game's Updates Change Its Reviews?read-onlyShow how a game's reviews moved around each recent update — "did the last patch hurt it?". Lines up the developer's update and patch-note posts from the last `days` days with Steam's exact review counts for the `window_days` before and after each one, and reports the change in positive %. A change is only given when both sides have enough reviews. Correlation, not proof: sales, events and review bombs move scores too. No API key required. Args: params (UpdateImpactInput): appid, days, window_days, language, purchase_type, country_code. Returns: str: Markdown or JSON: each up…
steam_get_user_game_statsGet Steam User Game Statsread-onlyGet a user's in-game STATS for a specific game (kills, wins, distance, etc.). Complements steam_get_player_achievements: where that lists achievement unlocks, this returns the numeric gameplay stats a game tracks — whatever the developer defined (e.g. total kills, matches won, distance travelled). Use steam_search_apps or steam_get_owned_games first if you only have a game name. Requires the profile's Game Details to be PUBLIC and the game to define stats; many games define none (then this returns an empty result). Needs an API key. Args: params (UserGameStatsInput): steamid, appid, limi…
steam_get_user_groupsGet Steam User Groupsread-onlyList the Steam groups (communities/clans) a user belongs to. GetUserGroupList returns only group IDs, so with enrich=true each is resolved to its name, community URL, and member count (sorted by size). Requires the profile's group list to be Public. Needs an API key. Args: params (UserGroupsInput): steamid, limit, enrich. Returns: str: Markdown or JSON. total group count plus, per group, gid and (when enriched) name, url, and member_count.
steam_get_wishlistGet Steam Wishlistread-onlyGet a user's Steam wishlist, optionally with live prices and sale status. Answers "what's on my wishlist" and "which of my wishlist games are on sale". Returns wishlist entries ordered by priority; with enrich=true each is annotated with its name, current price, and whether it's discounted (use on_sale_only=true to filter to just the deals). Requires the target's wishlist privacy to be Public. Needs an API key. Args: params (WishlistInput): steamid, limit, enrich, on_sale_only, country_code. Returns: str: Markdown or JSON. total wishlist size plus per entry: appid, priority, and…
steam_get_workshop_itemGet Steam Workshop Itemread-onlyGet metadata for a Steam Workshop item (mod, map, guide, collection, …). Answers "what is this workshop item" and "how popular is it". Returns the title, which game it's for, description, tags, and engagement (subscribers, favorites, views), plus created/updated dates. No API key required. Args: params (WorkshopItemInput): published_file_id. Returns: str: Markdown or JSON. title, app_id, creator, description, tags, subscriptions/favorited/views, created/updated, and the community link.
steam_plan_coop_nightPlan a Steam Co-op Nightread-onlyFind co-op games the host and their friends all own — for game night. Two modes. mode='owned' (default) cross-references the host's library with friends' libraries, keeps co-op games, and ranks by how many of the group own each. mode='new' instead recommends well-reviewed co-op games that NONE of the group owns yet — fresh picks to buy and play together (it excludes every readable library in the group). By default the group is the host's friends who are ONLINE right now (the "tonight" framing); pass an explicit `friends` list to plan with specific people, or online_only=false for everyone. 'o…
steam_recommendRecommend Steam Games (with reasons)read-onlyRecommend games similar to a seed game ("like Hades") or to a user's taste, explaining the shared tags; for "games like X" / "what should I play" (for filtered search use steam_discover). Pick a basis: a seed_appid ("games like Hades"), a steamid (your most-played + recent taste), or explicit tags — precedence tags > seed_appid > taste. Pass BOTH seed_appid and steamid for "games like X that I don't own": the seed drives the tags and the steamid supplies the ownership exclusion. Finds well-reviewed games that share those tags — excluding the seed game and (with steamid) games you already own …
steam_resolve_vanity_urlResolve Steam Vanity URLread-onlyResolve a Steam vanity/custom-URL name (or profile URL) to a SteamID64. Most Steam Web API endpoints require a numeric 17-digit SteamID64, but people usually know their custom URL name (steamcommunity.com/id/<name>). Use this to convert one to the other. If given a SteamID64 already, it is returned as-is. Args: params (PlayerInput): steamid (vanity name, SteamID64, or profile URL). Returns: str: The resolved SteamID64, or an Error string if it cannot be resolved.
steam_search_appsSearch Steam Store Appsread-onlyLook up a game's appid by its title — when you already know the name and need its ID (not for discovery, recommendations, or buy decisions). Use this to turn a game name into an appid for the achievement/details tools. Does not require an API key. Args: params (AppSearchInput): query, limit, country_code. Returns: str: Markdown or JSON list of matches: appid, name, price (if any).
steam_should_i_buySteam Buying Brief (Should I Buy?)read-onlyDecide whether to buy ONE specific game — price, recent + lifetime reviews, tags, Metacritic, and taste match in one call; for evaluating a single known game, not finding new ones. Fuses the decision-relevant signals: current price/discount, lifetime AND last-30-days review scores (the divergence shows whether a game is improving or declining), top community tags, Metacritic, and release status. Pass a steamid to personalize — whether you already own it and which of its tags match your most-played games. Returns the facts for a reasoned call (it does not hard-code a yes/no). The store data ne…
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Weekly downloads
- 299
- Last commit
- Sep 24, 2026 (1 month ago)
- Last release
- Sep 24, 2026 (1 month ago)
- Last package publish
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.Sarg338/steam-mcp- Version
- 1.19.0
- Auth
- API key
- Packages
- pypi steam-mcpmcpb https://github.com/Sarg338/steam-mcp/releases/download/v1.19.0/steam-mcp.mcpb
- License
- MIT
- Repository
- github.com/Sarg338/steam-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Steam (read-only) MCP server. Agent Mart. https://agentmart.dev/connectors/sarg338-steam-mcp (last updated 2026-10-24)