↓ 跳过正文

Cocos MCP:让 AI 真正接管 Cocos Creator

·1 分钟· loading · loading ·
lixxix
作者
lixxix
关注科技,编程改变生活!

最近打算尝试开发小游戏,而小游戏的首选引擎自然是 Cocos Creator。虽然最近几年没怎么使用,但这毕竟是我用了多年的引擎,很多操作还留在肌肉记忆里,捡起来并不算难。加上现在 AI 写代码的能力越来越强,我总觉得这两件事凑在一起,应该能碰撞出点有意思的东西。

于是我打算借助 AI 来开发 Cocos Creator 项目。不过真正动手之后才发现,事情没那么简单。众所周知,让 AI 控制带界面的引擎非常困难:它能写脚本,却看不见场景里的节点,也点不动编辑器里的按钮。模型再聪明,拿不到项目的真实状态,写出来的东西也只能靠猜。

所以我开始在网络上寻找现成的 MCP 服务,想让 AI 通过一套标准协议直接和编辑器对话。

遗憾的是,开源的 MCP 服务基本跑不起来。要么年久失修,要么只支持很老的版本,折腾半天连启动都成问题。所幸还有一个收费版本,功能看起来比较完整,但对早期尝试而言,性价比并不高。

我还是注册了账号并领取了三天试用期,想先看看这类工具究竟能做到什么程度,对这套收费版 MCP 做了一番测试。

试用感想
#

  1. 缺少代码约束:使用过程中需要补充针对代码设计的约束,但 MCP 服务本身并没有提供。对不了解 Cocos Creator 的人来说,这将是噩梦级别。大模型以“任务完成”为导向产出的代码,虽然能跑,但结构混乱,根本无法进行二次开发。
  2. Token 消耗偏高:Token 消耗似乎不少,而且关键代码被混淆,导致难以理解。模型看不懂自己在改什么,后面越改越乱。
  3. 价格不菲:在如今 AI 泛滥的年代,没有什么是不能直接让 AI 做一个的,关键在于你是否具备指导 AI 的能力。

试用下来,我的感受很复杂:方向是对的,但产品还太“黑盒”。既然核心能力无非是把编辑器的操作暴露成工具,那我为什么不自己做一个?所以我决定自己写一个 MCP 服务器,并将其开源。

实现思路
#

首先,我了解到 Cocos Creator 是基于 Electron 编写的,内部通信使用 IPC 协议,并且官网留下了很多有用的文档。这一点很关键——只要能看到编辑器自己是怎么收发消息的,理论上它的每一个操作都能被复现。

我从文档入手,让 AI 把文档内容通读了一遍,再把基础功能加入 MCP 服务。这样 AI 就具备了一些读取场景的能力,至少知道当前场景里有哪些节点、层级关系如何。不过至此,想让 AI 完整地编写一个游戏仍然非常吃力,很多操作无法完成。

后来我尝试打开了消息管理器,通过每一次操作对应的消息,指导 AI 完成了对整个项目的控制能力。这有点像“录屏教学”:我在编辑器里点一下,消息管理器里就留下一条记录,我再把这条记录翻译成 MCP 工具。点得越多,AI 能做的事就越多。

消息管理器

为了减少 AI 对工具的调用次数,我还加入了批量修改、添加、创建、删除等功能,并补充了批量添加操作的能力。原因也很实际:每多一次工具调用,就多一轮上下文和 Token 消耗,批量接口能让模型一次说清楚要做什么,效率和稳定性都更高。

目前它主要覆盖场景与节点的读取和批量化编辑,足够支撑“先看现场,再动手改”的工作流。至于更复杂的能力,我还在一点点补。

开源地址
#

项目已开源,欢迎 Star 和反馈,也欢迎提 Issue 告诉我你希望它支持什么:

https://github.com/lixxix/cocos-mcp

使用方式
#

将项目 clone 下来后,执行以下命令:

npm install
npm run build

然后把它添加到插件中:

打开插件指引

点击启动 MCP 进行启动:

插件页面

接着在 Agent 中配置 MCP 服务:

{
  "cocos-mcp": {
    "type": "http",
    "url": "http://127.0.0.1:3002/mcp"
  }
}

不同 Agent 的配置略有差异,但在 HTTP 类型下都很好配置,基本照着填地址就行。

一点使用建议
#

配置好之后,我建议不要一上来就让 AI “做个游戏”。比较稳妥的方式是先让它读取场景、熟悉项目结构,再从一个具体的小需求开始,比如“在这个节点上挂一个按钮、点击后跳转场景”。每完成一步就跑一下确认效果,有问题及时纠正。

另外,把约束提前说清楚很重要:命名习惯、目录结构、组件拆分方式,最好都在提示里交代明白。MCP 解决的是“能不能操作”的问题,至于“操作得好不好”,还是得靠人来把关。

效果展示
#

以下是我用一句话让 AI 开发出来的游戏效果图。需要说明的是:当前 Agent 还没有项目配置的能力,如果需要调整项目的适配尺寸,要提前在配置中设置。

完成开发效果

虽然离“一键生成完整游戏”还很远,但至少现在,AI 已经能真正看见并改动我的项目了。剩下的,就是慢慢把这条路走宽。