Steam MCP服务器

steam-mcp是一个MCP服务器,通过Steam Web API向AI助手提供Steam用户资料、游戏库、成就、价格和玩家数据等查询与分析工具,适用于游戏数据检索与玩家行为分析场景。

  • by inerthel-agi
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 StealthyLabsHQ/steam-mcp

使用说明

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/inerthel-agi/steam-mcp/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/inerthel-agi/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 gabelogannewell
/steam:library stealthylabs
/steam:achievements stealthylabs Resident Evil Requiem
/steam:coop stealthylabs gabelogannewell
/steam:vac gabelogannewell robinwalker

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
steam_get_game_details Rich store details: price, reviews, genres, platforms, media, DLC
steam_export_profile_data Export profile, bans, friends, library, recent activity, optional achievements
steam_analyze_player Infer play style, backlog, favorite genres/categories, top games
steam_search_any Broad Steam search across apps, games, DLC, software, demos with filters
steam_recommend_games Recommend unowned games from a player's Steam library and taste profile

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?

Export a Steam profile as JSON for analysis

Analyze what kind of games this Steam user likes: stealthylabs

Search Steam for Linux co-op games under $10

Recommend discounted games for this SteamID: 76561198XXXXXXXXX

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