article
README
🚀 游戏发现MCP服务器
这是一个模型上下文协议(MCP)服务器,可在Windows PC上发现并管理来自多个平台的已安装游戏,这些平台包括Steam、Epic Games、GOG、Windows应用商店/Xbox,以及其他已安装的程序。
🚀 快速开始
本项目依赖于.NET 10.0或更高版本,且仅支持Windows操作系统。
✨ 主要特性
- 多平台游戏发现:自动扫描以下平台的游戏:
- Steam(包括自定义库位置)
- Epic Games Store
- GOG(Good Old Games)
- Xbox/Windows应用商店游戏
- EA游戏
- Ubisoft Connect游戏
- Rockstar游戏
- Battle.Net游戏
- 其他已安装程序(通过Windows注册表)
- 全面的游戏信息:提供详细信息,包括:
- 游戏名称和平台
- 安装路径和可执行文件位置
- 安装日期和大小
- 特定平台的元数据
- 可用的MCP工具:
discover_games:查找所有平台上安装的所有游戏get_game_info:获取特定游戏的详细信息launch_game:按名称启动游戏(如果找到可执行文件)
📦 安装指南
本项目依赖于.NET 10.0或更高版本,且仅支持Windows操作系统。
💻 使用示例
基础用法
在VS Code中使用的配置示例:
{
"servers": {
"McpServer1": {
"type": "stdio",
"command": "dnx",
"args": [
"GameMcpServer@1.0.4",
"--yes"
]
}
}
}
高级用法
以下是各个工具的使用说明:
discover_games
发现所有受支持平台上安装的所有游戏。
在Claude中的示例用法: "Can you discover all the games I have installed on my PC?"
返回:包含以下内容的JSON对象:
- 游戏总数
- 按平台分组的游戏
- 包含元数据的所有游戏的详细列表
get_game_info
按名称获取特定游戏的详细信息。
参数:
gameName:要搜索的游戏名称
示例用法: "Get information about Cyberpunk 2077"
launch_game
如果游戏有有效的可执行路径,则按名称启动游戏。
参数:
gameName:要启动的游戏的确切名称
示例用法: "Launch Steam's Half-Life 2"
🔧 技术细节
工作原理
服务器使用多种发现方法:
- Steam游戏:
- 从注册表中读取Steam安装路径
- 解析
libraryfolders.vdf以获取自定义库位置 - 扫描
steamapps/common目录以查找游戏文件夹
- Epic Games:
- 从
%ProgramData%/Epic/EpicGamesLauncher/Data/Manifests读取游戏清单 - 解析JSON清单文件以获取游戏信息
- 从
- GOG游戏:
- 在
SOFTWARE\GOG.com\Games下查询Windows注册表 - 提取游戏路径和可执行文件信息
- 在
- Xbox/Windows应用商店:
- 扫描
%ProgramFiles%/WindowsApps目录 - 解析AppxManifest.xml文件以获取应用程序信息
- 过滤游戏应用程序
- 扫描
- 注册表程序:
- 扫描Windows卸载注册表项
- 使用启发式方法识别类似游戏的应用程序
- 过滤掉系统实用程序和非游戏软件
错误处理
服务器设计为即使在以下情况下也能保持健壮并继续运行:
- 某些平台未安装
- 注册表项无法访问
- 目录有权限限制
- 个别游戏的元数据损坏 错误会记录到标准错误输出,并且不会中断其他平台的发现过程。
安全考虑
- 服务器仅读取系统信息,不进行任何修改
- 游戏启动需要通过MCP客户端获得用户的明确确认
- 除了启动可执行文件外,所有文件系统访问都是只读的
- 注册表访问是只读的
📚 详细文档
开发依赖
本项目使用以下技术:
- .NET 10.0
- .NET的模型上下文协议SDK
- Microsoft.Extensions.Hosting用于应用程序生命周期管理
微信扫一扫