Connects Claude to Steam's public Web API with 34 read-only tools covering both account data and storefront queries. You get friends lists with live status, playtime breakdowns, achievement tracking, and inventory inspection on the profile side. For discovery it pulls reviews, current player counts, sales, DLC pricing, Steam Deck compatibility, and Workshop metadata. The co-op planner cross-references friends' libraries to find shared games, and the recommendation tools filter by tags and price while optionally weighting against your play history. Requires a free Steam API key for profile lookups but works without one for store browsing. Useful when you need structured Steam data in a conversational workflow instead of clicking through the web interface.
A read-only Model Context Protocol server for the public Steam Web API and storefront — 37 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 · bring your own key · open source. Nobody logs in; the only credential is the free Steam Web API key you set yourself, and the server never writes, trades, posts, launches games, or makes purchases.
Install uv, get a
free Steam Web API key, then:
Claude Code
claude mcp add steam --env STEAM_API_KEY=YOUR_KEY -- uvx steam-mcp
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, open it
(Settings → Extensions), and paste your key.
Cursor / Cline / Windsurf and the manual pip setup are under Setup below.
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 full achievement/stat definitions | 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_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 | no |
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.
Beyond tools, the server ships prompts (guided one-click flows that orchestrate the tools) and resources (reference Steam entities by URI):
what_should_i_play, is_it_worth_buying, plan_game_night,
steam_deals, game_overview.steam://app/{appid} (store details) and steam://user/{steamid}
(profile + live status).Recent reviews: Steam's API only exposes a lifetime review summary — there is no "last 30 days" field. So
steam_get_app_reviewswithreview_filter='recent'computes that score itself by paginating the newest reviews withinday_rangedays (default 30). For games with a very high volume of recent reviews it counts up to ~600 and marks the resultsampled: true.
Market prices:
steam_get_market_priceuses Steam's Community Market endpoints, which are undocumented and tightly rate-limited. Results are cached briefly; an item with no current listings reports its price as unavailable.
Visit https://steamcommunity.com/dev/apikey, sign in, register a domain (any
domain you control works; localhost is commonly used for personal keys), and
copy the key. Usage is governed by the
Steam Web API Terms of Use.
The published package needs no checkout (Python 3.10+):
uvx steam-mcp # zero-install via uv (recommended)
# or
pip install steam-mcp # run as: python -m steam_mcp.server
The server reads your key from the STEAM_API_KEY environment variable.
Optionally, set STEAM_USER to your own Steam name (vanity name, SteamID64, or
profile URL) so the "about me" tools — your library, wishlist, achievements,
friends — default to you whenever you don't name a user. It's a public profile
name, not a secret, and you can still pass a steamid to any call to override it.
Claude Code
claude mcp add steam --env STEAM_API_KEY=YOUR_KEY --env STEAM_USER=your_steam_name -- uvx steam-mcp
STEAM_USERis optional — drop the second--envif you'd rather give a SteamID to each call.
Claude Desktop — install steam-mcp.mcpb from the
latest release via
Settings → Extensions and paste your key (and, optionally, your Steam name).
Everything else (Claude Desktop config, Cursor, Cline, Windsurf, VS Code, …) — drop this block into the client's MCP config file:
{
"mcpServers": {
"steam": {
"command": "uvx",
"args": ["steam-mcp"],
"env": {
"STEAM_API_KEY": "YOUR_KEY_HERE",
"STEAM_USER": "your_steam_name"
}
}
}
}
Config locations: Claude Desktop claude_desktop_config.json (%APPDATA%\Claude\
on Windows, ~/Library/Application Support/Claude/ on macOS); Cursor
.cursor/mcp.json; Cline cline_mcp_settings.json. Restart the client and the
Steam tools appear. Running from a source checkout instead? Use
"command": "python", "args": ["-m", "steam_mcp.server"].
Read-only, official-Steam-only, and bring-your-own-key. In short:
STEAM_API_KEY; never written to disk,
logged, cached, or put in output (and redacted from error messages).api.steampowered.com / store.steampowered.com / steamcommunity.com (SSRF
guard), with per-host rate limiting and retry/backoff.extra="forbid"); no data kept between requests
beyond a small TTL cache of non-user store data.Full details and how to report issues are in SECURITY.md.
steam-mcp follows Semantic Versioning. As of 1.0, the
following are the stable public surface — they won't change without a major
(2.0) release:
response_format: "json") — names, types, and structuresteam://app/{appid}, steam://user/{steamid})Within a major version, minor releases may add tools, prompts, resources, optional parameters, and JSON fields; patch releases are bug fixes only. The Markdown output wording, internal implementation, caching behavior, and which Steam endpoints back a given tool may change at any time and are not part of the contract.
MIT. Not affiliated with Valve. "Steam" is a trademark of Valve Corporation.
STEAM_API_KEY*secretYour personal Steam Web API key (free at https://steamcommunity.com/dev/apikey).
explorium-ai/vibeprospecting-mcp
io.github.compuute/lead-enrichment
dev.workers.selbyventurecap.cf-worker/apollo-salesforce-mapper
io.github.br0ski777/company-enrichment
com.mcparmory/apollo
mambalabsdev/mcp-gtm-tech-stack-signal-scraper