Steam (read-only)

io.github.Sarg338由 GitHub 帳號 Sarg338 發布v1.19.0更新於 Oct 24, 2026

Read-only Steam: friends, games, achievements, sales, plus game recommendations and co-op nights.

已驗證STDIO僅桌面位置與生活資料與分析

概覽

AI 產生的概覽

唯讀的 Steam MCP 伺服器,讓助理查詢遊戲、價格、評論、線上人數、成就、遊戲庫與好友。

可以做什麼
搜尋遊戲並取得商店詳細資料、價格、分區定價、DLC、標籤、Steam Deck 評級與新聞,還能並排比較遊戲、分析評論情緒以及更新對評論的影響。依標籤、價格、特價或發售時間探索與推薦遊戲,產生購買建議與合作遊玩建議。讀取即時線上人數、熱銷排行、目前特價、社群市場物品價格與工作坊物品資訊。設定 API 金鑰後可讀取指定帳號的個人檔案、好友與其上線狀態、已擁有遊戲、遊玩時數、遊戲庫分析、願望清單、物品庫、徽章、停權紀錄、遊戲內統計與成就。比較兩位玩家的共同遊戲,並依群組擁有情況規劃合作遊戲之夜。
適用情境
適合在對話中讓助理回答 Steam 相關問題:某款遊戲是否值得買、目前有哪些特價、評價口碑如何、能否在 Steam Deck 上執行,或你和好友共同擁有哪些合作遊戲。
執行需求
以本機 Python 套件執行(Python 3.10+),可透過 uvx 或 pip 安裝,也可作為 Claude Desktop 擴充套件安裝。19 個商店與遊戲類工具不需要任何憑證;帳號類工具需要在 STEAM_API_KEY 中提供免費的 Steam Web API 金鑰。STEAM_USER 為選用,用於設定預設個人檔案;STEAM_MCP_TOOLS 可限制載入的工具。需要連線至 Steam 官方主機的網路存取。
安裝前請注意
STEAM_API_KEY 是從環境變數讀取的金鑰;README 表示不會寫入磁碟、記錄於日誌或出現在輸出中。帳號類工具僅對公開的 Steam 個人檔案有效,因此個人檔案、好友、遊戲庫、遊玩時數、願望清單與物品庫資料會被讀取。伺服器為唯讀,不會交易、發文或購買,但市場價格來自未公開且有限流的 Steam 端點,可能無法取得。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Steam (read-only),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Steam MCP

[PyPI] [Python] [CI] [License: MIT] [MCP Registry]

A read-only Model Context Protocol server for the public Steam Web API and storefront — 41 tools, 5 prompts, and 2 resources that let any MCP client (Claude Desktop, Claude Code, Cursor, …) answer questions about Steam: your friends, games, playtime, and achievements, plus account-independent things like sales, reviews, live player counts, Steam Deck compatibility, discovery, recommendations, and co-op planning.

Read-only · official Steam APIs only · open source. Nobody logs in, and the server never writes, trades, posts, launches games, or makes purchases.

Quick start — no API key needed

Install uv, then:

Claude Code

bash
claude mcp add steam -- uvx steam-mcp

That's the whole setup. 19 of the 41 tools work with no credential at all — anything about the store or a game itself:

"Is Baldur's Gate 3 worth buying, and how are its recent reviews trending?" "What co-op games are on sale under £20 right now?" "How many people are playing Helldivers 2 this minute?" "Will Hades II run properly on my Steam Deck?"

The three game-finders (steam_discover, steam_should_i_buy, steam_recommend) work without a key too, as long as you don't personalize them.

Adding your own account

A free Steam Web API key (a minute to get) unlocks the other 22 — the ones that read a specific account: library, playtime, friends, achievements, wishlist, inventory. Add STEAM_USER too and "my"/"I" default to you, so you never have to paste a SteamID:

bash
claude mcp add steam --env STEAM_API_KEY=YOUR_KEY --env STEAM_USER=your_steam_name -- uvx steam-mcp

Tip: this defaults to the current project. Add --scope user only if you want Steam in every project — that keeps its tools in context everywhere, so prefer per-project scope unless Steam is cross-cutting for you.

