返回 MCP 目录
public公开dns本地运行

game-mcp

一个用于Windows系统的MCP服务器,能够自动发现和管理来自Steam、Epic Games、GOG等多个平台的已安装游戏,提供游戏信息查询和启动功能。

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"

🔧 技术细节

工作原理

服务器使用多种发现方法:

  1. Steam游戏
    • 从注册表中读取Steam安装路径
    • 解析libraryfolders.vdf以获取自定义库位置
    • 扫描steamapps/common目录以查找游戏文件夹
  2. Epic Games
    • %ProgramData%/Epic/EpicGamesLauncher/Data/Manifests读取游戏清单
    • 解析JSON清单文件以获取游戏信息
  3. GOG游戏
    • SOFTWARE\GOG.com\Games下查询Windows注册表
    • 提取游戏路径和可执行文件信息
  4. Xbox/Windows应用商店
    • 扫描%ProgramFiles%/WindowsApps目录
    • 解析AppxManifest.xml文件以获取应用程序信息
    • 过滤游戏应用程序
  5. 注册表程序
    • 扫描Windows卸载注册表项
    • 使用启发式方法识别类似游戏的应用程序
    • 过滤掉系统实用程序和非游戏软件

错误处理

服务器设计为即使在以下情况下也能保持健壮并继续运行:

  • 某些平台未安装
  • 注册表项无法访问
  • 目录有权限限制
  • 个别游戏的元数据损坏 错误会记录到标准错误输出,并且不会中断其他平台的发现过程。

安全考虑

  • 服务器仅读取系统信息,不进行任何修改
  • 游戏启动需要通过MCP客户端获得用户的明确确认
  • 除了启动可执行文件外,所有文件系统访问都是只读的
  • 注册表访问是只读的

📚 详细文档

开发依赖

本项目使用以下技术:

  • .NET 10.0
  • .NET的模型上下文协议SDK
  • Microsoft.Extensions.Hosting用于应用程序生命周期管理
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端