游戏发现MCP服务器

一种模型上下文协议(MCP)服务器,用于发现和管理Windows PC上来自各种平台的已安装游戏,包括Steam、Epic games、GOG、Windows Store/Xbox和其他已安装程序。
特性
- 多平台游戏发现:自动扫描来自以下来源的游戏:
- Steam(包括自定义库位置) - Epic游戏商店 - GOG(老游戏) - Xbox/Windows应用商店游戏 - EA游戏 - Ubisoft Connect游戏 - Rockstar游戏 - 战斗。网络游戏 - 其他已安装程序(通过Windows注册表)
- 全面的游戏信息:提供详细信息,包括:
- 游戏名称和平台 - 安装路径和可执行文件位置 - 安装日期和尺寸 - 平台特定元数据
- MCP工具可用:
- discover_games:查找所有平台上安装的所有游戏 - get_game_info:获取特定游戏的详细信息 - launch_game:按名称启动游戏(如果找到可执行文件)
先决条件
- .NET 10.0或更高版本
- Windows操作系统
使用VS代码
{
"servers": {
"GameMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"GameMcpServer@1.0.8",
"--yes"
]
}
}
}可用工具
discover_games
从所有支持的平台上发现所有已安装的游戏。
Claude中的示例用法: “你能发现我在电脑上安装的所有游戏吗?”
退货: JSON对象:
- 游戏总数
- 按平台分组的游戏
- 包含元数据的所有游戏的详细列表
get_game_info
按名称获取特定游戏的详细信息。
参数:
gameName:要搜索的游戏名称
示例用法: “获取有关赛博朋克2077的信息”
launch_game
如果游戏具有有效的可执行路径,则按名称启动游戏。
参数:
gameName:要发布的游戏的确切名称
示例用法: 《Steam的半条命2》
运作原理
服务器使用多种发现方法:
- Steam游戏:
- 从注册表读取Steam安装路径 - 作语法分析 libraryfolders.vdf 用于自定义库位置 - 扫描 steamapps/common 游戏文件夹目录
- 史诗游戏:
- 从以下位置读取游戏清单 %ProgramData%/Epic/EpicGamesLauncher/Data/Manifests - 解析JSON清单文件以获取游戏信息
- GOG游戏:
- 查询Windows注册表 SOFTWARE\GOG.com\Games - 提取游戏路径和可执行信息
- Xbox/Windows应用商店:
- 扫描 %ProgramFiles%/WindowsApps 目录 - 解析AppxManifest.xml文件以获取应用程序信息 - 游戏应用程序过滤器
- 注册表程序:
- 扫描Windows卸载注册表项 - 使用启发式方法识别类似游戏的应用程序 - 过滤掉系统实用程序和非游戏软件
错误处理
该服务器设计坚固,即使在以下情况下也能继续运行:
- 某些平台尚未安装
- 注册表项不可访问
- 目录有权限限制
- 单个游戏的元数据已损坏
错误会记录到stderr中,不会中断其他平台的发现过程。
安全注意事项
- 服务器只读取系统信息,不修改任何内容
- 游戏启动需要通过MCP客户端进行明确的用户确认
- 除启动可执行文件外,所有文件系统访问都是只读的
- 注册表访问是只读的
发展
本项目使用:
- .NET 10.0
- 的模型上下文协议SDK。网
- 微软。扩展。应用程序生命周期托管
