关于 Steam MCP Server
Steam MCP Server 通过本地 stdio 服务,将 Steam Web API 数据提供给 Claude Desktop 和 Claude Code。工具涵盖玩家资料、游戏库、成就、好友、游戏新闻和玩家统计。
主要功能
- 01查询公开玩家资料
- 02查看拥有及近期游玩游戏
- 03获取成就与好友动态
- 04比较游戏库
- 05搜索游戏并查看新闻
- 06查询玩家数与封禁状态
适用场景
- 01查看玩家游戏库和游玩时长
- 02与其他用户比较拥有的游戏
- 03检查好友当前状态及近期动态
- 04查找游戏新闻和玩家统计
MCP 相关
该服务通过本地 stdio 将 Steam Web API 操作作为 MCP 工具提供给兼容客户端。账户相关工具需要 API 密钥;公开游戏搜索和玩家人数查询无需密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @j.meyer/steam-mcp-serverSTEAM_API_KEY密钥Steam Web API key for account-related tools.MY_STEAM_IDDefault SteamID64 used when a tool does not receive one.STEAM_FAMILY_MEMBER_IDSOptional comma-separated SteamID64 values for the family library.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| steamids | array | 否 | 可选的 SteamID64 列表。省略时使用你自己的 ID。 |
详细介绍
steam-mcp-server
通过 stdio 在本地运行的 MCP 服务,将 Steam Web API 封装为 Claude Desktop 或 Claude Code 可用的工具。
可用工具
| 工具 | 描述 |
|---|---|
get_player_profile | 一个或多个用户的公开个人资料(名称、头像、状态) |
get_owned_games | 用户拥有的游戏,包括游戏时长 |
get_family_owned_games | 统一的家庭游戏库及所有权信息 |
get_recently_played_games | 过去两周内玩过的游戏 |
get_player_achievements | 用户在特定游戏中的成就 |
get_friend_list | 用户的 Steam 好友列表 |
get_friends_current_status | 好友的当前状态和正在玩的游戏 |
get_friends_recent_activity | 好友的近期动态 |
compare_owned_games | 与另一位用户共同拥有的游戏 |
get_app_news | Steam 游戏的最新新闻和更新 |
get_global_achievement_percentages | 解锁各项成就的玩家百分比 |
get_current_players | 游戏当前玩家人数 |
resolve_vanity_url | 将自定义 URL 转换为 SteamID64 |
search_game | 搜索游戏并返回其 AppID |
get_player_bans | VAC、社区、交易和游戏封禁状态 |
所查询的 Steam 个人资料必须是公开的,但使用自己的 API 密钥查询自己的 SteamID 时除外。 账户相关工具需要 API 密钥;当前玩家人数和游戏搜索等公开工具无需密钥即可运行。
1. 获取 Steam API 密钥
访问 https://steamcommunity.com/dev/apikey,使用 Steam 账户登录并生成 API 密钥。Steam 要求你的游戏库中至少有一款游戏,才会发放密钥。
2. 安装
要求:Node.js 18 或更高版本。
npm install
cp .env.example .env # macOS/Linux
# Windows PowerShell: Copy-Item .env.example .env
# Edit .env and add your STEAM_API_KEY
npm run build
.env 文件包含机密信息,不得公开。如果你的网络使用 SSL 检查,请将 STEAM_EXTRA_CA 设置为私有 CA 证书的路径。只有在可信网络中不得已时,才使用 STEAM_TLS_INSECURE=1。
默认情况下,Steam 响应会在内存中缓存 30 秒,请求之间至少间隔 100 毫秒,以减少触发速率限制错误的情况。设置 STEAM_CACHE_TTL_MS=0 可禁用缓存;如有需要,也可调整 STEAM_MIN_REQUEST_INTERVAL_MS。
家庭游戏库
将家庭成员的 SteamID64 值配置为逗号分隔的列表。系统会自动包含 MY_STEAM_ID:
MY_STEAM_ID=76561199080486814
STEAM_FAMILY_MEMBER_IDS=76561100000000001,76561100000000002
get_family_owned_games 工具会返回每款游戏的 appid、名称和所有者的 SteamID64。如果多个账户都拥有某款游戏,owner 中会包含多个 ID。Steam Web API 不会直接公开仅通过 Steam Families 借用的游戏;它只会返回每个账户公开为自有的游戏。
3. 使用 MCP Inspector 测试
建议在将服务连接到实际客户端之前先进行测试。
npm run inspector
这会打开浏览器界面,你可以在其中手动列出并执行工具,以验证它们是否能正常响应。
如需测试已发布的 npm 包,而不是本地构建版本:
npx --yes "@modelcontextprotocol/inspector" npx --yes --package "@j.meyer/[email protected]" steam-mcp-server
4. 连接到 Claude Desktop
编辑 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
使用项目的绝对路径添加服务:
{
"mcpServers": {
"steam": {
"command": "npx",
"args": [
"--yes",
"--package",
"@j.meyer/[email protected]",
"steam-mcp-server"
],
"env": {
"STEAM_API_KEY": "your_api_key_here"
}
}
}
}
重启 Claude Desktop。steam 服务应会显示在工具菜单中。
5. 连接到 Claude Code
claude mcp add steam -- npx --yes --package @j.meyer/[email protected] steam-mcp-server
如果 STEAM_API_KEY 定义在 .env 文件中,或定义在运行 claude 时所在的 Shell 环境中,Claude Code 会继承该变量。
发布项目
此服务设计为通过 stdio 在本地运行。每位用户都必须自行配置 STEAM_API_KEY 和 MY_STEAM_ID。切勿复制 .env 文件,也不要在已发布的配置中包含 API 密钥。
创建发布版本前,请在全新副本中验证安装:
npm ci
npm run build
npm test
npm run inspector
如果将其发布为 npm 包,npm publish 会自动构建项目,并且仅分发 dist、README.md、.env.example 和 LICENSE。
此包可通过 @j.meyer/steam-mcp-server 获取。
自动发布
推送匹配 vX.Y.Z 的标签会运行 .github/workflows/publish.yml。此工作流会验证标签是否与 package.json 和 server.json 中的版本一致,然后运行构建、测试、审计和包验证,最后发布到 npm、官方 MCP Registry 和 GitHub Releases。
此工作流使用通过 GitHub OIDC 实现的 npm Trusted Publishing,因此无需 NPM_TOKEN 密钥。在首次自动发布前,请在 npm 包设置中配置 Trusted Publisher:
- 提供方:GitHub Actions
- 用户:
julianmeyerr - 仓库:
steam-mcp-server - 工作流:
publish.yml - 允许的操作:
npm publish
MCP Registry 发布同样使用 GitHub OIDC,无需额外密钥。Registry 元数据定义在 server.json 中,所有权通过 package.json 中的 mcpName 验证。
将版本更新合并到 main 后,推送相应的标签:
git push origin v1.1.6
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE。
如何获取 SteamID64
大多数工具需要的是 64 位的 steamid(例如 76561197960435530),而不是用户名。你可以使用 resolve_vanity_url 工具转换自定义 Steam URL,或使用 SteamID.io 等外部服务。
后续可能的步骤
- 添加更多 Steam Store 工具,例如评论、价格和游戏详情。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。