AI 接入
mcpywrap 仓库自带一份完整的 Skill,供 AI Agent 操作 mcpywrap。Skill 告诉 Agent 按当前任务查阅哪一篇参考、如何调用 CLI,以及哪些结果不能当作验收证据。
安装仓库内的 mcpywrap Skill。有两种方式:
- 让 Agent 安装
EaseCation/mcpywrap的skills/mcpywrap目录; - 或者把整个
skills/mcpywrap文件夹复制到 Agent 的技能目录。
安装后,直接用自然语言描述任务即可,例如:
- “为这个 Addon 添加 QuMod,并生成分发 ZIP。”
- “运行前把策划表生成 JSON,检查游戏加载结果。”
- “保留原世界,用两个客户端验证同步,只重试失败的客机。”
Skill 的工作方式
Section titled “Skill 的工作方式”Skill 按当前任务选择参考,不要求 AI 通读产品文档,也不把仓库设计草案当作现行用法。实际安装是否支持某项能力,以 CLI 帮助和能力查询为准。
| 任务 | 对应主题 |
|---|---|
| 安装 CLI、检查环境、分清本机/远端 | 安装 |
| 新建项目、构建、打包、编辑器、PyPI 分发 | 构建与发布 |
| Python / 本地 / Git 依赖、QuMod、克隆恢复 | 依赖与 QuMod |
| 项目自己的脚本和根 hooks | 项目脚本 |
| 用依赖框架处理本项目素材 | 依赖的资源准备 |
| 启动、重开、停止本地世界 | 本地世界 |
| 已有会话执行 Python、热更、runtime watch | 运行时调试 |
| 移动、攻击、操作 UI | 统一输入 |
| 截图、录屏 | 截图与录屏 |
| 两名玩家联调 | 双客户端 |
| 连接外部服务器 | 连接服务器 |
| Windows HTTP 远程服务 | 远程执行 |
| 已有明确错误 | 故障排查 |
让 Agent 找到 CLI
Section titled “让 Agent 找到 CLI”Skill 附带 bootstrap 脚本,用于首次接入、缺少命令、升级或切换机器:
uv run --no-project --python <Python版本或解释器路径> "<skill>/scripts/bootstrap.py"Python 需满足 安装要求。Windows 也可以运行 scripts/bootstrap.ps1。bootstrap 返回的 command 属于本机,Agent 后续使用它。默认复用已有安装;明确更换来源时加 --upgrade,并选择 --version <目标版本>、--git-ref <可获取的完整SHA> 或 --editable-path <本机源码目录>。本地未推送的改动只能用本机源码安装。
需要特定能力时可以要求 bootstrap 检查,例如 --require-capability project-scripts。已经确认命令和目标后,不必每次运行 bootstrap。
Skill 约定 Agent 这样调用 CLI:
-
全局参数放在子命令之前:
终端窗口 mcpy --local --project <已有绝对目录> --non-interactive <命令>远程操作明确换成
--remote <Windows服务HTTP地址>,失败不回退本机。 -
有限命令加
--json,并检查退出码和ok/error/code/hint。dev、runtime watch、serve是持续命令,不加--json。脚本的尾参数放在--之后。 -
启动本地游戏用
run --no-gui --detach --json,不操作 Qt 或 TUI 界面。游戏仍需要图形会话和 GPU。 -
保存返回的 session / group、项目及远程 endpoint,后续不更换目标。
业务代码与 mcpy.*
Section titled “业务代码与 mcpy.*”宿主生成脚本使用工具的 Python 3;游戏代码仍受游戏内置 Python 和目标 ModSDK 的约束。业务 API 仍需查目标版本的 ModSDK。
running、请求completed/triggered不等于玩法效果已验证。- 只结束自己创建或用户指定的会话。
- 结果为 unknown 时不盲目重发;遇到 busy 时不清锁、不杀无关进程。
- 查询与 GUI 依赖刷新是只读的;关闭管理或调试窗口会保留游戏。取消准备与停止已经启动的游戏是不同操作。
几条关键规则
Section titled “几条关键规则”- 世界保存进度,部署决定代码。
--new只创建世界;再次run若接管已有会话,不会应用新代码,也不执行预处理。 - 普通
build/dev不写运行目录;运行资源由受控部署发布。 - 两名玩家使用组:输入、Python、截图选具体 session;组热更与停止选 group。本地
waiting_for_join需要用户点击局域网卡片,不是启动失败。 - 项目自己的宿主任务用 scripts / hooks;依赖提供的资源处理用 consumer_prepare;
runtime py在游戏内执行。