steam-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STEAM_API_KEY | Yes | Your Steam Web API key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| steam_resolve_vanity_urlA | Converts a Steam vanity URL (custom profile name) to a SteamID64. Use this when you have a username like "gabelogannewell" and need the numeric SteamID64 required by most other Steam tools. |
| steam_get_player_summaryA | Fetches the public profile of a Steam player. Accepts a SteamID64 (e.g. "76561197960287930") or a vanity URL (e.g. "gabelogannewell"). Returns: display name, avatar URL, online status, last online date, account creation date, country, currently playing game, and profile visibility. Returns limited data if the profile is private. |
| steam_get_friend_listA | Returns the friend list of a Steam player. Accepts a SteamID64 or vanity URL. Shows up to 50 most recent friends with names and the date they became friends. Set resolve_names=false to skip name resolution and return SteamIDs only. Returns an error message if the profile or friend list is set to private. |
| steam_get_player_bansA | Checks VAC (Valve Anti-Cheat), game ban, and community ban status for one or more Steam accounts. Accepts a single SteamID64 or an array of up to 100 SteamID64s. Returns ban counts, days since last ban, and economy ban status for each account. |
| steam_get_owned_gamesA | Returns the game library of a Steam player. Accepts SteamID64 or vanity URL. Supports filtering to played-only, sorting by playtime/name/last_played, and limiting results (default: 50, max: 500). Returns game names, AppIDs, and total playtime in a table. Returns an error if the library is set to private. |
| steam_get_recently_playedA | Returns games played by a Steam user in the last 2 weeks. Accepts SteamID64 or vanity URL. Returns up to 20 games with recent and total playtime. Returns an error if the profile is private. |
| steam_get_achievementsA | Returns a player's achievement progress for a specific game. Accepts SteamID64 or vanity URL, and a Steam AppID (e.g. 730 for CS2). Use status="locked" to see missing achievements, "unlocked" for completed ones, "all" for everything. Returns total progress percentage and a table of achievements. Requires the player's game stats to be public. |
| steam_get_global_achievement_statsA | Returns global completion rates for all achievements in a game. Accepts a Steam AppID. Shows the 10 easiest and 10 hardest achievements with their global unlock percentages. Useful for understanding how rare an achievement is across all players. |
| steam_get_game_schemaA | Returns the full schema of stats and achievements defined by a game. Accepts a Steam AppID. Returns achievement names, descriptions, hidden status, and icon URLs. Also returns the count of available stats. Useful before querying player-specific achievement data. |
| steam_search_gameA | Searches for games on Steam by name. Returns AppID, name, current price, discount percentage, and Metacritic score. Use this to find a game's AppID before calling other tools that require it. Example: search "Counter-Strike" to get AppID 730. |
| steam_get_current_playersA | Returns the number of players currently in-game for a Steam app. Accepts a Steam AppID. Useful for checking if a game is still active/popular. Example: AppID 730 (CS2) typically has 500k+ concurrent players. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct aspect of the Steam API: profile, friends, bans, games, achievements, and search. There is no meaningful overlap; even closely related tools like owned games vs. recently played or player achievements vs. global stats are clearly separated by their descriptions.
All tools follow the uniform pattern 'steam_<verb>_<object>', with verbs consistently being 'get' (9 times), 'resolve' (1), and 'search' (1). The naming is predictable and makes the function of each tool clear at a glance.
With 11 tools, the server is well-scoped for a Steam integration. It covers the most common player and game data endpoints without excessive granularity, fitting comfortably within the ideal 3-15 tool range.
The tool set covers the main Steam API surface: profile info, friends, bans, owned/recent games, player counts, achievements, schema, and game search. Minor gaps exist, such as no direct game details endpoint beyond search results and no player level/badges, but these are not critical for most workflows.