Claude Desktop — download steam-mcp.mcpb from the latest release and open it (Settings → Extensions). Both fields are optional; leave them blank for the keyless tools and fill them in later.

Cursor / Cline / Windsurf and the manual pip setup are under Setup below.

Without a key, the account tools are still listed but marked [unavailable: needs STEAM_API_KEY], so your assistant knows to reach for a keyless tool instead of failing at one it can't use.


What it can answer

Account / profile (needs a public profile; set STEAM_USER and "my"/"I" default to you — no SteamID needed):

  • "Who's on my friends list, and who's online right now?"
  • "Which of my friends own Helldivers 2 — and who's playing it now?"
  • "It's game night — what co-op games do my online friends and I all own?"
  • "Analyze my library — my backlog, and what I loved but abandoned."
  • "Which achievements am I missing in Hollow Knight, and which are my rarest?"
  • "What's on my wishlist, and is any of it on sale?"
  • "Based on what I play most, what should I check out next?"
  • "What's in my CS2 inventory, and which items are marketable?"

Account-independent (works for any game, no SteamID needed):

  • "Is Baldur's Gate 3 worth buying — and how are its recent reviews trending?"
  • "What's on sale right now, and what are the current top sellers?"
  • "How many people are playing Counter-Strike 2 this minute?"
  • "Will Hades II run on my Steam Deck?"
  • "What's the Community Market price of a Field-Tested AK-47 | Redline?"
  • "Is Elden Ring a soulslike? What are its community tags?"
  • "Find well-reviewed co-op roguelikes under $20."
  • "Recommend games like Hollow Knight that I don't already own."

Tools

ToolWhat it returnsNeeds key?
steam_resolve_vanity_urlVanity name / profile URL → SteamID64yes
steam_get_player_summaryStatus (Online/Away/In-Game…), current game, for 1–100 usersyes
steam_get_friend_listFriends enriched with name + live statusyes
steam_find_friends_who_ownWhich friends own (or are playing) a game — "who can I play X with"yes
steam_get_user_groupsThe Steam groups/clans a user is in (name, URL, member count)yes
steam_plan_coop_nightCo-op games the host + friends all own (ranked by owners) — or mode="new" for fresh co-op games none of them own yet; with who's online nowyes
steam_get_owned_gamesOwned games with total/recent hours (sortable)yes
steam_analyze_libraryBacklog, playtime distribution, abandoned games across a whole libraryyes
steam_get_recently_played_gamesLast-2-weeks playtimeyes
steam_get_steam_levelSteam community levelyes
steam_get_player_bansVAC / game / community / economy bansyes
steam_get_player_achievementsPer-game unlocked vs locked achievementsyes
steam_get_game_schemaA game's achievement definitions (names, descriptions, hidden flag)yes
steam_get_global_achievement_percentagesAchievement rarity (global %)no
steam_get_user_game_statsA user's in-game stats (kills, wins, distance…) for a gameyes
steam_get_rarest_unlocksA player's rarest achievement unlocks in a game (by global rarity)yes
steam_search_appsGame title → appid (+ price)no
steam_discoverFind/recommend games by tag, price, sale, platform, release window ("last N days") — optionally personalized to a user's taste (excludes games they own)no*
steam_should_i_buyBuying brief — price, lifetime + recent reviews (trend), tags, Metacritic, and your taste matchno*
steam_recommendRecommend games like a seed game or your taste, with the shared tags as the "why"no*
steam_get_app_detailsFull store details — play modes/co-op, controller, DLC, languages, requirements, Metacritic, Steam Deckno
steam_get_deck_compatibilitySteam Deck rating (Verified/Playable/Unsupported) + the per-criterion test resultsno
steam_get_dlcA game's DLC, with live prices and what's on saleno
steam_get_app_regional_pricingA game's price across regions (each in local currency)no
steam_get_workshop_itemWorkshop item metadata (game, tags, subscribers, favorites, views)no
steam_get_app_tagsA game's top community tags (Souls-like, Roguelike, Cozy…)no
steam_get_app_reviewsLifetime verdict, +/- counts, sample reviews; optional recent (last-N-days) score via review_filter='recent'no
steam_analyze_gameOne-call brief on a game: price, all-time and 30-day reviews, players now, Deck, tags, the latest update's effect on reviews, and newsno
steam_compare_gamesCompare 2-5 games side by side: price, reviews and their trend, players now, Steam Deck, co-op, tagsno
steam_get_update_impactDid an update change the reviews? Review score in the days before vs after each recent patchno
steam_analyze_app_reviewsAnalyze thousands of reviews: sentiment over time, by language and playtime, Steam Deck, key activations vs Steam purchases, refunds, developer repliesno
steam_get_featured_specialsGames currently on sale (regional)no
steam_get_store_highlightsTop sellers, new releases, or coming soonno
steam_get_wishlistA user's wishlist, with live prices + what's on saleyes
steam_get_inventoryA user's inventory — game items or Steam Community items (cards, emoticons…), with tradable/marketable flagsyes†
steam_get_market_priceCommunity Market price for an item (lowest/median/24h volume) + type/rarity + CS2 conditionno
steam_get_player_badgesBadges + the XP breakdown behind a Steam levelyes
steam_get_package_detailsPackage/bundle price + included gamesno
steam_compare_playersShared games between two users, with playtimeyes
steam_get_current_playersLive concurrent player countno
steam_get_app_newsRecent news / patch notesno

