Steam游戏库管理服务

一个功能丰富的Steam游戏库管理服务器,通过Model Context Protocol为AI助手提供完整的Steam游戏库访问能力,支持跨平台使用。

  • by Praeses0
  • TypeScript
  • 本地部署
  • 14 星标
  • 更新于
在 GitHub 查看 Praeses0/steam-mcp

使用说明

Steam MCP服务器

功能丰富 模型上下文协议 服务器,让AI助手完全访问您的Steam游戏库。工作在 Linux、macOS和Windows.14个整合工具,涵盖66项行动——大部分工作来自本地文件 不需要API密钥.可选Steam Web API密钥解锁在线数据,如成就、朋友和完整的图书馆访问。

适用于Claude Desktop、Claude Code或任何兼容MCP的客户端。

它能做什么?

问你的AI助手一些事情,比如:

  • “我安装了哪些游戏?”
  • “搜索ck3”→ 通过缩写匹配找到十字军国王三世
  • “Steam使用了多少磁盘空间?”→ 按游戏完全细分
  • “查找我可以清理的孤立数据”→ 识别剩余的compatadata/shadercache
  • “我应该为这款游戏使用哪个Proton版本?”
  • “安装空心骑士”→ 查找appid,告诉Steam安装它
  • “为我随机选择一个游戏”
  • “显示我的完整游戏历史”→ 整个库中的所有游戏时间
  • “将我的Lutris游戏作为Steam快捷方式导入”
  • “为哈迪斯展示我的成就”→ 解锁状态、完成百分比、全局统计数据
  • “现在谁在线?”→ 好友列表,包括在线状态和当前游戏
  • “我的愿望清单上有什么?”
  • “显示Elden Ring的评论”
  • “打败空心骑士要多久?”

安装

npm(推荐)

npx @praeses/steam-mcp

无需安装,只需将其添加到MCP客户端配置中即可(见下文)。

全局安装

npm install -g @praeses/steam-mcp

然后使用 steam-mcp 作为命令而不是 npx @praeses/steam-mcp.

使用Claude Desktop进行配置

添加到您的Claude Desktop配置中:

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

使用Claude代码进行配置

添加一个 .mcp.json 在项目根目录中,或添加到 ~/.claude.json 对于全系统访问:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

注: 这 STEAM_API_KEY 是可选的。大多数工具在没有它的情况下都能工作。只有少数操作(成就、朋友、拥有的游戏、愿望清单、个人资料)需要它。在 steamcommunity.com/dev/apikey.

类别筛选

为了进一步减少上下文窗口的使用,请通过以下方式仅启用特定的工具类别 STEAM_TOOLS env 是:

{
  "env": {
    "STEAM_TOOLS": "core,manage,compat"
  }
}

可用类别及其工具:

类别 工具 描述
core games, library, steam_status 游戏浏览、库统计、Steam状态
compat proton, diagnostics Proton/Wine兼容性,日志解析
manage game_control, game_config, shortcuts 安装/启动/验证、启动选项、非Steam快捷方式
storage storage 磁盘使用、清理、着色器缓存、云保存、备份
api player, workshop 玩家简介/成就/好友、工作坊项目
market deals 销售支票、愿望清单、图书馆估价
insights insights 完成统计、时间线、年度回顾、游戏历史、导出
content game_info 评论、新闻、媒体、HLTB、PCGamingWiki修复

未设置时,所有类别都将启用(14个工具,约3200个上下文标记)。

先决条件

  • Node.js 18+
  • 蒸汽安装在默认位置:
    • Linux: ~/.local/share/Steam/
    • macOS: ~/Library/Application Support/Steam/
    • 视窗: C:\Program Files (x86)\Steam\

Proton/Wine工具(兼容性跟踪、前缀检查、崩溃日志)仅适用于Linux。所有其他工具都可以跨平台工作。

工具

每个工具都使用 action 参数来选择操作。14个工具共涵盖66个动作。

games --游戏发现和浏览

动作 描述
list 列出已安装的游戏,包括过滤、排序和分页
get 通过appid获取游戏的完整详细信息
search 带有缩写匹配的智能搜索(例如“ck3”→ 十字军国王三世)
compare 并排比较两款游戏
random 随机选择一款已安装的游戏
unplayed 查找您拥有但尚未玩过的游戏

library --库文件夹和统计信息

动作 描述
list 列出所有Steam库文件夹的大小和可用空间
stats 汇总统计数据:总游戏数、播放时间、磁盘使用情况

steam_status --Steam客户端状态

动作 描述
status 检查蒸汽是否正在运行
queue 查看当前下载队列
progress 检查游戏的下载进度

proton --Proton/Wine兼容性(Linux)

动作 描述
list_games 列出所有使用Proton/Wine的游戏,包括版本和前缀大小
info 获取特定游戏的兼容性详细信息
versions 列出已安装的Proton版本以及使用它们的游戏
db_rating 获取ProtonDB社区评级
recommend 获取游戏的Proton版本推荐
prefix 检查Wine/Proton前缀(Windows版本、文件数、大小)
crash_logs 查找并读取崩溃转储和日志

storage --磁盘管理

