steam-mcp

steam-mcp

A feature-rich Model Context Protocol server that gives AI assistants full access to your Steam game library.

Category
Visit Server

README

Steam MCP Server

npm version License: MIT

A feature-rich Model Context Protocol server that gives AI assistants full access to your Steam game library. Works on Linux, macOS, and Windows. 14 consolidated tools covering 66 actions — most work from local files with no API key needed. Optional Steam Web API key unlocks online data like achievements, friends, and full library access.

Works with Claude Desktop, Claude Code, or any MCP-compatible client.

What can it do?

Ask your AI assistant things like:

  • "What games do I have installed?"
  • "Search for ck3" → finds Crusader Kings III via abbreviation matching
  • "How much disk space is Steam using?" → full breakdown by game
  • "Find orphaned data I can clean up" → identifies leftover compatdata/shadercache
  • "What Proton version should I use for this game?"
  • "Install Hollow Knight" → looks up the appid and tells Steam to install it
  • "Pick a random game for me to play"
  • "Show my full play history" → all-time playtime across your entire library
  • "Import my Lutris games as Steam shortcuts"
  • "Show my achievements for Hades" → unlock status, completion %, global stats
  • "Who's online right now?" → friends list with online status and current games
  • "What's on my wishlist?"
  • "Show me reviews for Elden Ring"
  • "How long to beat Hollow Knight?"

Installation

npm (recommended)

npx @praeses/steam-mcp

No install needed — just add it to your MCP client config (see below).

Global install

npm install -g @praeses/steam-mcp

Then use steam-mcp as the command instead of npx @praeses/steam-mcp.

Configure with Claude Desktop

Add to your Claude Desktop config:

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

Configure with Claude Code

Add a .mcp.json in your project root, or add to ~/.claude.json for system-wide access:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

Note: The STEAM_API_KEY is optional. Most tools work without it. Only a few actions (achievements, friends, owned games, wishlist, profile) require it. Get your key at steamcommunity.com/dev/apikey.

Category filtering

To reduce context window usage further, enable only specific tool categories via the STEAM_TOOLS env var:

{
  "env": {
    "STEAM_TOOLS": "core,manage,compat"
  }
}

Available categories and their tools:

Category Tools Description
core games, library, steam_status Game browsing, library stats, Steam status
compat proton, diagnostics Proton/Wine compatibility, log parsing
manage game_control, game_config, shortcuts Install/launch/verify, launch options, non-Steam shortcuts
storage storage Disk usage, cleanup, shader cache, cloud saves, backups
api player, workshop Player profile/achievements/friends, workshop items
market deals Sale checks, wishlist, library valuation
insights insights Completion stats, timeline, year review, play history, export
content game_info Reviews, news, media, HLTB, PCGamingWiki fixes

When unset, all categories are enabled (14 tools, ~3,200 tokens of context).

Prerequisites

  • Node.js 18+
  • Steam installed in the default location:
    • Linux: ~/.local/share/Steam/
    • macOS: ~/Library/Application Support/Steam/
    • Windows: C:\Program Files (x86)\Steam\

Proton/Wine tools (compatibility tracking, prefix inspection, crash logs) are Linux-only. All other tools work cross-platform.

Tools

Each tool uses an action parameter to select the operation. 14 tools cover 66 actions total.

games — Game discovery and browsing

Action Description
list List installed games with filtering, sorting, pagination
get Get full details for a game by appid
search Smart search with abbreviation matching (e.g. "ck3" → Crusader Kings III)
compare Compare two games side-by-side
random Pick a random installed game
unplayed Find games you own but haven't played

library — Library folders and stats

Action Description
list List all Steam library folders with sizes and free space
stats Aggregate stats: total games, playtime, disk usage

steam_status — Steam client status

Action Description
status Check if Steam is running
queue View current download queue
progress Check download progress for a game

proton — Proton/Wine compatibility (Linux)

Action Description
list_games List all games using Proton/Wine with versions and prefix sizes
info Get compatibility details for a specific game
versions List installed Proton versions and which games use them
db_rating Fetch ProtonDB community rating
recommend Get a Proton version recommendation for a game
prefix Inspect Wine/Proton prefix (Windows version, file count, size)
crash_logs Find and read crash dumps and logs

storage — Disk management

Action Description
disk_report Per-game disk usage breakdown (install + compat + shader + workshop)
orphaned Find leftover data from uninstalled games
cleanup Get cleanup recommendations with space savings
shader_cache Shader cache size for a specific game
shader_stats Shader cache overview across all games
saves_list List local cloud save data per game
saves_stats Cloud save aggregate stats
backup Back up cloud saves to a directory

