An MCP server that exposes the Steam Web API to any AI harness (Claude, Cursor, Cline, ...)
Strong foundation with 15 well-named tools, comprehensive descriptions (avg 180 chars), and complete input schemas with types and descriptions. All tools follow verb_noun naming (get_*, search_*). Parameters include examples and constraints (min/max). However, output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is minimal; no recovery guidance or actionable error messages visible. Missing idempotency hints and confirmation patterns for sensitive operations (e.g., get_player_bans could expose ban status without user consent context).
Get full store details for a game/app by appid. Returns type, description, developers/publishers, release date, price, genres, platforms, Metacritic score, and review recommendation count. No API key required. Use search_store first if you only have a name.
Summarize store reviews for a game and show a sample of recent ones. Returns the overall review label (e.g. "Very Positive"), positive/total counts, and a sample of recent reviews with their up/down vote and the reviewer's playtime. No API key required.
Get the number of players currently in a game, right now. Returns the live concurrent player count for an app. Great for "how many people are playing X right now?". No API key required. Use search_store to find the appid from a game name.
List a player's friends, newest-friended first, with names. The friend list must be public. Names are resolved in one batch call. Requires an API key.
Get a game's achievement and stat definitions (its schema). Returns the game's display name, the count and names of its achievements, and any tracked stats. Use this to learn what achievements exist before checking a player's progress. Requires an API key.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining. E.g., get_owned_games returns a 'ranked table' but structure is opaque.
No error recovery guidance. Tools lack descriptions of failure modes and recovery steps. E.g., 'The profile must be public' is stated but no guidance on what to do if it's private.
Sensitive tools (get_player_bans, get_friend_list) lack permission/scope declarations and confirmation patterns. No indication these require user consent or should be gated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Show how rare each achievement is across all players of a game. Returns achievements sorted from rarest to most common (global unlock percentage). Great for "what's the rarest achievement in X?". No API key required.
Get the latest news / patch notes for a game. Returns recent announcements with title, source feed, date, a short excerpt, and a link. No API key required. Use search_store to find the appid from a game name.
List the games a player owns, with total playtime per game. Returns a ranked table plus library-wide totals (game count and summed hours). The profile's game details must be public. Requires an API key. Use `sort='recent'` to answer "what have they been playing lately?" and `limit` to control response size.
Show a player's achievement progress in one game. Returns overall completion (unlocked / total) and a list of unlocked achievements with dates. The profile must be public and must own the game. Requires an API key.
Check a player's VAC, game, economy, and community ban status. Useful for trust/reputation questions. Requires an API key.
Fetch a player's public profile summary. Returns persona name, online state, profile visibility, account creation date, country, and the game they're currently playing (if public). Private profiles return limited fields. Requires an API key.
List games a player has played in the last two weeks. Returns each game with its 2-week and lifetime playtime. The profile must be public. Requires an API key.
Get a player's Steam community level. Requires an API key.
Resolve a Steam custom (vanity) URL name to its SteamID64. Use this when you only have a person's custom URL name and need the numeric id that other tools consume. Requires an API key. Returns the SteamID64 in all common formats, or a not-found message.
Search the Steam store by name and return matching apps with appids. This is the entry point for most store workflows: turn a game name the user mentioned into the appid that get_app_details, get_app_reviews, and the stats tools require. No API key required.
Parameter descriptions lack format/constraint details. E.g., steam_id accepts '17-digit SteamID64' but no regex pattern or validation guidance. LLMs may pass invalid formats.
get_steam_level description is minimal (14 chars). Lacks context on what 'Steam community level' means or when to use it vs other player tools.