Read-only Steam: friends, games, playtime, achievements, sales, reviews, and live player counts.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Steam (read Only).
steam_resolve_vanity_urlyes
steam_get_player_summaryyes
steam_get_friend_listyes
steam_find_friends_who_ownyes
steam_get_user_groupsyes
steam_plan_coop_nightyes
A read-only Model Context Protocol server for the public Steam Web API and storefront — 41 tools, 5 prompts, and 2 resources that let any MCP client (Claude Desktop, Claude Code, Cursor, …) answer questions about Steam: your friends, games, playtime, and achievements, plus account-independent things like sales, reviews, live player counts, Steam Deck compatibility, discovery, recommendations, and co-op planning.
Read-only · official Steam APIs only · open source. Nobody logs in, and the server never writes, trades, posts, launches games, or makes purchases.
Install uv, then:
Claude Code
That's the whole setup. 19 of the 41 tools work with no credential at all — anything about the store or a game itself:
"Is Baldur's Gate 3 worth buying, and how are its recent reviews trending?" "What co-op games are on sale under £20 right now?" "How many people are playing Helldivers 2 this minute?" "Will Hades II run properly on my Steam Deck?"
The three game-finders (steam_discover, steam_should_i_buy, steam_recommend) work
without a key too, as long as you don't personalize them.
A free Steam Web API key (a minute to get)
unlocks the other 22 — the ones that read a specific account: library, playtime,
friends, achievements, wishlist, inventory. Add STEAM_USER too and "my"/"I" default to
you, so you never have to paste a SteamID:
Tip: this defaults to the current project. Add
--scope useronly if you want Steam in every project — that keeps its tools in context everywhere, so prefer per-project scope unless Steam is cross-cutting for you.
Claude Desktop — download steam-mcp.mcpb from the
latest release and open it
(Settings → Extensions). Both fields are optional; leave them blank for the keyless
tools and fill them in later.
Cursor / Cline / Windsurf and the manual pip setup are under Setup below.
Without a key, the account tools are still listed but marked
[unavailable: needs STEAM_API_KEY], so your assistant knows to reach for a keyless tool instead of failing at one it can't use.
Account / profile (needs a public profile; set STEAM_USER and "my"/"I" default
to you — no SteamID needed):
Account-independent (works for any game, no SteamID needed):
| Tool | What it returns | Needs key? |
|---|---|---|
steam_resolve_vanity_url | Vanity name / profile URL → SteamID64 | yes |
steam_get_player_summary | Status (Online/Away/In-Game…), current game, for 1–100 users | yes |
steam_get_friend_list | Friends enriched with name + live status | yes |
steam_find_friends_who_own | Which friends own (or are playing) a game — "who can I play X with" | yes |
steam_get_user_groups | The Steam groups/clans a user is in (name, URL, member count) | yes |
steam_plan_coop_night | Co-op games the host + friends all own (ranked by owners) — or mode="new" for fresh co-op games none of them own yet; with who's online now | yes |
steam_get_owned_games | Owned games with total/recent hours (sortable) | yes |
steam_analyze_library | Backlog, playtime distribution, abandoned games across a whole library | yes |
steam_get_recently_played_games | Last-2-weeks playtime | yes |
steam_get_steam_level | Steam community level | yes |
steam_get_player_bans | VAC / game / community / economy bans | yes |
steam_get_player_achievements | Per-game unlocked vs locked achievements | yes |
steam_get_game_schema | A game's achievement definitions (names, descriptions, hidden flag) | yes |
steam_get_global_achievement_percentages | Achievement rarity (global %) | no |
steam_get_user_game_stats | A user's in-game stats (kills, wins, distance…) for a game | yes |
steam_get_rarest_unlocks | A player's rarest achievement unlocks in a game (by global rarity) | yes |
steam_search_apps | Game title → appid (+ price) | no |
steam_discover | Find/recommend games by tag, price, sale, platform, release window ("last N days") — optionally personalized to a user's taste (excludes games they own) | no* |
steam_should_i_buy | Buying brief — price, lifetime + recent reviews (trend), tags, Metacritic, and your taste match | no* |
steam_recommend | Recommend games like a seed game or your taste, with the shared tags as the "why" | no* |
steam_get_app_details | Full store details — play modes/co-op, controller, DLC, languages, requirements, Metacritic, Steam Deck | no |
steam_get_deck_compatibility | Steam Deck rating (Verified/Playable/Unsupported) + the per-criterion test results | no |
steam_get_dlc | A game's DLC, with live prices and what's on sale | no |
steam_get_app_regional_pricing | A game's price across regions (each in local currency) | no |
steam_get_workshop_item | Workshop item metadata (game, tags, subscribers, favorites, views) | no |
steam_get_app_tags | A game's top community tags (Souls-like, Roguelike, Cozy…) | no |
steam_get_app_reviews | Lifetime verdict, +/- counts, sample reviews; optional recent (last-N-days) score via review_filter='recent' | no |
steam_analyze_game | One-call brief on a game: price, all-time and 30-day reviews, players now, Deck, tags, the latest update's effect on reviews, and news | no |
steam_compare_games | Compare 2-5 games side by side: price, reviews and their trend, players now, Steam Deck, co-op, tags | no |
steam_get_update_impact | Did an update change the reviews? Review score in the days before vs after each recent patch | no |
steam_analyze_app_reviews | Analyze thousands of reviews: sentiment over time, by language and playtime, Steam Deck, key activations vs Steam purchases, refunds, developer replies | no |
steam_get_featured_specials | Games currently on sale (regional) | no |
steam_get_store_highlights | Top sellers, new releases, or coming soon | no |
steam_get_wishlist | A user's wishlist, with live prices + what's on sale | yes |
steam_get_inventory | A user's inventory — game items or Steam Community items (cards, emoticons…), with tradable/marketable flags | yes† |
steam_get_market_price | Community Market price for an item (lowest/median/24h volume) + type/rarity + CS2 condition | no |
steam_get_player_badges | Badges + the XP breakdown behind a Steam level | yes |
steam_get_package_details | Package/bundle price + included games | no |
steam_compare_players | Shared games between two users, with playtime | yes |
steam_get_current_players | Live concurrent player count | no |
steam_get_app_news | Recent news / patch notes | no |
Every tool supports response_format: "markdown" (default) or "json", and all are
annotated readOnlyHint: true. Prefer the composite tools (steam_should_i_buy,
steam_recommend, steam_discover, steam_plan_coop_night) over chaining several
calls, and ask for json only when you need to parse fields. Tools that read
localized text accept a language parameter — a Steam language name like french or
schinese (default english).
*
steam_discover,steam_should_i_buy, andsteam_recommendneed no key for the store data; their personalization (passing asteamidto use a user's library/taste) requires a key and a public profile.†
steam_get_inventoryreads a keyless endpoint, but it still has to know whose inventory — and turning a vanity name (orSTEAM_USER) into a SteamID64 is itself a keyed call. Pass a raw 17-digit SteamID64 and it works with no key.
Beyond tools, the server ships prompts (guided one-click flows that orchestrate the tools) and resources (reference Steam entities by URI):
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/steam-read-only)<a href="https://allmcps.com/mcp/steam-read-only"><img src="https://allmcps.com/api/badge/steam-read-only?style=directory" alt="Steam (read Only) on AllMCPs" /></a>