steam-library-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STEAM_ID_64 | Yes | Default SteamID64 to query. | |
| STEAM_API_KEY | Yes | Steam Web API key. Never commit this. | |
| STEAM_CACHE_DIR | No | Cache location. | OS user cache dir |
| STEAM_VANITY_NAME | No | Optional vanity profile name. | |
| STEAM_LOCAL_DB_PATH | No | MCP-owned local notes/backlog/tags DB path. | cache dir JSON |
| STEAM_STORE_COUNTRY | No | Country used for Store metadata. | US |
| STEAM_ENABLE_ACTIONS | No | Registers the optional action/local-write tools. Leave unset/false for a 21-tool read-only surface. | false |
| STEAM_STORE_LANGUAGE | No | Language used for Store metadata. | english |
| STEAM_ACTION_LOG_PATH | No | Local action audit log path. | cache dir JSONL |
| STEAM_ALLOW_UNINSTALL | No | Separately enables opening Steam's native uninstall confirmation flow. | false |
| STEAM_CACHE_TTL_HOURS | No | Cache TTL for Steam API responses. | 24 |
| STEAM_WEEKLY_DISCOVERY | No | Include local taste-based new-game recommendations in weekly briefs. | true |
| STEAM_ALLOW_LAUNCH_ARGS | No | Reserved safety flag. The tools do not expose arbitrary launch args by default. | false |
| STEAM_ALLOW_LOCAL_NOTES | No | Allows writes to the MCP local database only. | true |
| STEAM_TASTE_SAMPLE_SIZE | No | Most-played owned games sampled for the local taste profile. | 30 |
| STEAM_ALLOW_BROWSER_OPEN | No | Allows tools that open Steam web pages in your browser when actions are enabled. | true |
| STEAM_LOCAL_DB_MAX_BYTES | No | Maximum serialized local notes database size. | 5000000 |
| STEAM_LOCAL_LIBRARY_PATH | No | Override local Steam library path or libraryfolders.vdf. | auto-detect |
| STEAM_REQUEST_TIMEOUT_MS | No | Steam API request timeout. | 15000 |
| STEAM_WEEKLY_REPORT_PATH | No | Suggested destination used by the weekly Python companion. | cache dir Markdown |
| STEAM_WISHLIST_STATE_PATH | No | Persistent local wishlist comparison state. | cache dir JSON |
| STEAM_ACTION_LOG_MAX_BYTES | No | Rotates the active action log before it exceeds this size. | 2000000 |
| STEAM_ALLOW_STEAM_PROTOCOL | No | Allows validated Steam protocol opens when actions are enabled. Uninstall still needs its separate flag. | true |
| STEAM_LOCAL_NOTES_PER_GAME | No | Maximum notes retained per game. | 200 |
| STEAM_LOCAL_NOTE_MAX_CHARS | No | Maximum characters in one note. | 10000 |
| STEAM_REQUIRE_CONFIRMATION | No | Requires exact confirmation text for browser and local write actions. Launch/install always require exact confirmation. | true |
| STEAM_ACTION_LOG_MAX_BACKUPS | No | Number of rotated action-log files retained. | 3 |
| STEAM_DISCOVERY_MAX_CANDIDATES | No | Featured Store candidates enriched and scored per discovery run. | 24 |
| STEAM_INCLUDE_PLAYED_FREE_GAMES | No | Include played free games in owned-game results. | true |
| STEAM_WISHLIST_METADATA_MAX_APPS | No | Maximum wishlist apps enriched with Store release/demo metadata per check. | 100 |
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_get_profileC | Get my Steam profile summary from Steam ID or vanity name. |
| steam_resolve_vanity_urlB | Resolve a Steam vanity URL name to SteamID64. |
| steam_get_owned_gamesD | Get my owned Steam games. |
| steam_search_libraryC | Search my owned Steam games by fuzzy name/query. |
| steam_get_gameC | Get details for one game in my library by appid or name. |
| steam_get_recently_playedC | Get my recently played Steam games. |
| steam_get_achievementsC | Get achievement progress for a specific appid or game name. |
| steam_get_installed_gamesC | List Steam games installed locally on this computer. |
| steam_library_statsC | Summarize my Steam library. |
| steam_recommend_from_libraryC | Recommend games from my Steam library based on mood, available time, and discovery preference. |
| steam_get_wishlistC | Get a Steam wishlist through Steam's first-party but undocumented wishlist service and Store metadata endpoints. |
| steam_check_wishlist_updatesC | Compare the current wishlist with a local snapshot for releases, demos, date changes, additions, removals, and playtest/beta/demo news signals. |
| steam_game_briefB | Build one useful Store brief with price, release state, review summary, DLC, demos, platforms, controller/co-op features, and ownership/install status. |
| steam_find_dealsA | Find current wishlist and featured Store discounts, prioritizing the wishlist and excluding already-owned featured games. |
| steam_discover_gamesB | Analyze the most-played part of the library into a transparent taste profile, then recommend new featured games and forgotten owned games. |
| steam_storage_commanderA | Audit installed-game storage, find large games, or build a non-destructive make-room/uninstall plan using size, playtime, recency, backlog, and protected local tags. |
| steam_update_centerA | Read local appmanifest update and schedule evidence without modifying Steam's private queue or configuration. |
| steam_achievement_objectivesA | List locked achievement objectives and global rarity, with explicit opt-in before revealing hidden titles/descriptions exposed by Steam's schema. |
| steam_plan_game_nightA | Find games shared with selected or currently visible friends, with online status and co-op/multiplayer Store metadata when available. |
| steam_weekly_briefA | Create a Markdown-ready weekly brief with wishlist releases, demos, price drops, beta/playtest news, forgotten owned games, and optional new-game discovery. |
| steam_refresh_cacheC | Refresh cached Steam API data. |
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 21 tools
Each tool targets a unique aspect of Steam library management, from listing games and achievements to managing storage and creating weekly briefs. Despite several get_-prefixed tools, they clearly differ by the specific data retrieved (e.g., achievements vs. owned games). No two tools appear to have overlapping functionality.
All tool names follow a consistent pattern: the steam_ prefix followed by descriptive, snake_case phrases. Verbs like get_, find_, and check_ are used predictably, and even compound names like steam_achievement_objectives or steam_plan_game_night are clearly readable. No mixing of conventions occurs.
With 21 tools, the server covers a broad range of library-related operations without being overwhelming. Each tool addresses a distinct need, and the count feels proportional to the complexity of Steam's library feature set.
The tools provide comprehensive coverage of library operations: retrieval, search, statistics, achievements, wishlist, storage, updates, recommendations, and social planning. While write operations like removing games are absent, the server's scope aligns with a library-focused assistant, leaving few obvious gaps.