🎮 Phaser Editor v5 MCP 服务器
将 LLM 与 Phaser Editor v5 连接起来的 Model Context Protocol 服务器
本 Model Context Protocol (MCP) 服务器 提供将 LLM 与 Phaser Editor v5 连接的工具。它旨在与 Phaser Editor 的 IDE 功能无缝协作,让开发者能够高效创建和管理游戏场景。
🚀 快速开始
📦 安装与配置
此服务器以 NPM 包形式提供,可在 Cursor、Claude Desktop、GitHub Copilot 等 MCP 主机的配置中使用。
以下是 Cursor 配置文件示例:
{
"mcpServers": {
"phaser-editor": {
"command": "npx",
"args": ["@phaserjs/editor-mcp-server"]
}
}
}
该服务器会连接正在运行的 Phaser Editor v5 桌面应用程序实例。项目上的所有更改都通过正在运行的 Phaser Editor 实例完成。
💻 编码与集成工作流
所有由该服务器提供的工具都专门针对 Phaser Editor 功能,例如 Scene Editor、Asset Pack Editor 等。这些工具并非用于直接修改项目源代码。但是,当与 Cursor 等代码编辑器一起使用时,该服务器可同时与 Phaser Editor 的自定义文件和项目源代码进行交互——创造强大且集成化的开发工作流。
推荐从某个 Phaser Editor 项目模板开始,这些模板已预配置为可与 Cursor 无缝集成。这些模板包含所有必要配置,以及供 LLM 理解如何与 Phaser Editor 自定义文件和项目源代码交互的规则。
🧠 使用训练关卡增强基于 LLM 的内容生成
大型语言模型 (LLM) 在获得高质量、具上下文的示例时,擅长生成新内容。这对游戏关卡生成尤其有效。为充分利用这一能力,建议创建 训练关卡,清晰表达希望模型复制的概念和元素。
为什么训练关卡很重要
训练关卡是具体示例,用于定义游戏的结构和逻辑。这些示例帮助 LLM 理解涉及的组件及其交互方式,从而生成符合设计的全新关卡。
例如,如果你正在处理 基于瓦片地图的关卡,可以创建一个 TrainingLevel 场景,其中包含游戏中使用的关键对象。为提高清晰度和语义理解:
- 每个对象使用一个图层。
- 用描述性标识符命名每个图层,例如
pipe、cloud 或 mountain。
这种组织方式帮助 LLM 检测模式,并将其应用于新的内容生成任务。
视觉工具有帮助,但上下文是关键
MCP 服务器提供检查纹理图像并生成场景“截图”的工具。虽然这些视觉内容有帮助,但它们可能并不总能足以让 LLM 完全掌握游戏上下文和逻辑。
因此,创建结构化且标签良好的训练关卡至关重要。这些关卡提供更丰富、更可操作的上下文,增强模型生成准确且相关游戏内容的能力。
🛠️ 工具总览
本项目提供一整套综合工具,用于在 Phaser Editor 环境中管理场景、资源、瓦片地图、动画等。以下按主要功能分组汇总所有可用工具。
🧩 IDE 工具
| 工具 |
说明 |
ide-get-all-scenes-in-project |
列出项目中的所有场景。 |
ide-get-active-scene |
获取编辑器中当前聚焦的场景。 |
ide-open-scene |
在编辑器中打开场景。 |
ide-create-new-scene |
创建新的场景文件。 |
ide-save-scene |
保存场景的编辑器状态。 |
🎨 资源工具
| 工具 |
说明 |
assets-get-available-textures |
列出项目中所有可用纹理。 |
assets-get-texture-binary |
获取纹理的二进制数据。 |
assets-get-available-bitmapfonts |
列出所有可用位图字体。 |
assets-get-bitmapfont-image |
获取位图字体的 PNG 图像/纹理。 |
assets-get-spritesheet-image |
获取精灵表的 PNG 图像/纹理。 |
assets-get-texture-content-bounding-box |
获取纹理内容的边界框。 |
assets-get-available-animations |
列出所有可用精灵动画。 |
assets-get-available-spine-skeletons |
列出项目中所有 Spine 骨骼。 |
assets-get-available-spine-atlases |
列出项目中所有 Spine 图集。 |
assets-get-spine-skeleton-info |
获取 Spine 骨骼的信息(动画和皮肤)。 |
assets-get-spine-skin-image |
获取 Spine 皮肤的 PNG 图像。 |
assets-get-available-tilemaps |
列出所有可用 Tiled 瓦片地图文件。 |
assets-get-tilemap-data |
获取 Tiled 瓦片地图文件的数据。 |
🎬 场景工具
| 工具 |
说明 |
scene-clear-scene |
清空当前场景。 |
scene-get-scene-dimension |
获取当前场景的尺寸。 |
scene-get-screenshot |
获取场景截图。 |
scene-get-scene-data |
获取当前场景中的所有对象,包括其属性。 |
scene-move-game-object-in-render-list |
对当前场景中的对象进行排序。 |
scene-delete-game-objects |
从场景中删除指定的游戏对象。 |
scene-move-game-objects-to-parent |
将对象移动到指定父级。 |
scene-pack-objects-in-container |
将对象分组到容器中。 |
scene-delete-plain-objects |
从场景中删除指定的普通对象。 |
scene-add-game-objects |
向场景中添加多个新的游戏对象。 |
scene-update-game-objects |
更新场景中的多个游戏对象。 |
scene-add-plain-objects |
向场景中添加多个新的普通对象。 |
scene-update-plain-objects |
更新场景中的多个普通对象。 |
🧱 可编辑瓦片地图工具
| 工具 |
说明 |
scene-add-editable-tilemap |
向场景添加新的可编辑瓦片地图。可编辑瓦片地图完全可修改,并以普通对象表示。 |
scene-add-tileset-to-editable-tilemap |
向可编辑瓦片地图添加瓦片集,并更新所有图层中的 Tile ID。 |
scene-delete-tileset-from-editable-tilemap |
从可编辑瓦片地图移除瓦片集,并更新所有图层中的 Tile ID。 |
scene-add-editable-tilemap-layer |
向可编辑瓦片地图和场景添加新图层。 |
scene-resize-editable-tilemap-layer |
调整可编辑瓦片地图图层数据的大小。 |
scene-write-editable-tilemap-layer-data |
更新图层中的部分瓦片数据,以实现高效更改。 |
scene-fill-editable-tilemap-layer-data |
用单个 Tile ID 填充图层的某个区域。 |
scene-get-editable-tilemap-layer-selection-data |
以二维数组形式检索图层中选中的瓦片数据。 |