Sky PC MCP Companion Safe

Sky PC MCP Companion Safe

A local MCP server for the Windows version of Sky: Children of the Light that enables AI clients to read validated game windows, perform local OCR, and send limited game keystrokes or chat text when explicitly permitted.

Category
访问服务器

README

Sky PC MCP Companion Safe

一个面向 Windows 版《Sky: Children of the Light / 光·遇》的本地 MCP 服务。它让支持 MCP 的 AI 客户端读取经过验证的游戏窗口、执行本地 OCR,并在用户明确开启权限后发送有限的游戏按键或聊天文本。

本项目参考了 Aevella/sky-pc-mcp-companion 所展示的使用场景,但采用 clean-room 方式重新实现,没有复制授权不明的原仓库源码。

与原型相比的主要改进

  • 使用官方 MCP Python SDK v2,支持标准 stdio 与 Streamable HTTP。
  • 同时校验窗口标题和进程名,避免只靠模糊标题控制错误窗口。
  • 找不到游戏窗口时默认报错,不会静默截取整个桌面。
  • 输入和聊天分别授权,默认均关闭。
  • 按键白名单、禁止 Windows/Meta 键、按压最长 2 秒。
  • 所有聚焦、按键和剪贴板操作串行执行,降低并发卡键风险。
  • 恢复剪贴板前检查内容,避免覆盖用户刚复制的新数据。
  • LAN HTTP 必须提供 Bearer Token,并启用 MCP Host allowlist。
  • HTTP 请求体最大 256 KiB。
  • screenshot 是正式工具名,同时保留 take_screenshot 兼容别名。
  • 不在工具结果中回显聊天正文。
  • pytest、Ruff 和 GitHub Actions CI。

安装

需要 Windows、Python 3.10 或更新版本。

git clone https://github.com/ll13355154947/sky-pc-mcp-companion-safe.git
cd sky-pc-mcp-companion-safe
python -m venv .venv
.venv\Scripts\python -m pip install -e .

需要 OCR 时,先安装 Windows 版 Tesseract 及中文语言包,然后执行:

.venv\Scripts\python -m pip install -e ".[ocr]"

默认安全模式

默认只允许 status、screenshot、take_screenshot 和 read_screen。开启输入:

$env:SKY_MCP_ENABLE_INPUT="1"

单独开启聊天:

$env:SKY_MCP_ENABLE_CHAT="1"

聊天要求输入权限也已开启。不要在不受信任的客户端上开放这两项权限。

启动 stdio MCP

.venv\Scripts\sky-mcp-safe stdio

客户端配置示例:

{
  "command": "C:\\path\\to\\sky-pc-mcp-companion-safe\\.venv\\Scripts\\sky-mcp-safe.exe",
  "args": ["stdio"]
}

启动本机 Streamable HTTP

.venv\Scripts\sky-mcp-safe http

端点为 http://127.0.0.1:9800/mcp,健康检查为 http://127.0.0.1:9800/health。

局域网模式

可直接双击 start-http-lan.bat。它会为本次启动生成随机 Token。客户端连接:

URL: http://电脑局域网IP:9800/mcp
Authorization: Bearer 启动窗口显示的Token

不要通过路由器端口转发、反向代理或公网防火墙规则把它暴露到互联网。普通 HTTP 不提供传输加密, 因此局域网也必须是可信网络;跨网络访问请使用受控 VPN 或带 TLS 的反向代理。

工具

工具 默认可用 说明
status 是 权限、OCR 与窗口状态
screenshot 是 仅截取验证后的游戏窗口
take_screenshot 是 截图兼容别名
read_screen 是 本地 OCR,不上传到云端
press_key 否 发送白名单内的有限游戏按键
open_chat 否 打开聊天输入框
type_text 否 向已打开且已聚焦的聊天框粘贴文本
send_chat 否 聚焦游戏、打开聊天并发送文本

窗口识别

默认要求进程名是 Sky.exe。如果实际安装不同,可配置逗号分隔列表:

$env:SKY_MCP_PROCESS_NAMES="Sky.exe,YourSkyExecutable.exe"
$env:SKY_MCP_WINDOW_TITLES="Sky: Children of the Light,光遇"

只有在明确接受隐私风险时,才允许找不到窗口后截取显示器:

$env:SKY_MCP_ALLOW_MONITOR_FALLBACK="1"

边界

本项目不读取游戏内存、不修改客户端、不破解协议,也不提供刷资源、自动跑图或代肝功能。 模拟输入仍可能受到游戏或平台规则限制;如果规则不允许,请勿开启输入功能。

开发

python -m pip install -e ".[dev]"
python -m ruff check .
python -m pytest

项目采用 MIT License。安全问题请阅读 SECURITY.md。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选