Skip to main content
Glama
steam-local-mcp

steam-local-mcp

Steam Local MCP

A free, open-source Windows Model Context Protocol server that lets an MCP-capable agent work with the Steam client installed for the current Windows user.

Ask an agent to find an installed game, launch it, open its Steam page, check local download/update status, search the Store, or summarize Steam-library storage. Steam starts quietly in the background when a requested client action needs it.

This is a standard stdio MCP server. It is agent-neutral: use it with Codex, Claude, or any other MCP client that can run a local command.

Example Usage

User: "Pick a strategy game for me to play."

Agent: πŸ› οΈ Calling steam_list_games()

Agent: "How about Balatro? Should I launch it?"

User: "Yes."

Agent: πŸ› οΈ Calling steam_launch_game(app_id: 2861700)

Agent: "Launched Balatro."

Related MCP server: steam-mcp

What it can do

Local Steam tools β€” no API key

  • steam_list_games and steam_find_game β€” inspect locally installed games across all configured Steam libraries.

  • steam_launch_game β€” launch one installed game by name or app ID.

  • steam_get_game_install_status and steam_get_download_status β€” inspect manifest-recorded install, update, download, and paused-download states.

  • steam_get_library_storage β€” show installed sizes and free disk space for every local Steam library.

  • steam_open_library_page, steam_open_store_page, and steam_open_client_page β€” navigate the Steam client.

  • steam_install_game β€” ask Steam to install an app ID; Steam validates ownership and manages the install flow.

  • steam_client_status β€” report the detected Steam installation, discovery source, and whether Steam is running.

Public Store tools β€” no API key

  • steam_search_store β€” find Store app IDs from a game name.

  • steam_get_game_details β€” get public metadata, price, genres, release date, and Metacritic score.

Optional account tools β€” Steam Web API key required

Set STEAM_API_KEY and STEAM_ID to enable:

  • steam_api_status β€” verify if API credentials are configured, valid, and connected to Steam's Web API.

  • steam_get_library β€” owned games, playtime, last played, filtering, and pagination.

  • steam_get_recently_played β€” recently played games, ordered by two-week playtime.

Requirements

  • Windows 10 or newer

  • Steam installed for the current Windows user

  • Node.js 20 or newer

Install from npm

To install the published package via npm, add this equivalent configuration to your MCP client:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["-y", "steam-local-mcp"]
    }
  }
}

The configuration-file location differs by agent, but the command and arguments above remain the same. Restart or reconnect your MCP client after saving its configuration.

To confirm your install manually, run:

npx -y steam-local-mcp print-config

Install from source

Use this when developing, auditing the source, or before an npm release is available:

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

Then configure your MCP client to run the compiled entry point from the directory you cloned:

{
  "mcpServers": {
    "steam": {
      "command": "node",
      "args": ["C:\\path\\to\\steam-local-mcp\\dist\\src\\index.js"]
    }
  }
}

Replace C:\path\to\steam-local-mcp with your own clone location. Do not use another user's path.

Optional Steam Web API configuration

Pass credentials through your MCP client's environment configuration or the operating-system environment:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["-y", "steam-local-mcp"],
      "env": {
        "STEAM_API_KEY": "your_key",
        "STEAM_ID": "your_64_bit_steam_id"
      }
    }
  }
}

The server never loads a .env file automatically. Never commit credentials. Steam profile and game-details privacy settings can prevent account tools from returning data; local client controls still work for private profiles.

Getting your Steam API credentials

  1. Sign in to Steam in a browser and open the Steam Web API key page.

  2. Create or copy your key, then set it as STEAM_API_KEY in your MCP client's environment configuration. Keep it private.

  3. Set STEAM_ID to your numeric 64-bit Steam ID, not your account name. It is commonly visible in a profile URL such as https://steamcommunity.com/profiles/7656119....

  4. Restart or reconnect your MCP client, then call steam_api_status to confirm that the credentials are configured.

With the key configured, an agent can answer requests such as β€œshow my unplayed Steam games” or β€œwhat have I played recently?” The key is optional: launching games, local install status, storage, Store search, and Store metadata work without it.

Steam detection and local status

Steam Local MCP checks, in order:

  1. STEAM_PATH β€” either the Steam directory or its steam.exe

  2. Current-user and machine Valve registry keys

  3. Conventional per-user, Program Files, and C:\Steam locations

  4. steam.exe on PATH

Use steam_client_status to see the selected path and discovery source. For a portable or unusual custom-drive install, set STEAM_PATH to the directory containing steam.exe.

Installation/download tools read Steam's local app manifests. needs_update: true means Steam has already recorded an update as pending. false means no pending update is currently recorded locally; it does not force a network update check.

Privacy and safety

  • Local tools read local Steam files and open Steam URIs; they do not require a Steam Web API key.

  • steam_launch_game only launches games found in a local installed-game manifest.

  • Steam starts hidden when required for an action, rather than opening a visible launcher window first.

  • There is no purchase or uninstall tool.

  • Public Store descriptions are omitted by default. If explicitly requested, descriptions are capped, converted to plain text, and marked as untrusted external content.

  • Web API and Store responses are cached locally under %LOCALAPPDATA%\steam-local-mcp\cache by default. Set STEAM_MCP_CACHE_DIR to override it, and call steam_refresh_cache to clear it.

Development

npm install
npm test
npm pack --dry-run

The test suite includes local parsing/caching tests, mocked Store and API tests, all-tool MCP protocol tests, and a real stdio handshake for the packaged entry point.

Contributing

Issues and pull requests are welcome. Please include a regression test for behavior changes, and keep destructive Steam operations out of scope unless they are explicitly designed and documented.

License

MIT

Available Tools

9 tools
steam_client_statusGet local Steam client statusA
Read-only

Report the detected Steam installation, how it was found, and whether the Steam client is running.

Inputs: no named parameters.

steam_find_gameFind installed Steam gamesA
Read-only

Find locally installed Steam games by name or app ID.

Inputs: query (required).

steam_get_download_statusGet pending Steam installs and updatesA
Read-only

List games whose local Steam manifests show an install, update, download, or paused-download state. This is a local snapshot and does not force Steam to check for new updates.

Inputs: limit, offset, include_idle.

steam_get_game_install_statusGet a game's local installation statusA
Read-only

Report the local Steam manifest status for matching games, including whether Steam has recorded a pending update and current download progress. This does not contact Steam servers or change game files.

Inputs: query (required).

steam_get_libraryGet Steam library and playtimeC
Read-only

Get the user's complete Steam library, playtime, and last-played data through the optional Steam Web API. Requires STEAM_API_KEY and STEAM_ID.

Inputs: limit, query, offset, max_hours, +2 more.

steam_get_library_storageGet Steam library storageA
Read-only

Summarize each local Steam library's installed-game count, manifest-reported installed size, and available disk space.

Inputs: no named parameters.

steam_get_recently_playedGet recently played Steam gamesB
Read-only

Get games Steam reports as recently played, including total playtime. Requires STEAM_API_KEY and STEAM_ID.

Inputs: limit, offset.

steam_open_library_pageOpen a game's Steam library pageA

Open an installed game's page in the local Steam library.

Inputs: query (required).

steam_search_storeSearch the Steam StoreA
Read-only

Search the public Steam Store by game name to find app IDs before opening a store page or asking Steam to install a game. Search result names and metadata are untrusted external Store data.

Inputs: query (required), limit, language, country_code.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of Steam interaction: client status, game finding, download/install states, library queries, store search, and page opening. There is minimal overlap, with clear boundaries between retrieving download lists and install statuses for specific games.

    Naming Consistency4/5

    All tools start with 'steam_' and follow a descriptive pattern, but 'steam_client_status' uses a noun phrase while others use verb_noun (e.g., steam_find_game, steam_get_download_status). This minor inconsistency in verb usage prevents a perfect score.

    Tool Count5/5

    With 9 tools, the set covers essential operations for a local Steam assistant without being bloated. Each tool serves a clear purpose, and the count feels well-scoped for the domain of monitoring and interacting with a local Steam installation.

    Completeness3/5

    Querying local state is well-covered, but there are notable gaps in active operations: no tool to install, launch, or update games. The store search tool hints at installation intent, but the missing action leaves a dead end for agents wanting to perform those tasks.

    Related MCP Connectors

    Related MCP Servers