steam-mcp
Exposes Steam Web API tools as MCP resources for Claude Code, Claude Desktop, and Gemini CLI, enabling profile lookups, game searches, achievement tracking, and more.
README
steam-mcp
MCP server exposing Steam Web API tools to Claude Code, Claude Desktop and Gemini CLI.
Installation
One-liner (no clone needed)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/imnotStealthy/steam-mcp/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/imnotStealthy/steam-mcp/main/install.ps1 | iex
The installer will:
- Clone the repo and build it
- Ask for your Steam API key (get one free at https://steamcommunity.com/dev/apikey)
- Register the MCP server with Claude Code
- Install all
/steam:*slash commands
Restart Claude Code after install to activate.
Prerequisites
- Node.js 18+
- Claude Code CLI
- A Steam Web API key → https://steamcommunity.com/dev/apikey
Add to Claude Desktop
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"steam-mcp": {
"command": "node",
"args": ["/absolute/path/to/steam-mcp/dist/index.js"],
"env": {
"STEAM_API_KEY": "YOUR_KEY_HERE"
}
}
}
}
Restart Claude Desktop after saving.
Add to Gemini CLI
Edit ~/.gemini/settings.json:
{
"mcpServers": {
"steam-mcp": {
"command": "node",
"args": ["C:/absolute/path/to/steam-mcp/dist/index.js"],
"env": {
"STEAM_API_KEY": "YOUR_KEY_HERE"
}
}
}
}
Slash Commands (Claude Code)
Slash commands are available after adding this project to Claude Code. They chain multiple MCP tools automatically and return formatted results with clickable Steam links.
| Command | Arguments | Description |
|---|---|---|
/steam:profile |
<steamid|vanity> |
Public profile + links to profile, friends, library |
/steam:game |
<game name> |
Search by name - price, Metacritic, live player count |
/steam:trend |
<game name> |
Health report - price, Metacritic, player count + verdict |
/steam:all |
<steamid|vanity> |
Full overview: profile + top games + recent activity + friends |
/steam:library |
<steamid|vanity> |
Deep library analysis: backlog %, total hours, gamer profile |
/steam:achievements |
<steamid|vanity> <game name> |
Achievement progress crossed with global rarity stats |
/steam:coop |
<steamid1> <steamid2> |
Find games both players own - sorted by combined playtime |
/steam:vac |
<steamid1> [steamid2] ... |
VAC/ban check for one or multiple players at once |
Examples
/steam:profile stealthylabs
/steam:game Battlefield 6
/steam:trend Rust
/steam:all 76561199832263296
/steam:library stealthylabs
/steam:achievements stealthylabs Resident Evil Requiem
/steam:coop stealthylabs gabelogannewell
/steam:vac 76561199832263296 76561197960287930
Available MCP Tools
| Tool | Description |
|---|---|
steam_resolve_vanity_url |
Convert a vanity URL (e.g. gabelogannewell) to a SteamID64 |
steam_get_player_summary |
Public profile: name, status, avatar, country, currently playing |
steam_get_friend_list |
Friend list with names and dates (resolve_names param) |
steam_get_player_bans |
VAC/game/community ban status for 1-100 accounts |
steam_get_owned_games |
Game library with playtime, sortable and filterable |
steam_get_recently_played |
Games played in the last 2 weeks |
steam_get_achievements |
Player achievement progress - filter by locked/unlocked/all |
steam_get_global_achievement_stats |
Global unlock rates (easiest/hardest achievements) |
steam_get_game_schema |
Full list of achievements and stats defined by a game |
steam_search_game |
Search by name - returns AppID, price, Metacritic score |
steam_get_current_players |
Number of players currently in-game for any app |
Example prompts
Look up the Steam profile for "stealthylabs"
What are my 10 most played games? (SteamID: 76561198XXXXXXXXX)
Show me the global achievement stats for Grand Theft Auto V Legacy
Which games have I bought but never launched?
Is Rust still worth buying in terms of player activity?
Local test (without Claude Code)
# Test the server responds to MCP protocol
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | STEAM_API_KEY=YOUR_KEY node dist/index.js
# Or with .env file
npm start
# then pipe JSON manually or use MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Development
npm run dev # hot reload via tsx
npm run build # compile TypeScript → dist/
npm run lint # tsc type-check only
npm test # unit tests
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.