npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

steam-games-mcp

v0.6.0

Published

MCP server for Steam: game/store data (no key) plus player profiles, libraries and achievements via the Steam Web API.

Readme

steam-games-mcp

npm version CI license: MIT

An MCP server for Steam: search games and read store details, prices, reviews, discounts and news (no key), plus player profiles, libraries and achievements via the official Steam Web API (free key).

Works with any MCP client (Claude Desktop/Code, Cursor, VS Code, Cline, …) over stdio.

Once it's connected, just ask your agent in natural language.

No credentials needed (store, search & discovery):

"Find Hollow Knight and tell me its price, genres and age rating."
"What are recent reviews saying about Baldur's Gate 3?"
"Have Cyberpunk 2077's reviews recovered since launch?"
"Which games are >80% off right now with 90%+ positive reviews?"
"Find roguelike deckbuilders on sale."
"What discounted games run natively on macOS?"
"Which recent, well-reviewed games run on Steam Deck?"
"What well-reviewed games run on the Steam Machine / SteamOS?"
"Any Steam Frame–Verified VR games on sale?"
"What's discounted on Steam's front page right now?"
"Show me Steam's top sellers and newest releases."
"Any recent patch notes for No Man's Sky?"
"How rare is each achievement in Elden Ring?"
"How many people are playing Counter-Strike 2 right now?"
"Get current prices for appids 620, 413150 and 1145360."
"For appids 1245620 and 1086940, show price, review % and Deck / SteamOS / Frame status."

With a free API key + your STEAM_ID (your account; see Getting your credentials):

"Show my Steam profile."
"List my games by playtime."
"What have I played in the last two weeks?"
"What's on my wishlist that's discounted and well-reviewed?"
"List Hollow Knight's achievements and how rare each one is."
"How far am I through Elden Ring's achievements?"
"What's the SteamID64 for the profile name 'gabelogannewell'?"
"Which of my friends own Portal 2, and how many hours have they played?"
"Show me my Steam friends list."

Install

Add it to your MCP client's config. Store/search tools work with no credentials; player tools need a free Steam Web API key.

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["-y", "steam-games-mcp"],
      "env": {
        "STEAM_API_KEY": "your-steam-web-api-key (optional — enables player tools)",
        "STEAM_ID": "your-steamid64-or-vanity-name (optional — default 'you' for player tools)",
        "STEAM_COUNTRY": "US (optional — store price region)",
        "STEAM_LANGUAGE": "english (optional — store language)"
      }
    }
  }
}

Replace each value with your own; remove the optional lines you don't need. A free key comes from https://steamcommunity.com/dev/apikey. From source: npm ci && npm run build, then use "command": "node", "args": ["/ABS/PATH/steam-games-mcp/dist/index.js"].

One-click install (Claude Desktop)

Download steam-games-mcp.mcpb (always the latest release) and open it in Claude Desktop — Settings → Extensions — then fill the optional fields (API key, Steam ID, country, language) in the install form. No JSON editing.

Also listed in the MCP Registry as io.github.Grinv/steam-games-mcp.

Getting your credentials

Store, search and discovery tools need nothing — skip this section if that's all you want. The player tools (profile, library, achievements, your wishlist) need a free API key and a public profile. Three short steps:

  1. Get a free Steam Web API key. Sign in at https://steamcommunity.com/dev/apikey, enter any domain (e.g. localhost), and copy the key into STEAM_API_KEY.

  2. Find your Steam ID. Set STEAM_ID to either:

    • your vanity name — the custom part of your profile URL steamcommunity.com/id/YOUR_NAMEYOUR_NAME (resolved automatically), or
    • your 17-digit SteamID64 (steamcommunity.com/profiles/7656…; or look it up at https://steamid.io).

    With STEAM_ID set you can just ask "my wishlist / library" — without it, give the agent a SteamID64 each time (use resolve_vanity_url to convert a name).

  3. Make your profile public (for your own library/achievements): Steam → profile → Edit ProfilePrivacy Settings → set My profile and Game details to Public.

The key and Steam ID go in your MCP client config (the env block above) — see docs/clients.md for per-client examples. Never commit them.

What it does

Key: no credentials · K Steam Web API key.

| Tool | Key | Purpose | | ------------------------- | --- | ------------------------------------------------------------------------------------------------------------ | | search_games | – | Find games by title → appid (with price) | | get_game | – | Store details by appid or name: price, genres, platforms, Metacritic, age rating, DLC, requirements | | get_items | – | Batch store card (price, review %, Deck/SteamOS/Frame compat, native platforms, tags) for appids | | discover_games | – | Find games catalog-wide by discount, recency, Deck/SteamOS/Frame, platform, tags, rating | | get_game_reviews | – | Review summary + recent reviews | | get_review_histogram | – | Review trend over time (history + recent) | | get_prices | – | Batch current price/discount for many appids | | get_specials | – | Steam front-page discounts | | get_featured | – | Featured sections (top sellers, new releases, …) | | get_game_news | – | Recent news / patch notes | | get_global_achievements | – | Global achievement unlock rates (rarity) | | get_current_players | – | Live concurrent player count | | get_wishlist | – | A player's wishlist — appids, or full cards + on-sale filter with include_details (public profiles) | | get_game_achievements | K | Full achievement list (names, descriptions) + rarity | | resolve_vanity_url | K | Custom profile name → SteamID64 | | get_player_summary | K | Player public profile | | get_owned_games | K | A player's games + playtime (top 50 by playtime — not for checking one specific game) | | get_recently_played | K | Games played in the last two weeks | | get_player_achievements | K | A player's achievement progress in a game | | get_friend_list | K | A player's friends — name, online state, current game (public friends list) | | find_friends_who_own | K | Which friends own given appid(s) + their playtime — checks each friend's FULL library, not just top 50 |

Two tiers. Store/search + discovery tools (store/api.steampowered.com) need no credentials — including catalog-wide discovery (discover_games: deals, new releases, Deck / SteamOS / Frame compatibility, tags, rating) and batch price/review checks (get_items). Player tools need a free STEAM_API_KEY and a public profile; they return a clear message when the key is unset. Set STEAM_ID (a SteamID64 or vanity name) to make those tools default to you, so "my wishlist / library" works without passing an ID each time.

No third-party services: deal discovery and reviews come from Steam's own (keyless) store APIs. SteamDB is not used (no public API + scraping disallowed). Steam has no price-history API, so that isn't offered. Not affiliated with Valve.

Develop

npm install
npm run build        # type-check + bundle to dist/index.js
npm test             # node:test (mocked, offline)
npm run lint
npm run format
npm run check:api    # live upstream health-check (Storefront keyless; player check needs STEAM_API_KEY)
npm run inspector    # run under the MCP Inspector

Runtime requires Node ≥ 18. Contributor/agent guidance: AGENTS.md. Per-client config and all tunables: docs/clients.md.

Updating

  • npx: unpinned npx -y steam-games-mcp fetches the latest on the next run.
  • .mcpb bundle: download the new bundle from the releases page and reinstall.
  • From source: git pull && npm ci && npm run build.

License

MIT © Grinv