MCP Server for Steam Web API — player profiles, game library, achievements, news, friend lists, and store search.
Steam MCP has 20 well-named tools with consistent verb_noun patterns (get_*, search_*, resolve_*). All tools have descriptions (avg ~120 chars, within baseline 34-392 range). Input schemas are present and typed for all tools. However, output schemas are NOT documented, critical gap per pattern:tool. Parameter descriptions are present but often minimal (e.g., 'Steam App ID of the game' lacks format/range guidance). No error handling guidance visible in tool definitions. Missing tool annotations (readOnlyHint, idempotentHint). All tools are READ_ONLY but this is not formally declared in schema.
Get a player's badge collection with XP breakdown, player level, and XP needed for next level.
Get Steam store featured categories: specials (sales), top sellers, new releases, and coming soon.
Get a player's Steam friends list with friendship dates. Requires public profile.
Get detailed info about a Steam game: price, description, genres, Metacritic score, platforms, release date, and more.
Get recent news articles for a Steam game.
Get reviews for a Steam game with sentiment summary (score, positive/negative counts) and individual review text.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Tool annotations missing. All 20 tools are READ_ONLY but lack readOnlyHint in schema. Agents cannot distinguish safe tools from destructive ones.
Parameter descriptions lack format/range guidance. E.g., 'Steam App ID of the game' does not specify numeric range or format. 'country_code' lacks pattern (2-letter ISO 3166-1 alpha-2).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Get the full list of stats and achievements for a game, including display names, descriptions, and icons.
Get the global unlock percentage for each achievement in a game — how rare each achievement is across all players.
Get a player's full Steam game library with playtime stats. Can sort by playtime or recently played.
Get a player's achievement progress for a specific game, including which achievements are unlocked and when.
Check a player's ban status — VAC bans, game bans, community ban, trade ban.
Get the number of players currently online for a specific Steam game.
Get a Steam player's profile info: display name, avatar, online status, currently playing game, account creation date, and more.
Get games a player has played in the last two weeks, with playtime breakdown.
Get a player's Steam account level.
Get a list of Steam group IDs a player belongs to. Requires public profile.
Get a player's individual game stats (kills, deaths, wins, etc.). Stats vary per game.
Get a player's Steam wishlist. Depends on the user's privacy settings.
Convert a Steam custom URL (vanity name) to a 64-bit Steam ID. For example, 'gabelogannewell' => '76561197960287930'.
Search the Steam store by game name. Returns matching apps with App IDs, prices, and Metascores.
No error handling guidance in tool definitions. SteamApiError exists in client.ts but tools do not document what errors can occur or how to recover (e.g., 'User not found. Try resolve_vanity_url() first.').
Pagination not fully documented. get_owned_games accepts 'limit' but no 'offset' or 'cursor' parameter visible. Response structure (total count, next_cursor) not documented.