game_control — Game actions

Action Description
install Install a game via Steam
uninstall Uninstall a game
launch Launch a game
verify Verify game file integrity
move Move a game to another library folder
store_page Open the Steam store page

game_config — Configuration and tweaks

Action Description
get_launch_opts Read current launch options
set_launch_opts Set launch options
presets List/apply launch option presets (MangoHud, GameMode, Vulkan, etc.)
mangohud Show, set, or reset MangoHud configuration
steam_settings View Steam client settings

player — Player data (most actions require API key)

Action Description
summary Player profile with online status and account info
level Steam level, XP, and badges
bans VAC and game ban status
friends Friends list with online status and current games
achievements Per-game achievement unlock status
global_achievements Global achievement unlock percentages
schema Achievement and stat definitions for a game
owned Complete owned games list with playtime
recent Recently played games

workshop — Steam Workshop

Action Description
list List installed workshop items for a game
stats Workshop stats across all games
search Search the Steam Workshop

shortcuts — Non-Steam game shortcuts

Action Description
list List all non-Steam shortcuts
add Add a new shortcut
remove Remove a shortcut
import_lutris Import games from Lutris

deals — Pricing and wishlist

Action Description
check_sale Check if a game is on sale
wishlist_deals Find discounted games on your wishlist
wishlist View full wishlist with prices and reviews
library_value Estimate total library value

insights — Analytics and history

Action Description
completion Achievement completion rates across top games
timeline Month-by-month gaming activity
year_review Annual gaming recap
play_history Full playtime history (installed + uninstalled games)
export Export library data as JSON or CSV

game_info — Game content and metadata

Action Description
reviews User reviews with scores
news Latest news articles
media Game artwork URLs and local overrides
hltb HowLongToBeat completion time estimates
pcgamingwiki PCGamingWiki fixes and tweaks

diagnostics — Log parsing

Action Description
compat_log Parse Proton/Wine compatibility logs
shader_log Parse shader compilation logs

Key Highlights

  • Minimal context footprint — 14 tools, ~3,200 tokens (down from 66 tools / ~8,000 tokens in v1)
  • Cross-platform — Linux, macOS, and Windows (Proton tools are Linux-only)
  • No API key needed for most actions — reads directly from Steam's local files
  • Smart search — "ck3" finds "Crusader Kings III", "ror2" finds "Risk of Rain 2"
  • Full play history — playtime for every game you've ever played, not just installed ones
  • Storage analysis — shows exactly where disk space goes (installs + compatdata + shadercache + workshop)
  • Orphan detection — finds GBs of leftover data from uninstalled games
  • Multi-library — supports multiple Steam library folders including external drives
  • Category filtering — enable only the tool groups you need via STEAM_TOOLS env var
  • Custom VDF parsers — both text and binary formats, no external dependencies

Development

Install from source

git clone https://github.com/Praeses0/steam-mcp.git
cd steam-mcp
npm install
npm run build

Commands

npm run dev      # Run with tsx (auto-reload)
npm run build    # Compile TypeScript
npm test         # Run tests

Architecture

src/
├── index.ts                 # Server entry, category-based tool registration
├── vdf/
│   ├── parser.ts            # Text VDF recursive descent parser + serializer
│   ├── binary-parser.ts     # Binary VDF parser (shortcuts.vdf)
│   ├── binary-writer.ts     # Binary VDF writer (shortcut management)
│   └── types.ts             # VdfValue, VdfObject types
├── steam/
│   ├── paths.ts             # Cross-platform Steam dir resolution, user detection
│   ├── manifests.ts         # App manifest reading with mtime caching
│   ├── library.ts           # Library folder operations + disk info
│   ├── userdata.ts          # localconfig.vdf read/write
│   ├── compat.ts            # Proton/Wine compatibility tracking
│   ├── workshop.ts          # Workshop manifest reading
│   ├── shortcuts.ts         # Binary shortcuts.vdf read/write
│   ├── api.ts               # Steam Web API client
│   ├── api-types.ts         # Shared API response types
│   ├── wishlist.ts          # Wishlist data fetching
│   ├── logs.ts              # Steam log parsing
│   └── types.ts             # Domain types
├── tools/                   # 14 consolidated MCP tools (one file per tool)
└── util/
    ├── format.ts            # formatBytes, formatPlaytime, formatTimestamp
    ├── cache.ts             # FileCache<T> with mtime invalidation
    └── fs.ts                # Shared filesystem utilities

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured