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

@xiawan-play/steam-tools-mcp

v0.3.3

Published

A Steam MCP server with Chinese-friendly high-level tools for profiles, libraries, game snapshots, achievements, and app discovery.

Readme

@xiawan-play/steam-tools-mcp

一个面向 Node.js 的 Steam MCP 服务,聚焦中文用户常用的高频场景:资料、游戏库、单游戏快照、成就、新闻和应用解析。

特性

  • 只保留高频事实型工具,不暴露底层原始 API explorer;攻略类工具只整合官方成就和 Steam 指南中的可追溯事实。
  • steam_get_* 负责通用查询和公共事实视图,steam_me_* 负责默认账号主入口、专项视图和快捷入口。
  • 单游戏工具统一支持 appidquery,可直接输入中文游戏名。
  • 返回结构尽量统一为 target / summary / items / sections / warnings,更适合模型消费。

快速开始

直接作为 MCP 运行

npx -y @xiawan-play/steam-tools-mcp

如需读取用户数据

读取资料、游戏库、成就、好友等用户数据通常需要 STEAM_WEB_API_KEY;长期使用 steam_me_* 时建议同时配置 STEAM_DEFAULT_STEAMID

$env:STEAM_WEB_API_KEY="YOUR_WEB_API_KEY"
$env:STEAM_DEFAULT_STEAMID="YOUR_STEAM_ID64"
$env:PROXY_URL="http://YOUR_PROXY_HOST:PORT"

本地开发

npm install
npm run sync:steam-spec
npm run build
npm run check:tool-registry
npm run dev

MCP 配置

推荐配置

{
  "mcpServers": {
    "steam-tools": {
      "command": "npx",
      "args": [
        "-y",
        "@xiawan-play/steam-tools-mcp"
      ],
      "env": {
        "STEAM_WEB_API_KEY": "YOUR_WEB_API_KEY",
        "STEAM_DEFAULT_STEAMID": "YOUR_STEAM_ID64",
        "PROXY_URL": "http://YOUR_PROXY_HOST:PORT"
      }
    }
  }
}

常用环境变量

| 变量 | 默认值 | 作用 | | --- | --- | --- | | STEAM_WEB_API_KEY | 无 | 默认使用的 Steam API Key。很多资料、游戏库、成就相关工具都依赖它。 | | STEAM_DEFAULT_STEAMID | 无 | 默认账号的 SteamID64。steam_me_* 和部分默认用户查询会自动使用它。 |

其他可选环境变量

| 变量 | 默认值 | 作用 | | --- | --- | --- | | STEAM_APP_LIST_CACHE_TTL_MS | 21600000 | 应用目录缓存时间,单位毫秒。 | | STEAM_REQUEST_TIMEOUT_MS | 30000 | Steam API 请求超时时间,单位毫秒。 | | PROXY_URL | 无 | 项目统一使用的代理环境变量;配置后会用于所有外部 HTTP 请求。 | | MCP_TRANSPORT | stdio | 传输方式,可选 stdiohttp。 | | HOST | 127.0.0.1 | HTTP 模式监听地址。 | | PORT | 3000 | HTTP 模式监听端口。 |

完整参数说明见 docs/configuration.md

工具总览

公共主入口

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_get_player_profile_overview | 玩家资料总览 | 通用玩家主入口,聚合玩家资料、封禁、等级、徽章和最近游玩。 | | steam_get_library_overview | 游戏库总览 | 通用玩家游戏库主入口,聚合玩家拥有的游戏、最近游玩和常玩游戏。 | | steam_get_app_snapshot | 游戏快照 | 公共单游戏主入口,聚合新闻、在线人数和全局成就。 |

公共专项视图

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_get_player_game_achievements | 玩家游戏成就 | 通用玩家单游戏专项视图,查看某位玩家在某个游戏里的成就、完成率和可选统计。 | | steam_get_app_news | 游戏新闻 | 公共单游戏专项视图,查看某个游戏的 Steam 新闻,并可选附带在线人数。 | | steam_get_achievement_roadmap | 全成就攻略 | 公共单游戏攻略事实视图,整合官方成就清单和 Steam 指南中的可追溯事实,例如 missable、co-op 和条件说明。 | | steam_get_global_achievement_overview | 全局成就总览 | 公共单游戏专项视图,查看某个游戏的全局成就完成率。 | | steam_get_price_overview | 价格与史低 | 公共价格专项视图,查看 app、sub 或 bundle 的当前最低价、历史最低价、史低日期,以及当前是否等于史低。 |

