内容
# steam-games-mcp
[](https://www.npmjs.com/package/steam-games-mcp)
[](https://github.com/Grinv/steam-games-mcp/actions/workflows/ci.yml)
[](LICENSE)
适用于 **Steam** 的 [MCP](https://modelcontextprotocol.io) 服务器:搜索游戏、查看商店详情、价格、评论、折扣和新闻(无需密钥),以及通过官方 **Steam Web API**(免费密钥)查看玩家资料、游戏库和成就。
与任何MCP客户端(Claude Desktop/Code、Cursor、VS Code、Cline等)通过stdio通信。
连接后,只需用自然语言询问您的代理。
**无需凭证(商店、搜索和发现):**
```
"查找《空洞骑士》并告诉我它的价格、类型和年龄评级。"
"最近的评论对《博德之门3》有何评价?"
"《赛博朋克2077》的评论在发布后是否有所恢复?"
"目前有哪些游戏折扣超过80%,好评率超过90%?"
"最近有哪些好评的游戏可以在Steam Deck上运行?"
"Steam首页目前有哪些折扣?"
"显示Steam的畅销榜和最新发售游戏。"
"《无人深空》最近有哪些补丁说明?"
"《艾尔登环》中的每个成就有多罕见?"
"现在有多少人正在玩《反恐精英2》?"
"获取appid 620、413150和1145360的当前价格。"
"对于appid 1245620和1086940,显示价格、评论百分比和Steam Deck状态。"
```
**使用免费API密钥 +您的`STEAM_ID`**(您的账户;参见[获取凭证](#获取凭证)):
```
"显示我的Steam个人资料。"
"按游戏时间列出我的游戏。"
"最近两周我玩了哪些游戏?"
"在我的愿望清单中,哪些游戏有折扣且评价良好?"
"列出《空洞骑士》的成就及其稀有度。"
"我的《艾尔登环》成就进度如何?"
"《gabelogannewell》个人资料的SteamID64是什么?"
```
## 安装
将其添加到您的MCP客户端配置中。商店/搜索工具无需凭证即可工作;玩家工具需要免费的Steam Web API密钥。
```json
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "steam-games-mcp"],
"env": {
"STEAM_API_KEY": "您的Steam Web API密钥(可选 — 启用玩家工具)",
"STEAM_ID": "您的steamid64或vanity名称(可选 — 默认值为玩家工具的'您')",
"STEAM_COUNTRY": "美国(可选 — 商店价格区域)",
"STEAM_LANGUAGE": "英语(可选 — 商店语言)"
}
}
}
}
```
> 将每个值替换为您自己的;删除您不需要的可选行。
> 免费密钥来自 <https://steamcommunity.com/dev/apikey>。**从源代码:**
> `npm ci && npm run build`,然后使用 `"command": "node"`,
> `"args": ["/ABS/PATH/steam-games-mcp/dist/index.js"]`。
### 一键安装(Claude Desktop)
下载 [**`steam-games-mcp.mcpb`**](https://github.com/Grinv/steam-games-mcp/releases/latest/download/steam-games-mcp.mcpb)
(始终是最新版本)并在Claude Desktop中打开 — **设置 → 扩展** — 然后
在安装表单中填写可选字段(API密钥、Steam ID、国家、语言)。无需编辑JSON。
也列在 [MCP 注册表](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.Grinv/steam-games-mcp&version=latest)
下,名称为 `io.github.Grinv/steam-games-mcp`。
## 获取凭证
商店、搜索和发现工具无需任何凭证 — 如果您只需要这些,请跳过本节。**玩家**工具(个人资料、游戏库、成就、愿望清单)需要免费的API密钥和公开的个人资料。三个简单的步骤:
1. **获取免费的Steam Web API密钥。** 登录 <https://steamcommunity.com/dev/apikey>,输入任意域名(例如 `localhost`),
并将密钥复制到 `STEAM_API_KEY` 中。
2. **找到您的Steam ID。** 将 `STEAM_ID` 设置为:
- 您的 **vanity 名称** — 个人资料网址的自定义部分
`steamcommunity.com/id/YOUR_NAME` → `YOUR_NAME`(自动解析),或
- 您的 **17位SteamID64** (`steamcommunity.com/profiles/7656…`; 或在 <https://steamid.io> 上查找)。
设置 `STEAM_ID` 后,您可以直接询问 "_我的_ 愿望清单 / 游戏库" — 如果没有,请每次为代理提供SteamID64(使用 `resolve_vanity_url` 转换名称)。
3. **公开您的个人资料**(适用于您自己的游戏库/成就):Steam → 个人资料 → **编辑个人资料** → **隐私设置** → 将 **我的个人资料** 和
**游戏详情** 设置为 **公开**。
> 密钥和Steam ID放入您的MCP客户端配置中(上面的`env`块)— 参见
> [docs/clients.md](docs/clients.md) 获取每个客户端的示例。永不提交它们。
## 功能
关键:**–** 无凭证 · **K** Steam Web API密钥。
| 工具 | 密钥 | 目的 |
| ------------------------- | --- | ------------------------------------------------------------------------------------------------------- |
| `search_games` | – | 按标题查找游戏 → appid(带价格) |
| `get_game` | – | 按appid **或名称**获取商店详情:价格、类型、平台、Metacritic、年龄评级、DLC、需求 |
| `get_items` | – | 批量获取商店卡(价格、评论百分比、**Steam Deck**、发布日期)以获取appid列表 — 一次调用 |
| `discover_games` | – | 查找游戏目录中的 **折扣**、**最近**、**Steam Deck** 和评级 — 无需appid |
| `get_game_reviews` | – | 评论摘要 + 最近的评论 |
| `get_review_histogram` | – | 评论趋势随时间变化(历史 + 最近) |
| `get_prices` | – | 批量获取多个appid的当前价格/折扣 |
| `get_specials` | – | Steam首页折扣 |
| `get_featured` | – | 精选部分(畅销榜、新发售、…) |
| `get_game_news` | – | 最近的新闻 / 补丁说明 |
| `get_global_achievements` | – | 全球成就解锁率(稀有度) |
| `get_current_players` | – | 当前在线玩家数量 |
| `get_wishlist` | – | 玩家愿望清单appid(公开个人资料) |
| `get_game_achievements` | K | 完整成就列表(名称、描述)+ 稀有度 |
| `resolve_vanity_url` | K | 自定义个人资料名称 → SteamID64 |
| `get_player_summary` | K | 玩家公开个人资料 |
| `get_owned_games` | K | 玩家的游戏 + 游戏时间 |
| `get_recently_played` | K | 最近两周内玩过的游戏 |
| `get_player_achievements` | K | 玩家在游戏中的成就进度 |
**两个层级。** 商店/搜索 + 发现工具(`store`/`api.steampowered.com`)
无需凭证 — 包括目录范围的发现(`discover_games`:折扣、新发售、Steam Deck、评级)和批量价格/评论检查(`get_items`)。
玩家工具需要免费的 **`STEAM_API_KEY`** 和 **公开** 个人资料;当密钥未设置时,它们会返回清晰的消息。设置 **`STEAM_ID`** (SteamID64或vanity名称)使这些工具默认为您,这样“我的愿望清单/游戏库”无需每次传递ID即可工作。
> 无第三方服务:交易发现和评论来自Steam自己的(无密钥)商店API。SteamDB未使用(无公开API + 禁止爬取)。
> Steam没有价格历史API,因此不提供。 与Valve无关。
## 开发
```sh
npm install
npm run build # 类型检查 + 捆绑到 dist/index.js
npm test # node:test(模拟,离线)
npm run lint
npm run format
npm run check:api # 上游健康检查(商店无密钥;玩家检查需要STEAM_API_KEY)
npm run inspector # 在MCP检查器下运行
```
运行时需要Node ≥ 18。 贡献者/代理指南: [AGENTS.md](AGENTS.md)。
每个客户端的配置和所有可调参数: [docs/clients.md](docs/clients.md)。
## 更新
- **npx:** 解锁的 `npx -y steam-games-mcp` 将在下一次运行中获取最新版本。
- **`.mcpb` 包:** 从发布页面下载新包并重新安装。
- **从源代码:** `git pull && npm ci && npm run build`.
## 许可证
[MIT](LICENSE) © Grinv