Provides access to a user's Steam library, enabling queries for game playtime, recently played titles, and detailed game metadata including genres, tags, Metacritic scores, and pricing.
steam-mcp
A local Model Context Protocol (MCP) server that connects Claude to your Steam library. Ask natural-language questions about your games without ever touching the API yourself.
"What have I been playing lately?"
"Suggest something from my backlog I haven't touched yet."
"How many hours have I put into RPGs?"
"Tell me about Elden Ring."Tools
Tool | What it does |
| Your full game library — title, playtime, last played |
| Games played in the last 2 weeks |
| Filter by name, playtime range, or unplayed status |
| Store metadata — genres, tags, Metacritic score, price |
| Clear the cache to fetch fresh data from Steam |
Requirements
Node.js 18+
A Steam account with a public profile and library
A Steam Web API key (free, takes 30 seconds to get)
Setup
1. Get a Steam API key
Go to steamcommunity.com/dev/apikey, log in, and register a key. The domain field can be anything (e.g., localhost).
2. Find your Steam ID
You need either:
Your vanity URL username — the custom part of your profile URL:
steamcommunity.com/id/YOUR_USERNAMEYour 64-bit Steam ID — find it at steamid.io if you don't have a vanity URL
3. Make your profile public
In Steam: your profile → Edit Profile → Privacy Settings → set My Profile and Game details to Public.
4. Run setup
npx steam-mcp setupThis validates your credentials and writes the Claude Desktop config automatically. Restart Claude Desktop when it's done.
Find your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add to the mcpServers section:
{
"mcpServers": {
"steam-mcp": {
"command": "npx",
"args": ["-y", "steam-mcp"],
"env": {
"STEAM_API_KEY": "your_api_key_here",
"STEAM_ID": "your_vanity_url_or_64bit_id"
}
}
}
}Local development
git clone https://github.com/jkiley129/steam-mcp.git
cd steam-mcp
npm install
cp .env.example .env
# Edit .env with your API key and Steam ID
npm run buildTo use the local build with Claude Desktop, point the config at the built file:
{
"mcpServers": {
"steam": {
"command": "node",
"args": ["/absolute/path/to/steam-mcp/dist/index.js"],
"env": {
"STEAM_API_KEY": "your_api_key_here",
"STEAM_ID": "your_vanity_url_or_64bit_id"
}
}
}
}Configuration
Environment variable | Required | Description |
| Yes | Your Steam Web API key |
| Yes | Your 64-bit Steam ID or vanity URL username |
| No | Override cache directory (default: |
Caching
Steam data is cached locally to keep responses fast and avoid hitting rate limits:
Data | Cache TTL |
Library | 1 hour |
Recently played | 30 minutes |
Game details | 24 hours |
Use the refresh_library tool to clear the cache immediately (e.g., after buying new games).
Troubleshooting
"Steam returned no library data" Your Steam profile or game library is set to private. Go to Steam → your profile → Edit Profile → Privacy Settings and set both to Public.
"Could not resolve Steam vanity URL"
Check that STEAM_ID matches the username in your Steam profile URL (steamcommunity.com/id/YOUR_USERNAME). Alternatively, use your numeric 64-bit Steam ID.
"Could not validate Steam API key" Verify your API key at steamcommunity.com/dev/apikey. Keys are tied to your Steam account login.
Tools not showing in Claude
Restart Claude Desktop fully (quit from the system tray, not just close the window) after editing the config file. Check that Node.js 18+ is installed by running node --version in a terminal.
License
MIT