Every tool supports response_format: "markdown" (default) or "json", and all are annotated readOnlyHint: true. Prefer the composite tools (steam_should_i_buy, steam_recommend, steam_discover, steam_plan_coop_night) over chaining several calls, and ask for json only when you need to parse fields. Tools that read localized text accept a language parameter — a Steam language name like french or schinese (default english).

* steam_discover, steam_should_i_buy, and steam_recommend need no key for the store data; their personalization (passing a steamid to use a user's library/taste) requires a key and a public profile.

† steam_get_inventory reads a keyless endpoint, but it still has to know whose inventory — and turning a vanity name (or STEAM_USER) into a SteamID64 is itself a keyed call. Pass a raw 17-digit SteamID64 and it works with no key.

Prompts & resources

Beyond tools, the server ships prompts (guided one-click flows that orchestrate the tools) and resources (reference Steam entities by URI):

  • Prompts: what_should_i_play, is_it_worth_buying, plan_game_night, steam_deals, game_overview.
  • Resources: steam://app/{appid} (store details) and steam://user/{steamid} (profile + live status).

Recent reviews: steam_get_app_reviews with review_filter='recent' asks Steam for the exact review count and score of the last day_range days (default 30), the same numbers as the store page's "Recent Reviews" row. If Steam refuses that request it falls back to counting the newest reviews, up to recent_max_reviews, and marks the result sampled: true.

Whose reviews count: by default both scores count what the store page counts: Steam purchases only for a paid game (key activations are left out) and everyone for a free game. purchase_type='all' or 'steam' forces either.

Market prices: steam_get_market_price uses Steam's Community Market endpoints, which are undocumented and tightly rate-limited. Results are cached briefly; an item with no current listings reports its price as unavailable.


Setup

1. Get a free Steam Web API key (optional)

Skip this if you only want the 19 keyless tools — the server runs fine without a key and the account tools simply advertise themselves as unavailable.

To unlock the account tools, visit https://steamcommunity.com/dev/apikey, sign in, register a domain (any domain you control works; localhost is commonly used for personal keys), and copy the key. Usage is governed by the Steam Web API Terms of Use.

2. Install

The published package needs no checkout (Python 3.10+):

bash
uvx steam-mcp          # zero-install via uv (recommended)# orpip install steam-mcp  # run as: python -m steam_mcp.server

Both MCP Python SDK majors work (mcp>=1.28). On the v2 SDK the server speaks spec revision 2026-07-28 — stateless, no initialize handshake — advertises cache hints on its tool/prompt/resource listings, and can ask you which Steam account is yours when STEAM_USER isn't set (once per session, and only if your client supports elicitation). On the v1.x line it serves the initialize handshake that modern clients fall back to anyway. Nothing to configure either way.

TLS note: the HTTP client is httpx2, which verifies certificates against your operating system's trust store rather than a bundled CA list. If you run this somewhere minimal (a slim container with no system CA store, or behind a private CA), point SSL_CERT_FILE or SSL_CERT_DIR at a CA bundle.

3. Add it to your MCP client

Both settings are optional. STEAM_API_KEY unlocks the account tools; STEAM_USER (your Steam vanity name, SteamID64, or profile URL) makes those tools default to you whenever you don't name a user, so you never paste a SteamID. It's a public profile name, not a secret, and you can still pass a steamid to any call to override it.

Configure neither and you get the keyless server; configure both and you get everything.

Smaller tool set (optional). Every tool's definition goes into the model's context on every request, about 11.5k tokens for all 41. Set STEAM_MCP_TOOLS=essentials to load just 15: search, the one-call game brief, details, reviews, compare, should-I-buy, discover, recommend, update impact, sales, and your profile, library, library analysis, wishlist and co-op night. Add others by name (essentials,get_inventory), or list exactly the ones you want. The default is all. The built-in prompts may mention a tool your set leaves out.

Claude Code

bash
claude mcp add steam --env STEAM_API_KEY=YOUR_KEY --env STEAM_USER=your_steam_name -- uvx steam-mcp

STEAM_USER is optional — drop the second --env if you'd rather give a SteamID to each call.

Claude Desktop — install steam-mcp.mcpb from the latest release via Settings → Extensions and paste your key (and, optionally, your Steam name).

Everything else (Claude Desktop config, Cursor, Cline, Windsurf, VS Code, …) — drop this block into the client's MCP config file:

json
{  "mcpServers": {    "steam": {      "command": "uvx",      "args": ["steam-mcp"],      "env": {        "STEAM_API_KEY": "YOUR_KEY_HERE",        "STEAM_USER": "your_steam_name"      }    }  }}

Installing with an AI agent such as Cline? Point it at llms-install.md, which walks it through the setup.

Config locations: Claude Desktop claude_desktop_config.json (%APPDATA%\Claude\ on Windows, ~/Library/Application Support/Claude/ on macOS); Cursor .cursor/mcp.json; Cline cline_mcp_settings.json. Restart the client and the Steam tools appear. Running from a source checkout instead? Use "command": "python", "args": ["-m", "steam_mcp.server"].


Security

Read-only, official-Steam-only, and bring-your-own-key. In short:

  • Read-only — never writes, trades, posts, launches games, or buys anything.
  • Your key stays yours — read from STEAM_API_KEY; never written to disk, logged, cached, or put in output (and redacted from error messages).
  • Official hosts only — the request layer refuses any host that isn't api.steampowered.com / store.steampowered.com / steamcommunity.com (SSRF guard), with per-host rate limiting and retry/backoff.
  • Typed, validated inputs (extra="forbid"); no data kept between requests beyond a small TTL cache of non-user store data.

Full details and how to report issues are in SECURITY.md.


Versioning & stability

steam-mcp follows Semantic Versioning. As of 1.0, the following are the stable public surface — they won't change without a major (2.0) release:

  • Tool names and their input parameters (names, types, whether required, defaults)
  • JSON output fields (response_format: "json") — names, types, and structure
  • Prompt names/arguments and resource URI templates (steam://app/{appid}, steam://user/{steamid})
  • Core semantics: read-only, bring-your-own-key, prices in cents / playtime in minutes, and errors returned as strings

Within a major version, minor releases may add tools, prompts, resources, optional parameters, and JSON fields; patch releases are bug fixes only. The Markdown output wording, internal implementation, caching behavior, and which Steam endpoints back a given tool may change at any time and are not part of the contract.


License

MIT. Not affiliated with Valve. "Steam" is a trademark of Valve Corporation.

來源:README.md,提交 925da51

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

5
  1. v1.19.0最新Sep 24, 2026
  2. v1.18.0Sep 23, 2026
  3. v1.17.0Sep 23, 2026
  4. v1.16.1Sep 22, 2026
  5. v1.14.0Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。