目标解析与候选

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_search_apps | 搜索游戏 | 按名称搜索游戏,适合拿候选列表。 | | steam_resolve_app | 解析游戏目标 | 把游戏名或 AppID 解析成最可能的目标游戏。 |

默认账号主入口

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_me_profile | 我的资料 | 默认账号主入口,查看我的资料总览。 | | steam_me_library | 我的游戏库 | 默认账号主入口,查看我的游戏库总览。 | | steam_me_game_snapshot | 我的游戏快照 | 默认账号单游戏主入口,查看我与某个游戏的关系、新闻和成就。 |

默认账号专项视图

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_me_game_achievements | 我的游戏成就 | 默认账号单游戏专项视图,查看我在某个游戏里的成就和完成率。 | | steam_me_friends | 好友列表 | 默认账号专项视图,查看好友列表,可选补充资料和封禁信息。 | | steam_me_friend_activity | 好友在线动态 | 默认账号专项视图,查看哪些好友在线、在玩游戏或最近活跃。 | | steam_me_friend_network | 好友关系图谱 | 默认账号专项视图,生成好友活动分组和 graph 视图。 | | steam_me_library_compare | 我的库对比 | 默认账号专项视图,把我的库和另一位玩家做对比。 | | steam_me_backlog_candidates | 我的积压候选 | 默认账号专项视图,找出适合开坑的积压游戏。 | | steam_me_achievement_hunt | 我的成就补完候选 | 默认账号专项视图,找出离全成就不远的游戏。 | | steam_me_game_feed | 我的游戏动态流 | 默认账号专项视图,按最近游玩、常玩或显式 App 生成个人动态流。 |

默认账号快捷入口

| Tool ID | 中文名 | 说明 | | --- | --- | --- | | steam_me_recently_played | 我的最近游玩 | 默认账号快捷入口,只看最近玩过的游戏。 | | steam_me_badges | 我的徽章 | 默认账号快捷入口,只看等级和徽章。 | | steam_me_bans | 我的封禁摘要 | 默认账号快捷入口,只看默认账号的封禁状态。 |

使用说明

  • 大多数用户数据场景都需要 STEAM_WEB_API_KEY,公开新闻和在线人数这类接口通常可以直接查。
  • steam_search_appssteam_resolve_app 依赖应用目录能力,也需要 STEAM_WEB_API_KEY;即使传入数字 AppID,解析阶段也会先做目录校验。
  • steam_me_* 依赖 STEAM_DEFAULT_STEAMID 作为默认账号;未配置时会返回明确错误。
  • 不确定该用哪个单游戏工具时,优先使用 steam_get_app_snapshotsteam_me_game_snapshot
  • steam_me_recently_playedsteam_me_badgessteam_me_bans 属于高频快捷入口;如果需要完整上下文,优先使用 steam_me_profile
  • 单游戏工具统一支持 appidqueryquery 可直接输入中文游戏名。
  • steam_get_achievement_roadmap 会抓取 Steam Guides,但只返回带来源的攻略事实和证据片段,不输出模型自行推断的阶段路线。
  • steam_get_price_overview 支持 appidsubidbundleid 三种目标;其中 query 仅用于解析 app。
  • 如果终端环境访问外部站点不稳定,但浏览器或 Steam 客户端可以正常打开,可统一配置 PROXY_URL,例如 http://YOUR_PROXY_HOST:PORT
  • 返回结果会优先补充 localizedNamedisplayName;会先用官方 appdetails,必要时再回退到官方商店页展示名,仍拿不到中文名时才保留原始名称。
  • 中文 query 对官方商店名和常见本地化标题支持较好;如果某个游戏在 Steam 商店本身没有稳定中文标题,仍建议直接传 appid
  • 好友、游戏库、成就等结果仍然会受目标账号隐私设置影响。
  • Steam 官方文档里的 ISteamApps.GetAppList 当前已标记为 deprecated,本服务内部不会把它作为对外工具暴露。
  • steam_get_price_overview 当前使用第三方公开价格源补充史低信息;如果第三方暂时不可用,工具会直接返回错误或 warning。

开发说明

  • 工具注册统一走 src/tools/register-steam-tool.ts
  • npm run check:tool-registry 会检查 src/tools 下是否误用了 server.registerTool(...)
  • 同步后的接口快照保存在 src/generated/steam-web-api-spec.json,仅作为底层调用数据,不再直接暴露为对外工具。