动作 描述
disk_report 每个游戏磁盘使用情况明细(安装+兼容性+着色器+工作室)
orphaned 查找未安装游戏的剩余数据
cleanup 获得节省空间的清理建议
shader_cache 特定游戏的着色器缓存大小
shader_stats 所有游戏的着色器缓存概述
saves_list 列出每个游戏的本地云保存数据
saves_stats 云保存聚合统计数据
backup 备份云保存到目录

game_control --游戏动作

动作 描述
install 通过Steam安装游戏
uninstall 卸载游戏
launch 启动游戏
verify 验证游戏文件的完整性
move 将游戏移动到另一个库文件夹
store_page 打开Steam商店页面

game_config --配置和调整

动作 描述
get_launch_opts 阅读当前启动选项
set_launch_opts 设置启动选项
presets 列出/应用启动选项预设(MangoHud、GameMode、Vulkan等)
mangohud 显示、设置或重置MangoHud配置
steam_settings 查看Steam客户端设置

player -播放器数据(大多数操作需要API密钥)

动作 描述
summary 带有在线状态和帐户信息的玩家个人资料
level 蒸汽等级、经验值和徽章
bans VAC和游戏禁令状态
friends 好友列表,包括在线状态和当前游戏
achievements 每场比赛成就解锁状态
global_achievements 全球成就解锁百分比
schema 游戏的成就和统计定义
owned 完整的自有游戏列表,包括游戏时间
recent 最近玩的游戏

workshop --蒸汽车间

动作 描述
list 列出游戏中已安装的工作室项目
stats 所有游戏的工作坊统计数据
search 搜索Steam工作室

shortcuts --非Steam游戏快捷方式

动作 描述
list 列出所有非Steam快捷方式
add 添加新快捷方式
remove 删除快捷方式
import_lutris 从Lutris导入游戏

deals --定价和愿望清单

动作 描述
check_sale 查看游戏是否正在打折
wishlist_deals 在您的愿望清单上找到打折游戏
wishlist 查看包含价格和评论的完整愿望清单
library_value 估计图书馆总价值

insights --分析和历史

动作 描述
completion 顶级游戏的成就完成率
timeline 逐月游戏活动
year_review 年度游戏回顾
play_history 完整的游戏时间历史记录(已安装+未安装的游戏)
export 将库数据导出为JSON或CSV

game_info --游戏内容和元数据

动作 描述
reviews 带有分数的用户评论
news 最新新闻文章
media 游戏插图URL和本地覆盖
hltb LongToBeat预计完成时间
pcgamingwiki PCGamingWiki修复和调整

diagnostics --日志解析

动作 描述
compat_log 解析Proton/Wine兼容性日志
shader_log 解析着色器编译日志

关键亮点

  • 最小的上下文占用空间 --14个工具,约3200个代币(低于v1中的66个工具/约8000个代币)
  • 跨平台 --Linux、macOS和Windows(Proton工具仅适用于Linux)
  • 不需要API密钥 对于大多数操作,直接从Steam的本地文件读取
  • 智能搜索 --“ck3”找到“十字军国王三世”,“ror2”找到“雨的风险2”
  • 完整游戏历史 --您玩过的每个游戏的播放时间,而不仅仅是安装的游戏
  • 存储分析 --显示磁盘空间的确切位置(安装+兼容数据+着色器缓存+车间)
  • 孤立检测 --从未安装的游戏中查找GB的剩余数据
  • 多馆 --支持多个Steam库文件夹,包括外部驱动器
  • 类别筛选 --通过仅启用所需的工具组 STEAM_TOOLS env 是
  • 自定义VDF解析器 --文本和二进制格式,无外部依赖

发展

从源代码安装

git clone https://github.com/Praeses0/steam-mcp.git
cd steam-mcp
npm install
npm run build

命令

npm run dev      # Run with tsx (auto-reload)
npm run build    # Compile TypeScript
npm test         # Run tests

建筑

src/
├── index.ts                 # Server entry, category-based tool registration
├── vdf/
│   ├── parser.ts            # Text VDF recursive descent parser + serializer
│   ├── binary-parser.ts     # Binary VDF parser (shortcuts.vdf)
│   ├── binary-writer.ts     # Binary VDF writer (shortcut management)
│   └── types.ts             # VdfValue, VdfObject types
├── steam/
│   ├── paths.ts             # Cross-platform Steam dir resolution, user detection
│   ├── manifests.ts         # App manifest reading with mtime caching
│   ├── library.ts           # Library folder operations + disk info
│   ├── userdata.ts          # localconfig.vdf read/write
│   ├── compat.ts            # Proton/Wine compatibility tracking
│   ├── workshop.ts          # Workshop manifest reading
│   ├── shortcuts.ts         # Binary shortcuts.vdf read/write
│   ├── api.ts               # Steam Web API client
│   ├── api-types.ts         # Shared API response types
│   ├── wishlist.ts          # Wishlist data fetching
│   ├── logs.ts              # Steam log parsing
│   └── types.ts             # Domain types
├── tools/                   # 14 consolidated MCP tools (one file per tool)
└── util/
    ├── format.ts            # formatBytes, formatPlaytime, formatTimestamp
    ├── cache.ts             # FileCache<T> with mtime invalidation
    └── fs.ts                # Shared filesystem utilities

许可证

麻省理工学院