Steam MCP Server
The Steam MCP Server interacts with the Steam Web API, enabling you to retrieve and manage Steam-related data for players and games.
Social & Profile
Get player summaries, friends lists, Steam level, badges, badge progress, and ban status
View user group memberships and resolve vanity URLs to 64-bit Steam IDs
Game Library
List owned games with playtime stats (with pagination/sorting), recently played games, and game details (description, price, requirements)
Check if a game is played via Family Sharing and search the Steam catalog by name
Achievements & Stats
View player achievements and in-game stats for specific games
Get global achievement percentages, aggregated global game stats, and achievement/stat schemas
Summarize achievement progress, list perfect games (100% achievements)
Game Info
Fetch latest news and patch notes, current player counts, and game server info at a given IP
Check if a specific app version is up to date
Inventory
Access player inventories for any game (requires public profile), with specialized tools for TF2, CS2/CSGO, and Dota 2
Wishlist
Retrieve a player's wishlist (with priorities and dates added) and check how many users have wishlisted a specific game
Trading (requires API key with trade permissions)
View active/historical trade offers, trade summaries, and specific trade offer details
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Steam MCP Server show me my recently played games"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Steam MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with the Steam Web API.
Setup
1. Get a Steam API Key
Obtain an API key from Steam's developer portal.
2. Install Dependencies
npm install3. Build
npm run build4. Configure Your MCP Client
Claude Code
Add to your Claude Code settings file (~/.claude/settings.json):
{
"mcpServers": {
"steam": {
"command": "node",
"args": ["/path/to/steam-mcp-server/dist/index.js"],
"env": {
"STEAM_API_KEY": "your-api-key-here",
"STEAM_ID": "your-64-bit-steam-id"
}
}
}
}Or use npx (no build required):
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "@sharkusmanch/steam-mcp-server"],
"env": {
"STEAM_API_KEY": "your-api-key-here",
"STEAM_ID": "your-64-bit-steam-id"
}
}
}
}Claude Desktop
Add to your Claude Desktop configuration:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "@sharkusmanch/steam-mcp-server"],
"env": {
"STEAM_API_KEY": "your-api-key-here",
"STEAM_ID": "your-64-bit-steam-id"
}
}
}
}Cursor
Add to Cursor's MCP settings (.cursor/mcp.json in your project or global config):
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "@sharkusmanch/steam-mcp-server"],
"env": {
"STEAM_API_KEY": "your-api-key-here",
"STEAM_ID": "your-64-bit-steam-id"
}
}
}
}Windsurf
Add to Windsurf's MCP configuration (~/.windsurf/mcp.json):
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "@sharkusmanch/steam-mcp-server"],
"env": {
"STEAM_API_KEY": "your-api-key-here",
"STEAM_ID": "your-64-bit-steam-id"
}
}
}
}Related MCP server: mcp-server-steam
Environment Variables
Variable | Required | Description |
| Yes | Your Steam Web API key |
| No | Default Steam ID to use when not specified in tool calls |
| No | Per-request timeout for Steam API calls in milliseconds (default |
When STEAM_ID is set, you can call tools like get_owned_games without passing a Steam ID - it will use your default profile automatically.
Reliability & Pagination
Every Steam API request is bounded by a timeout (
STEAM_HTTP_TIMEOUT_MS) and automatically retries transient failures (timeouts, HTTP 429, and 5xx) with exponential backoff. Non-retriable errors (401/403/404) fail fast with a clear, actionable message, and failures are returned withisError: true.List-returning tools accept
limitandoffsetand return a consistent envelope with the pre-slice total and ahas_moreflag, e.g.{ "total_games": 412, "returned": 50, "offset": 0, "has_more": true, "games": [...] }.get_inventoryadditionally returns anext_cursor(Steamstart_assetid) for deep paging.search_appsuses Steam's relevance-ranked storefront search (no full-catalog download), so it returns the top matches quickly and reliably.
Available Tools
Social & Profile
Tool | Description |
| Get player profile info (name, avatar, status, current game) |
| Get a player's friends list |
| Get player's Steam account level |
| Get player's badges, XP, and level progression |
| Get trading card collection progress |
| Check for VAC bans, game bans, or trade bans |
| Get Steam groups a player belongs to |
| Convert vanity URL to 64-bit Steam ID |
Game Library
Tool | Description |
| Get all games owned with playtime stats (supports pagination) |
| Get games played in last 2 weeks |
| Get detailed game info (description, price, requirements) |
| Check if playing via Steam Family Sharing |
| Search Steam catalog by game name |
Achievements & Stats
Tool | Description |
| Get player's achievements for a game |
| Get player's statistics for a game |
| Get global achievement unlock rates |
| Get global aggregated stats for a game |
| Get games where player has 100% achievements |
| Get condensed achievement progress across games |
| Get achievement/stat definitions for a game |
Game Info
Tool | Description |
| Get latest news and patch notes for a game |
| Get current number of players in a game |
| Get game servers at a specific IP |
| Check if an app version is up to date |
Inventory
Tool | Description |
| Get inventory for any game (requires public profile) |
| Get Team Fortress 2 inventory |
| Get CS2/CSGO inventory |
| Get Dota 2 inventory |
Finding Your Steam ID
Use resolve_vanity_url with your custom profile URL, or find your 64-bit Steam ID at steamid.io.
License
MIT
Available Tools
34 toolscheck_app_updateC
Check if a specific version of an app is up to date
Inputs: app_id (required), version (required).
get_achievementsC
Get a player's achievements for a specific game
Inputs: app_id (required), steam_id.
get_achievement_summaryB
Get a summary of achievement progress across all games or specific games
Inputs: steam_id, app_ids.
get_badge_progressB
Get progress on community badge crafting (trading cards)
Inputs: steam_id, badge_id.
get_badgesB
Get a player's Steam badges with game names, XP, and level progression
Inputs: steam_id, include_game_names.
get_csgo_inventoryB
Get a player's CS2/CSGO inventory (via official API)
Inputs: steam_id.
get_dota2_inventoryC
Get a player's Dota 2 inventory (via official API)
Inputs: steam_id.
get_friends_listB
Get a player's Steam friends list with names and relationship info
Inputs: steam_id, include_info.
get_game_detailsC
Get detailed information about a Steam game including description, price, and requirements
Inputs: app_id (required).
get_game_newsC
Get latest news and patch notes for a game
Inputs: app_id (required), count, max_length.
get_game_schemaB
Get the achievement and stat schema for a game (names, descriptions, icons)
Inputs: app_id (required).
get_game_statsC
Get a player's statistics for a specific game
Inputs: app_id (required), steam_id.
get_global_achievement_percentagesB
Get global achievement unlock percentages for a game
Inputs: app_id (required).
get_global_game_statsB
Get global aggregated stats for a game (requires knowing stat names from schema)
Inputs: app_id (required), stat_names (required).
get_inventoryB
Get a player's inventory for any game (requires public profile)
Inputs: app_id (required), steam_id, context_id, count.
get_owned_gamesA
Get games owned by a player with playtime statistics. Use limit/offset for pagination.
Inputs: steam_id, include_free_games, limit, offset, +1 more.
get_perfect_gamesA
Get games where the player has unlocked ALL achievements (100% completion)
Inputs: steam_id.
get_player_bansC
Check if a player has VAC bans, game bans, or trade bans
Inputs: steam_id.
get_player_countB
Get the current number of players in a game
Inputs: app_id (required).
get_player_summaryB
Get Steam player profile information including name, avatar, status, and current game
Inputs: steam_id.
get_recently_playedB
Get games played by a user in the last two weeks
Inputs: steam_id, count.
get_servers_at_addressC
Get game servers running at a specific IP address
Inputs: address (required).
get_steam_levelC
Get a player's Steam account level
Inputs: steam_id.
get_tf2_inventoryC
Get a player's Team Fortress 2 inventory (via official API)
Inputs: steam_id.
get_trade_historyB
Get completed trade history with partner names. Requires API key with trade permissions.
Inputs: max_trades, include_failed, include_partner_names.
get_trade_offerB
Get details of a specific trade offer by ID. Requires API key with trade permissions.
Inputs: trade_offer_id (required).
get_trade_offersB
Get active trade offers with partner names. Requires API key with trade permissions.
Inputs: get_sent, get_received, active_only, include_partner_names.
get_trade_offers_summaryA
Get a summary of pending trade offers (counts only). Requires API key with trade permissions.
Inputs: no named parameters.
get_user_groupsB
Get the Steam groups a player is a member of
Inputs: steam_id.
get_wishlistA
Get a player's Steam wishlist with game names, priorities, and dates added
Inputs: steam_id, include_names.
get_wishlist_item_countA
Get the number of users who have a specific game on their wishlist
Inputs: app_id (required).
resolve_vanity_urlA
Convert a Steam vanity URL (custom profile name) to a 64-bit Steam ID
Inputs: vanity_url (required).
search_appsA
Search for Steam apps by name (searches the full Steam catalog)
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 34 tools
Most tools have clearly distinct purposes targeting specific resources like achievements, inventories, player data, or trade operations. However, some overlap exists between inventory tools (e.g., get_inventory vs. game-specific inventories like get_csgo_inventory) and between trade-related tools (get_trade_offers vs. get_trade_offers_summary), which could cause minor confusion.
All tools follow a consistent verb_noun naming pattern with clear, descriptive names. The pattern is uniformly applied across all 34 tools, using verbs like 'get', 'check', 'resolve', and 'search' followed by specific nouns, making them predictable and easy to understand.
With 34 tools, the count feels excessive for a Steam API server, leading to potential bloat and complexity. While Steam has many features, the server could benefit from consolidation or better scoping, as some tools (e.g., multiple trade-related tools) might be redundant or overly granular for typical agent use cases.
The tool set provides comprehensive coverage of the Steam domain, including player profiles, games, achievements, inventories, trades, and community features. It supports CRUD-like operations where applicable (e.g., fetching data) and covers key workflows without obvious gaps, ensuring agents can handle most Steam-related tasks effectively.
Maintenance
Related MCP Connectors
Steam games, Dev.to articles, events and podcasts as agent tools.
Search and read public data from X/Twitter, Reddit, YouTube, Instagram, TikTok, Facebook, Threads, Bluesky, Trustpilot, Amazon, Google Maps, news, forums and the web. 90+ read-only tools plus ready-made research playbooks (lead finding, brand monitoring, review mining). Hosted: connect with an API key; 50 free requests per endpoint each month.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Search 16,000+ API operations and 95 built tools by need, then call any of them by name
Related MCP Servers
- AlicenseAqualityCmaintenanceExposes Steam Web API tools as MCP resources for Claude Code, Claude Desktop, and Gemini CLI, enabling profile lookups, game searches, achievement tracking, and more.1116 npm1MIT
- AlicenseAqualityDmaintenanceIntegrates with Steam Web API to enable querying user profiles, game libraries, store data, and community features like reviews and workshop items.16MIT
- AlicenseAqualityBmaintenanceEnables interaction with Steam: search games, get store details, reviews, prices, discounts, news, and player profiles, libraries, and achievements via the Steam Web API.26611 npm5MIT
- AlicenseNot gradedqualityBmaintenanceProvides Steam Web API integration for querying owned games, player achievements, app news, and store details. Part of the Pipeworx MCP gateway enabling natural language queries to Steam data.297 npmMIT