Steam MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STEAM_API_KEY | No | Steam Web API key. Get one free at https://steamcommunity.com/dev/apikey. Some tools require this; others work without it. |
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_getAppDetailsA | Get Steam store data for an app including price, description, reviews, tags, platforms, and system requirements. No API key required. |
| steam_searchAppsA | Search the Steam store for games and apps by name or keyword. Returns app IDs, names, icons, and price info. No API key required. |
| steam_getPlayerCountA | Get the current number of concurrent players for a Steam app. No API key required. |
| steam_getAchievementStatsA | Get global achievement unlock percentages for a Steam app. Shows how many players have unlocked each achievement. No API key required. |
| steam_getPlayerSummaryA | Get a player's Steam profile including display name, avatar, online status, and profile visibility. Requires STEAM_API_KEY. |
| steam_getOwnedGamesA | Get a player's game library with playtime data. Shows all owned games, total playtime, and recent playtime. Requires STEAM_API_KEY. |
| steam_getWorkshopItemA | Get details for a Steam Workshop item including title, description, tags, preview images, and subscriber count. No API key required. |
| steam_queryWorkshopB | Search and browse Steam Workshop items for a given app. Filter by text, tags, and sort order. Requires STEAM_API_KEY. |
| steam_getLeaderboardEntriesA | Get leaderboard scores and rankings for a Steam app. Pass the numeric leaderboard ID from your Steamworks dashboard, not the name. Uses the partner API (partner.steam-api.com) which requires a publisher API key with server IP allowlisted in Steamworks. Supports global, around-user, and friends-only views. |
| steam_resolveVanityURLA | Convert a Steam vanity URL (custom profile name) to a 64-bit Steam ID. Requires STEAM_API_KEY. |
| steam_createLobbyA | Get code examples and documentation for creating Steam multiplayer lobbies. Lobby creation is a client-side SDK operation (ISteamMatchmaking) and cannot be done via HTTP API. This tool returns ready-to-use code for C++, C#, and GDScript. |
| steam_uploadWorkshopItemA | Get code examples and documentation for uploading new Steam Workshop items. Workshop uploads require the Steamworks SDK (ISteamUGC) running in a client or dedicated tool — there is no HTTP upload endpoint. This tool returns ready-to-use code for C++, C#, and GDScript. |
| steam_updateWorkshopItemA | MUTATES LIVE WORKSHOP ITEM METADATA. Default dry_run=true; requires confirm=true to send. Update metadata for an existing Steam Workshop item (title, description, visibility, tags) via the partner API. Does not change the store page listing. Requires a publisher API key with server IP allowlisted. File content updates require the SDK. |
| steam_setAchievementA | MUTATES LIVE ACHIEVEMENT STATE. Default dry_run=true; requires confirm=true to send. Set (unlock) an achievement for a player via the partner API. Intended for dev/test use. Requires a publisher API key with server IP allowlisted in Steamworks partner settings. |
| steam_uploadLeaderboardScoreA | MUTATES LIVE LEADERBOARD ENTRY. Default dry_run=true; requires confirm=true to send. Upload a score to a Steam leaderboard via the partner API. Requires a publisher API key with server IP allowlisted in Steamworks partner settings. |
| steam_grantInventoryItemA | MUTATES LIVE INVENTORY. Default dry_run=true; requires confirm=true to send. Grant an inventory item to a player via the partner API. Intended for dev/test or server-side rewards. Requires a publisher API key with server IP allowlisted in Steamworks partner settings. |
| steam_getReviewsA | Fetch user reviews for a Steam app with filters for language, sentiment, purchase type, and pagination. No API key required. |
| steam_getPriceOverviewA | Batch price check for multiple Steam apps in a specific region. Returns formatted price data including base price, discount, and final price. No API key required. |
| steam_getAppReviewSummaryA | Get review summary statistics for a Steam app: total positive/negative counts, review score, and score description. No individual reviews returned. No API key required. |
| steam_getRegionalPricingA | Get pricing for a Steam app across multiple regions/countries. Returns price, currency, and discount info for each region. No API key required. |
| steam_clearAchievementA | MUTATES LIVE ACHIEVEMENT STATE. Default dry_run=true; requires confirm=true to send. Clear (re-lock) an achievement for a player via the partner API. Intended for dev/test use. Requires a publisher API key with server IP allowlisted in Steamworks partner settings. |
| steam_getSchemaForGameA | Get the achievement and stat schema for a Steam app. Returns achievement internal names, display names, descriptions, and icon URLs, plus stat definitions. Useful for mapping internal ACH_ names to human-readable names. Requires STEAM_API_KEY. |
| steam_getNewsForAppA | Get recent news articles for a Steam app. Returns titles, URLs, contents, dates, and authors. No API key required. |
| steam_getLeaderboardsForGameA | List all leaderboards for a Steam app with their numeric IDs, names, and sort methods. Requires a free Steam Web API key (STEAM_API_KEY). No publisher access needed. |
| steam_getPlayerAchievementsA | Get a specific player's achievement unlock status and timestamps for a Steam app. The player's profile must be public. Requires STEAM_API_KEY. |
| steam_validateStoreAssetA | Validate a local store or library image against current Valve pixel sizes, format rules, and library-hero heuristics. No API key required. |
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 26 tools
Most tools are distinct by resource (achievements, workshop, leaderboards, store data), but there is some overlap: steam_getReviews vs steam_getAppReviewSummary vs steam_getAppDetails all return review-related data, and steam_getPriceOverview vs steam_getRegionalPricing both provide pricing. The mutation tools are clearly marked, but the read tools for reviews/pricing could be confused.
The tools follow a consistent steam_verbNoun pattern (e.g., steam_getReviews, steam_createLobby, steam_uploadWorkshopItem). Minor deviations include steam_resolveVanityURL (camelCase in the noun) and steam_validateStoreAsset (verb+noun but no direct resource prefix), but overall the pattern is predictable.
26 tools is on the high end for a single server, but Steam is a large platform with many distinct domains (store, player, achievements, workshop, leaderboards, pricing). The count is borderline heavy; some tools like steam_createLobby and steam_uploadWorkshopItem are documentation/code-sample tools rather than API operations, which inflates the count.
The server covers a broad range of Steam domains: store browsing, app details, reviews, pricing, player profiles, owned games, achievements, workshop, leaderboards, and news. Obvious gaps include no tool for searching players by name, no friend list access, and no way to update/delete workshop items beyond metadata (though that's an SDK limitation). Overall, the surface is fairly complete for common Steam API use cases.