{
  "markdown": "# Steam MCP Server\n\n[![npm version](https://img.shields.io/npm/v/steam-games-mcp.svg)](https://www.npmjs.com/package/steam-games-mcp)\n[![CI](https://github.com/Grinv/steam-games-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Grinv/steam-games-mcp/actions/workflows/ci.yml)\n[![license: MIT](https://img.shields.io/npm/l/steam-games-mcp.svg)](LICENSE)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.Grinv%2Fsteam--games--mcp-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.Grinv/steam-games-mcp&version=latest)\n[![steam-games-mcp MCP server](https://glama.ai/mcp/servers/Grinv/steam-games-mcp/badges/score.svg)](https://glama.ai/mcp/servers/Grinv/steam-games-mcp)\n\nAn [MCP](https://modelcontextprotocol.io) server for **Steam**: search games and\nread store details, prices, reviews, discounts and news (no key), plus player\nprofiles, libraries and achievements via the official **Steam Web API** (free key).\n\n**Read-only · official Steam APIs only · most tools need no key · open source.**\n\nNobody logs in; the only credential is a free Steam Web API key you set yourself,\nand the server never writes, trades, posts, launches games, or makes purchases.\n\nWorks with any MCP client (Claude Desktop/Code, Cursor, VS Code, Cline, …) over stdio.\n\nOnce it's connected, just ask your agent in natural language.\n\n**No credentials needed** (store, search & discovery):\n\n```\n\"Find Hollow Knight and tell me its price, genres and age rating.\"\n\"What are recent reviews saying about Baldur's Gate 3?\"\n\"Have Cyberpunk 2077's reviews recovered since launch?\"\n\"Which games are >80% off right now with 90%+ positive reviews?\"\n\"Find roguelike deckbuilders on sale.\"\n\"What discounted games run natively on macOS?\"\n\"Which recent, well-reviewed games run on Steam Deck?\"\n\"What well-reviewed games run on SteamOS?\"\n\"Any games verified for the Steam Machine on sale?\"\n\"Any Steam Frame-Verified VR games on sale?\"\n\"What's discounted on Steam's front page right now?\"\n\"Show me Steam's top sellers and newest releases.\"\n\"Any recent patch notes for No Man's Sky?\"\n\"How rare is each achievement in Elden Ring?\"\n\"How many people are playing Counter-Strike 2 right now?\"\n\"Get current prices for appids 620, 413150 and 1145360.\"\n\"For appids 1245620 and 1086940, show price, review % and Deck / SteamOS / Machine / Frame status.\"\n```\n\n**With a free API key + your `STEAM_ID`** (your account; see [Getting your credentials](#getting-your-credentials)):\n\n```\n\"Show my Steam profile.\"\n\"List my games by playtime.\"\n\"What have I played in the last two weeks?\"\n\"Recommend something I'd like based on my library, on a good discount.\"\n\"Do I already own Hollow Knight and Hades?\"\n\"What's on my wishlist that's discounted and well-reviewed?\"\n\"List Hollow Knight's achievements and how rare each one is.\"\n\"How far am I through Elden Ring's achievements?\"\n\"What's the SteamID64 for the profile name 'gabelogannewell'?\"\n\"Which of my friends own Portal 2, and how many hours have they played?\"\n\"What games do my friend and I both own, and who's played them more?\"\n\"Show me my Steam friends list.\"\n\"Is SteamID 76561197960287930 VAC banned?\"\n\"What games am I following that aren't on my wishlist?\"\n```\n\n## Install\n\nAdd it to your MCP client's config. Store/search tools work with **no\ncredentials**; player tools need a free Steam Web API key.\n\n```json\n{\n  \"mcpServers\": {\n    \"steam\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"steam-games-mcp\"],\n      \"env\": {\n        \"STEAM_API_KEY\": \"your-steam-web-api-key (optional — enables player tools)\",\n        \"STEAM_ID\": \"your-steamid64-or-vanity-name (optional — default 'you' for player tools)\",\n        \"STEAM_COUNTRY\": \"US (optional — store price region)\",\n        \"STEAM_LANGUAGE\": \"english (optional — store language)\"\n      }\n    }\n  }\n}\n```\n\n> Replace each value with your own; remove the optional lines you don't need.\n> A free key comes from <https://steamcommunity.com/dev/apikey>. **From source:**\n> `npm ci && npm run build`, then use `\"command\": \"node\"`,\n> `\"args\": [\"/ABS/PATH/steam-games-mcp/dist/index.js\"]`.\n\n### One-click install (Claude Desktop)\n\nDownload [**`steam-games-mcp.mcpb`**](https://github.com/Grinv/steam-games-mcp/releases/latest/download/steam-games-mcp.mcpb)\n(always the latest release) and open it in Claude Desktop (**Settings → Extensions**), then\nfill the optional fields (API key, Steam ID, country, language) in the install form. No JSON editing.\n\nAlso listed in the [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.Grinv/steam-games-mcp&version=latest)\nas `io.github.Grinv/steam-games-mcp`.\n\n## Getting your credentials\n\nStore, search and discovery tools need **nothing**; skip this section if that's\nall you want. The **player** tools (profile, library, achievements, your wishlist)\nneed a free API key and a public profile. Three short steps:\n\n1. **Get a free Steam Web API key.** Sign in at\n   <https://steamcommunity.com/dev/apikey>, enter any domain (e.g. `localhost`),\n   and copy the key into `STEAM_API_KEY`.\n2. **Find your Steam ID.** Set `STEAM_ID` to either:\n   - your **vanity name**: the custom part of your profile URL\n     `steamcommunity.com/id/YOUR_NAME` → `YOUR_NAME` (resolved automatically), or\n   - your **17-digit SteamID64** (`steamcommunity.com/profiles/7656…`; or look it\n     up at <https://steamid.io>).\n\n   With `STEAM_ID` set you can just ask \"_my_ wishlist / library\"; without it,\n   give the agent a SteamID64 each time (use `resolve_vanity_url` to convert a name).\n\n3. **Make your profile public** (for your own library/achievements): Steam →\n   profile → **Edit Profile** → **Privacy Settings** → set **My profile** and\n   **Game details** to **Public**.\n\n> The key and Steam ID go in your MCP client config (the `env` block above). See\n> [docs/clients.md](https://github.com/Grinv/steam-games-mcp/blob/main/docs/clients.md) for per-client examples. Never commit them.\n\n## Tools\n\nKey: **–** no credentials · **K** Steam Web API key.\n\n| Tool                      | Key | Purpose                                                                                                                     |\n| ------------------------- | --- | --------------------------------------------------------------------------------------------------------------------------- |\n| `search_games`            | –   | Find games by title → appid (with price)                                                                                    |\n| `get_game`                | –   | Store details by appid **or name**: price, genres, platforms, Metacritic, age rating, DLC, requirements                     |\n| `get_items`               | –   | Batch store card (price, review %, **Deck/SteamOS/Machine/Frame** compat, native **platforms**, **tags**) — up to 50 appids |\n| `discover_games`          | –   | Find games catalog-wide by **discount**, **recency**, **Deck/SteamOS/Machine/Frame**, **platform**, **tags**, rating        |\n| `get_game_reviews`        | –   | Review summary + recent reviews                                                                                             |\n| `get_review_histogram`    | –   | Review trend over time (history + recent)                                                                                   |\n| `get_prices`              | –   | Batch current price/discount — up to 250 appids                                                                             |\n| `get_specials`            | –   | Steam front-page discounts                                                                                                  |\n| `get_featured`            | –   | Featured sections (top sellers, new releases, …)                                                                            |\n| `get_game_news`           | –   | Recent news / patch notes                                                                                                   |\n| `get_global_achievements` | –   | Global achievement unlock rates (rarity) — top 200                                                                          |\n| `get_current_players`     | –   | Live concurrent player count                                                                                                |\n| `get_wishlist`            | –   | A player's wishlist — appids, or full cards + on-sale filter with `include_details` (public profiles)                       |\n| `get_followed_games`      | –   | A player's followed games (Steam's \"follow\" feature, separate from the wishlist) — appids (public profiles)                 |\n| `get_game_achievements`   | K   | Achievement list (names, descriptions) + rarity — first 150, definition order                                               |\n| `resolve_vanity_url`      | K   | Custom profile name → SteamID64                                                                                             |\n| `get_player_summary`      | K   | Player public profile (incl. Steam level)                                                                                   |\n| `get_player_bans`         | K   | VAC/game/community/economy ban status (works even on private profiles)                                                      |\n| `get_owned_games`         | K   | A player's games + playtime (top 50 by playtime; `check_appids` reliably checks specific appids past that cap)              |\n| `get_recently_played`     | K   | Games played in the last two weeks (top 50 by recent playtime)                                                              |\n| `get_recommended_games`   | K   | Personalized picks from playtime-weighted tags + review quality, excluding owned games                                      |\n| `get_player_achievements` | K   | A player's achievement progress in a game — achievement list capped at top 200, unlocked first                              |\n| `get_friend_list`         | K   | A player's friends — name, online state, current game (public friends list)                                                 |\n| `find_friends_who_own`    | K   | Which friends own given appid(s) + their playtime — each friend's FULL library, first 200 friends (`friends_checked`)       |\n| `compare_players`         | K   | Games two players both own, with each one's playtime — checks each player's FULL library, not just top 50                   |\n\n**Two tiers.** Store/search + discovery tools (`store`/`api.steampowered.com`)\nneed **no credentials** — including catalog-wide discovery (`discover_games`:\ndeals, new releases, Deck / SteamOS / Machine / Frame compatibility, tags, rating) and batch\nprice/review checks (`get_items`).\nPlayer tools need a free\n**`STEAM_API_KEY`** and a **public** profile; they return a clear message when the\nkey is unset. The two exceptions are `get_wishlist` and `get_followed_games`,\nmarked **–** above: given a raw SteamID64 they work with no key at all (only\nresolving a vanity name to an ID needs one). Set **`STEAM_ID`** (a SteamID64 or vanity name) to make those tools\ndefault to you, so \"my wishlist / library\" works without passing an ID each time.\n\n> No third-party services: deal discovery and reviews come from Steam's own\n> (keyless) store APIs. SteamDB is not used (no public API + scraping disallowed).\n> Steam has no price-history API, so that isn't offered. Not affiliated with Valve.\n\n## Prompts\n\nGuided one-shot prompts that orchestrate several tools for a common question.\nUse these when your client exposes MCP prompts, instead of describing the steps yourself:\n\n| Prompt               | Args                                                              | What it does                                                               |\n| -------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------- |\n| `what_should_i_play` | `steamid`, `budget`, `tags` (all optional)                        | Recommends catalog games from your library/taste, excluding what you own   |\n| `is_it_worth_buying` | `game` (title or appid, optional, autocompletes; asks if omitted) | Price, review trend and Steam Deck compatibility → a buy/wait/skip verdict |\n| `deals_digest`       | `min_discount`, `min_review`, `tags` (all optional)               | A curated list of well-reviewed discounted games                           |\n\n## Develop\n\n```sh\nnpm install\nnpm run build        # type-check + bundle to dist/index.js\nnpm test             # node:test (mocked, offline)\nnpm run lint\nnpm run format\nnpm run check:api    # live upstream health-check (Storefront keyless; player check needs STEAM_API_KEY)\nnpm run inspector    # run under the MCP Inspector\n```\n\nRuntime requires Node ≥ 20.11. Contributor/agent guidance:\n[AGENTS.md](https://github.com/Grinv/steam-games-mcp/blob/main/AGENTS.md).\nSecurity policy: [SECURITY.md](https://github.com/Grinv/steam-games-mcp/blob/main/SECURITY.md).\nPer-client config and all tunables:\n[docs/clients.md](https://github.com/Grinv/steam-games-mcp/blob/main/docs/clients.md).\n\n## Updating\n\n- **npx:** unpinned `npx -y steam-games-mcp` fetches the latest on the next run.\n- **`.mcpb` bundle:** download the new bundle from the releases page and reinstall.\n- **From source:** `git pull && npm ci && npm run build`.\n\n## Privacy Policy\n\n`steam-games-mcp` runs entirely on your own machine and collects no data of\nits own. See [PRIVACY.md](PRIVACY.md) for exactly what it sends to Steam and\nwhat (if anything) it stores locally.\n\n## License\n\n[MIT](LICENSE) © Grinv\n",
  "bytes": 13572,
  "sha": "bf2bc36e621b522ce11f3cf35d37027ea7bf67b2b1946ca4c5998c4b28906db2",
  "repo_slug": "grinv/steam-games-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_grinv_steam_games_mcp_9c0e4ee6/readme"
}