关于 Funplay Cocos MCP
Funplay MCP for Cocos 是嵌入 Cocos Creator 编辑器的扩展,让 AI 助手检查和操作运行中的项目。它以 JavaScript 执行工具为主要交互方式,并提供客户端配置和可选的 stdio 桥接。
主要功能
- 01在场景或编辑器上下文执行 JavaScript
- 02检查项目并捕获截图
- 03面板一键配置 MCP 客户端
- 04按类别管理工具开放范围
- 05记录调用结果与脚本日志
- 06可选 stdio 到 HTTP 桥接
适用场景
- 01通过 AI 助手构建 Cocos UI 层级
- 02在活动场景中执行脚本并检查结果
- 03为支持的客户端配置编辑器连接
- 04将 HTTP MCP 端点接入 stdio 客户端
MCP 相关
扩展在 Cocos Creator 中嵌入 HTTP MCP 服务,向客户端提供 `execute_javascript` 等工具,以操作和检查运行中的项目。可选 npm 包将 stdio MCP 流量转发到该 HTTP 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y funplay-cocos-mcpFUNPLAY_COCOS_MCP_URLOptional local Cocos MCP HTTP endpoint. Defaults to http://127.0.0.1:8765/.FUNPLAY_COCOS_MCP_TIMEOUT_SECONDSOptional HTTP timeout per request in seconds. Defaults to 120.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Funplay MCP for Cocos
适用于 Cocos Creator 编辑器的内嵌式 MCP 服务
中文 | English
如果这个项目对你的 Cocos 工作流有所帮助,请考虑点个 Star。这能让更多开发者发现该项目,并支持项目持续开发。
Funplay MCP for Cocos 是一个采用 MIT 许可证的 Cocos Creator 扩展,可将 HTTP MCP 服务直接嵌入编辑器。它让 Claude Code、Cursor、Codex、VS Code Copilot、Trae、Kiro、Qoder、Kimi Code、OpenCode、CodeBuddy 和 DeepSeek Harness (DSH) 等 AI 助手能够检查并操作正在运行的 Cocos 项目。
该软件包遵循 Funplay MCP for Unity 的相同产品方向:保持默认工具集精简,提供一键式客户端配置窗口,并将一个灵活度极高的执行工具作为主要工作流。
对于 Cocos,主要工具是 execute_javascript:
context: "scene"会在当前 Cocos 场景/运行时上下文中执行 JavaScriptcontext: "editor"会在 Cocos 编辑器/浏览器上下文中执行 JavaScript
“创建一个登录页面 UI,包含账号/密码输入框和一个主登录按钮。”
AI 助手可以调用
execute_javascript,在当前 Canvas 下构建 UI 层级、附加 Cocos 组件、检查结果,并截取屏幕截图以供验证。
快速开始
如果你只想快速连接,请完成以下三项操作:
- 将此仓库安装为 Cocos Creator 扩展
- 打开
Funplay > MCP Server - 使用内置的一键式 MCP 客户端配置
1. 安装为 Cocos Creator 扩展
推荐的安装方式:使用官方 Cocos Store 页面,将扩展安装到目标 Cocos Creator 项目中。
对于本地开发或尚未发布的版本,请将此仓库克隆或复制到 Cocos 项目的扩展目录:
cd /path/to/your-cocos-project
mkdir -p extensions
git clone https://github.com/FunplayAI/funplay-cocos-mcp.git extensions/funplay-cocos-mcp
然后重启 Cocos Creator,或在编辑器中重新加载扩展。
若不使用 Git 安装,请从 GitHub Releases 页面下载 Funplay.CocosMcp.v<version>.zip,解压后将解压出的 funplay-cocos-mcp 文件夹移入项目的 extensions/ 目录。
为所有项目安装(推荐)
先在任意项目中安装并打开扩展。然后打开 Funplay > MCP Settings,并在 All Projects 部分中点击 Install for All Projects。扩展会下载最新的 GitHub Release,验证 SHA256SUMS.txt,并将其安装到当前 Cocos Creator 版本的托管全局扩展目录中:
- macOS / Linux:
~/.CocosCreator/builtin-extensions/<Creator version>/funplay-cocos-mcp - Windows:
%USERPROFILE%\.CocosCreator\builtin-extensions\<Creator version>\funplay-cocos-mcp
Cocos Creator 会立即扫描并注册已安装的副本。之后,使用该 Creator 版本打开或创建的项目会自动加载此扩展,MCP 服务也会保持默认的自动启动行为。如果已运行的项目优先使用项目级副本,请重新打开该项目。不会将扩展文件复制到各个项目的 extensions/ 目录中。
全局扩展按 Cocos Creator 版本隔离。如果使用多个 Creator 版本,请在每个版本中分别运行一次 Install for All Projects。
安装程序不会删除当前项目中的副本,以保护开发工作区。如果两个副本都存在,MCP Settings 会显示重复安装警告。确认全局副本正常运行后,请移除或禁用项目级副本,以避免扩展冲突。
2. 启动 MCP 服务
打开编辑器菜单:
Funplay > MCP Server
新项目会获得一个根据项目生成的稳定端口,范围为 20000–29999。已保存的配置会保留其固定端口(包括 8765)。请使用 MCP Server 中显示的准确 URL;如果当前正在使用临时备用端口,请在配置客户端之前点击 Pin Current Port 或 Use Per-Project Port。
如果配置的端口已被占用,扩展会先检查现有监听器是否属于同一个 Cocos 项目。同一项目的监听器会安全地复用;无关的监听器则会触发自动回退,切换到下一个可用的本地端口。
面板有意保持精简:
- 启用或禁用 MCP 服务
- 打开专注于工具暴露、MCP 设置和项目技能的窗口
- 自动将已安装版本与 GitHub 上的最新版本进行检查
- 从面板打开发布页面,或安装经过验证的发布包
- 只需安装一次到 Cocos Creator 全局扩展目录,现有和新建项目即可自动使用
- 一键配置 AI 客户端并预览所选客户端配置
- 将高级工具配置文件编辑、传输设置和安装管理留在主服务窗口之外
- 自动跟随 Cocos Creator 界面语言,或在 MCP Settings 中为每个项目选择中文/英文
- 在 Settings 中切换 Print MCP logs,静默 MCP 控制台消息,同时保留 Recent Activity 和内部诊断信息
所有管理页面均采用一致的标题、对齐的控件和轻量级分区。工具暴露页面按类别分组显示各个工具的开关;项目技能页面突出显示可用操作,并折叠文件路径和备份信息。Recent Activity 会将每次调用的摘要和实际结果显示为可展开的对象/数组树;对于脚本,执行日志和返回值会分别显示在不同分区中。输出分区和独立的日志查看面板已移除。简短的操作提示会保留成功/失败反馈,同时 MCP 工具和资源仍可获取诊断日志。
脚本工具会捕获每次调用的 console.log/info/warn/error/debug 输出,包括发生故障前的日志,不受 Print MCP logs 影响。捕获过程在并发和嵌套调用之间相互隔离,并在脚本执行完成后停止;不会收集全局/项目日志以及单独 require 的模块所产生的日志。请使用注入的 console(在 run/模块导出中也可通过 env.console 使用)。MCP 响应会保留现有的 data 结构,并添加可选的 execution 元数据,其中包含上下文、耗时、有界/脱敏后的日志以及省略条目数。Recent Activity 会保留结果层级和标量值;大型结果以及文件/脚本正文仍会受到限制或被省略,并显示截断提示。
扩展菜单和原生面板标题会跟随 Cocos Creator 界面语言。面板控件、工具说明、状态消息、提示词和空状态均支持英文和中文;打开 Funplay > MCP Settings,即可跟随 Creator 的语言,或设置项目专属的内容语言覆盖项。MCP 工具 ID 和架构保持英文,以确保客户端集成稳定。
3. 配置 AI 客户端
请先使用 Funplay > MCP Server 面板内置的 MCP Client Config 分区。
选择目标客户端,点击 One-Click Configure,扩展便会为你写入推荐的 MCP 配置项。
写入客户端的 MCP 服务名称为:
cocos-<project>-<hash>
如果你更愿意手动编辑配置文件,请将以下示例用作备用参考。请将示例中的旧版名称 funplay_cocos 和端口 8765 替换为面板中显示的名称和 URL。一键配置 Claude Code 时,会使用 ~/.claude.json 中的项目 Git 根目录作用域,而非下方的全局示例。请参阅项目设置和迁移。
Claude Code / Claude Desktop
{
"mcpServers": {
"funplay_cocos": {
"type": "http",
"url": "http://127.0.0.1:8765/"
}
}
}
Cursor
{
"mcpServers": {
"funplay_cocos": {
"url": "http://127.0.0.1:8765/"
}
}
}
VS Code
{
"servers": {
"funplay_cocos": {
"type": "http",
"url": "http://127.0.0.1:8765/"
}
}
}
Trae
{
"mcpServers": {
"funplay_cocos": {
"url": "http://127.0.0.1:8765/"
}
}
}
Kiro
{
"mcpServers": {
"funplay_cocos": {
"type": "http",
"url": "http://127.0.0.1:8765/"
}
}
}
Qoder
用户级配置写入 ~/.qoder/settings.json;如果设置了该环境变量,则写入 $QODER_CONFIG_DIR/settings.json。
{
"mcpServers": {
"funplay_cocos": {
"type": "http",
"url": "http://127.0.0.1:8765/"
}
}
}
Kimi Code
用户级配置写入 ~/.kimi-code/mcp.json;如果设置了该环境变量,则写入 $KIMI_CODE_HOME/mcp.json。
{
"mcpServers": {
"funplay_cocos": {
"url": "http://127.0.0.1:8765/"
}
}
}
Codex
[mcp_servers.funplay_cocos]
url = "http://127.0.0.1:8765/"
OpenCode
全局配置位于 $XDG_CONFIG_HOME/opencode/opencode.json,或者在任何平台上位于 ~/.config/opencode/opencode.json(opencode.jsonc 也可使用)。
一键配置会优先使用现有的 opencode.jsonc。两种文件均支持注释和尾随逗号;配置会保留无关设置和注释,并且不会修改格式错误或存在歧义的配置。
{
"mcp": {
"funplay_cocos": {
"type": "remote",
"url": "http://127.0.0.1:8765/"
}
}
}
CodeBuddy(IDE 4.0+)
一键设置会写入 <Cocos project>/.mcp.json,这是 CodeBuddy IDE 4.0+ 支持的项目配置。它会保留其他服务、注释和尾随逗号。将此 Cocos 项目文件夹作为 CodeBuddy 工作区打开;如有需要,重新加载客户端,并在收到提示时启用或批准 MCP 服务。较旧的 IDE 版本和独立的 CodeBuddy 编辑器扩展使用不同的配置位置;此配置目标不会写入它们的全局设置或 CLI 的全局文件。
Configure + Skills 还会将缺失的内置 Skills 安装到 <Cocos project>/.codebuddy/skills,遵循官方 Skills 目录。现有 Skills 会保留;请在 Project Skills 中查看更新。
{
"mcpServers": {
"funplay_cocos": {
"type": "http",
"url": "http://127.0.0.1:8765/"
}
}
}
DeepSeek Harness (DSH)
在 MCP Server 面板中选择 DeepSeek Harness (DSH)。Configure 会生成 <Cocos project>/.dsh/funplay-cocos-mcp.patch.json,这是供官方 Cordis MCP 客户端使用的 JSON 格式 YAML 覆盖配置。它不会更改 $DSH_HOME、全局/配置文件 YAML、依赖项、凭据或审批设置。
此覆盖配置不会自动加载。 从 Cocos 项目目录使用面板中显示的确切命令启动 DSH,或者将其 --patch 参数添加到现有的 DSH 启动命令中。例如,安装了 dsh 时:
dsh web --patch '/absolute/path/to/cocos-project/.dsh/funplay-cocos-mcp.patch.json'
通过 npm 启动时,使用 npx @deepseek-ai/dsh web --patch <the same absolute path>。其他官方配置文件也可通过 --patch 使用相同的覆盖配置;第三方桌面启动器可能需要单独配置启动方式。请保持 Cocos 及其 MCP 服务运行。生成的覆盖配置使用项目实际的服务名称和 URL,而非旧版示例名称/端口。
Configure + Skills 还会将缺失的内置 Skills 安装到 <nearest Git root>/.dsh/skills;如果不存在 Git 根目录,则安装到 Cocos 项目中,并遵循 DSH 的文件系统 Skills 提供程序。现有副本会受到保护,可在 Project Skills 中查看。同一 Git 仓库中的多个 Cocos 项目会共用此 Skills 根目录,但各自拥有独立的 MCP 覆盖配置。
如果你的 MCP 客户端更倾向于使用本地 stdio 命令,请先启动 Cocos 编辑器服务,再安装 npm 包装器:
npm install -g funplay-cocos-mcp
MCP 客户端配置示例:
{
"mcpServers": {
"funplay_cocos": {
"command": "funplay-cocos-mcp",
"env": {
"FUNPLAY_COCOS_MCP_URL": "http://127.0.0.1:8765/"
}
}
}
}
该包装器会将 stdio MCP 流量桥接到内嵌的 Cocos HTTP 端点。你也可以通过 npx funplay-cocos-mcp --url http://127.0.0.1:8765/ 运行它。
stdio 传输支持标准的、以换行符分隔的 UTF-8 JSON-RPC 消息(NDJSON)。包装器也接受现有的 Content-Length 分帧格式,并使用与传入消息相同的分帧格式写入响应。
4. 验证连接
打开你的 AI 客户端,先尝试一些安全的请求:
- “调用
get_project_info并总结当前的 Cocos 项目。” - “读取
cocos://project/context并告知我编辑器状态。” - “使用
execute_javascript,并设置context: \"scene\",返回当前场景名称。” - “使用
execute_javascript,并设置context: \"editor\",返回项目路径。”
如果这些请求都能正常工作,说明 MCP 服务、资源、提示词和主要执行工具已正确连接。
如需调试本地传输,面板可以复制这些命令,你也可以直接运行:
curl http://127.0.0.1:8765/health
curl http://127.0.0.1:8765/tools
5. 开始构建
尝试在 AI 客户端中输入更高级的提示词:
在当前 Cocos 场景中创建一个登录页面 UI,包含账号/密码输入框、登录按钮和游客登录按钮。先使用
execute_javascript检查层级结构,然后截取屏幕截图。
开始之前
- 此扩展仅适用于编辑器。它旨在自动化操作 Cocos Creator,而不是为最终游戏构建添加运行时依赖项。
- 新项目使用根据项目生成的端口。MCP 服务面板会显示准确的端点,并支持固定端口。
- 如果配置的端口正被占用,服务会自动切换到下一个可用端口,面板和客户端配置会使用实际运行的端口。
GET /health和GET /tools是只读调试端点,可在 MCP 客户端之外快速进行本地检查。- 默认的
core配置集提供 39 个高价值工具。切换到full可使用全部 106 个工具,也可以使用custom纳入或排除工具类别和单个工具。 - 面板会自动检查 GitHub 版本发布,也支持手动检查。
- 一键更新会下载 GitHub Release zip,验证
SHA256SUMS.txt,备份当前扩展,替换软件包文件,并在 Cocos 软件包 API 支持时重新加载扩展。如果无法重新加载,请在安装后重启 Cocos Creator。Git 工作树和符号链接安装有意保留为手动执行git pull或替换软件包。 - 为所有项目安装使用相同的版本发布和 SHA256 验证流程,目标是当前 Creator 版本的受管理全局目录,然后请求 Creator 扫描并注册软件包。它会保留活动项目中的副本,而不会在设置窗口打开时切换其下的软件包;如果当前没有活动的项目副本,全局副本会立即启用,否则会在下次打开项目时启用。
- 项目技能可管理内置的
funplay-cocos-mcp-workflow和funplay-cocos-ui-composition技能,以及适用于 Codex、Claude Code、Cursor、Qoder、Kimi Code、OpenCode、CodeBuddy 和 DSH 的自定义技能。内置的 v3 模板使用精简入口文件和按需加载的参考文件;版本检查、差异比较、备份和恢复都包含这些受管理的参考文件。现有的用户自有参考文件会受到保护。旧版 Codex 内置技能可迁移到.agents/skills,而不会删除其原始文件。 - Streamable HTTP 响应遵循 MCP 传输要求,涵盖
Accept、MCP-Protocol-Version、JSON-RPC 通知和响应,以及可选的Mcp-Session-Id会话。 - 工具列表包含 MCP
outputSchema和annotations;结构化工具结果使用包含ok、tool、callId、summary、data和后续refs的标准信封。 - 默认启用
execute_javascript安全检查。它会阻止明显有风险的文件系统和 Shell 模式,例如删除或截断调用、原始可写流、路径遍历、用户或系统绝对路径,以及child_process。这只是安全防护措施,并非完整沙箱;如果已评估风险,可在调用中明确传入safety_checks: false。 - 所有已公开的 MCP 工具都会直接执行。Cocos 扩展中没有额外的审批开关。
- 文件工具和
cocos://asset/path/...资源仅限访问活动 Cocos 项目根目录。 - 推荐的工作流是先使用
execute_javascript,再使用专门的辅助工具进行截图、诊断、资源和检查。 - 如果在面板中更改服务端口或工具公开范围,扩展会保存配置,并在需要时重启服务。
为什么打造此项目
- 以
execute_javascript为首选 — 一个高灵活性的 JavaScript 工具即可编排场景/运行时工作和编辑器端自动化,无需让 AI 客户端承受过多细分工具调用 - 内嵌 Cocos 扩展 — Cocos 侧插件无需单独的 Python 守护进程或外部桥接进程
- 一键配置客户端 — 配置 Claude Code、Cursor、VS Code、Trae、Kiro、Qoder、Kimi Code、Codex、OpenCode 和 CodeBuddy(IDE 4.0+),或通过显式的
--patch启动命令生成 DSH 覆盖层 - 内置项目上下文 — 提供实时项目、场景、选择内容、脚本诊断、日志和交互历史资源
- 默认精简,需要时全面开放 —
core可减少工具列表中的干扰;full会开放所有可用工具;custom配合已保存的配置文件,可按类别或工具调整并还原工具开放范围 - 可视化验证 — 场景/编辑器/预览截图和输入模拟可帮助 AI 验证 UI 与游戏玩法的改动
亮点
- 内置 106 个工具 — 场景层级、编辑器状态、选择工作流、预制体、资源、资源依赖、项目说明、UI 创建、组件、文件、日志、脚本诊断、截图、运行时控制、构建/预览辅助、编辑器偏好设置、事件绑定和输入模拟
- 主要统一工具 —
execute_javascript同时支持scene和editor上下文 - 资源与提示词 — 实时项目/日志资源,以及脚本修复、场景验证和可玩原型创建等可复用工作流
- Cocos 面板 UI — 精简的
Funplay > MCP Server控制面板,以及用于大型工作流的专用 Tool Exposure、MCP Settings 和 Project Skills 窗口 - 截图与输入支持 — 捕获编辑器/场景/游戏/预览截图,并发送 Electron 级别的鼠标/键盘事件;鼠标点击/拖动可使用精确的 PNG 像素坐标,并配合新鲜截图的
captureId - 不依赖特定厂商 — 适用于任何支持通过 HTTP JSON-RPC 使用 MCP 的 AI 客户端
与 Funplay MCP for Unity 的关系
Funplay MCP for Cocos 遵循与 Funplay MCP for Unity 相同的设计原则,并针对 Cocos Creator 的 JavaScript/TypeScript 编辑器环境进行了适配。
| 领域 | Funplay MCP for Cocos | Funplay MCP for Unity |
|---|---|---|
| 编辑器集成 | Cocos Creator 扩展 | Unity Editor 包 |
| 内嵌服务 | 内置 HTTP MCP 服务 | 内置 HTTP MCP 服务 |
| 主要执行工具 | execute_javascript | execute_code |
| 主要语言 | 场景/编辑器上下文中的 JavaScript | Unity 编辑器/运行时上下文中的 C# |
| 默认配置文件 | core,包含 39 个工具 | 以核心工具为主的 core 配置文件 |
| 完整配置文件 | 106 个工具,另含 custom 开放范围 | 79 个工具 |
| 客户端设置 | 一键配置面板 | 一键配置窗口 |
MCP 能力
当前软件包公开了四层能力:
- 工具 —
core中有 39 个工具,full中有 106 个工具,另外还支持custom包含/排除规则和已保存的工具配置 - 主要执行能力 —
execute_javascript,用于场景/运行时以及编辑器/浏览器自动化 - 提示词 —
fix_script_errors、create_playable_prototype、scene_validation和auto_wire_scene,以及从mcp-prompts/*.md加载的参数化项目工作流。请参阅项目隔离、Skills 和工作流设置。 - 资源 — 项目上下文、场景摘要、当前选择、脚本诊断、资源选择、日志和 MCP 交互历史
生成的工具参考文档包含类别、配置和读/修改提示,请参阅 docs/TOOLS.md。
默认的 core 集合刻意保持精简:execute_javascript、execute_scene_script、execute_editor_script、get_editor_state、get_tool_catalog、check_for_updates、get_selection、list_project_instructions、read_project_instruction、set_selection、get_project_info、get_build_status、get_preview_mode、create_scene、get_scene_info、get_hierarchy、list_scenes、open_scene、inspect_prefab、validate_prefab_references、inspect_prefab_instance、list_assets、inspect_asset、inspect_asset_dependencies、validate_asset_dependencies、open_asset、select_asset、run_script_diagnostics、get_recent_logs、search_project_logs、clear_logs、validate_scene、get_performance_snapshot、get_script_diagnostic_context、get_runtime_state、capture_editor_screenshot、capture_scene_screenshot、capture_preview_screenshot 和 list_editor_windows。
预览模式
Creator 3.8.x 预览自动化使用与内置预览工具栏相同的模式和编辑器 API:
| 模式 | 行为 |
|---|---|
browser | 在系统浏览器中打开场景;如果可用,get_preview_mode 和 run_project_preview 会返回同主机和网络预览 URL。 |
gameView | 在 Cocos Creator 的 Game View 中启动场景。 |
simulator | 在原生模拟器中启动场景。 |
使用 get_preview_mode 检查当前活动模式,使用 set_preview_mode 切换模式,并使用 run_project_preview 启动预览。run_project_preview 仍接受 platform 作为已弃用的 mode 别名。
Game View 通过原生预览工具栏启动,因此手动暂停/恢复按钮仍可使用。重复启动时,已有预览会继续运行(包括其暂停状态)。pause_runtime 和 resume_runtime 控制同一个 Game View 预览,且具有幂等性;它们要求 Game View 正在运行,不控制浏览器/模拟器预览或编辑场景导演。切换离开 Game View 时,会先通过工具栏停止预览;如果操作被拒绝,则会报告错误,而不会声称操作成功。
请在 full 或自定义工具配置中启用这些控制工具。编写脚本时,优先使用这些工具,而不要直接调用 scene.editor-preview-set-play,因为直接调用会绕过工具栏同步。
get_runtime_state(validate_scene 也会使用)会报告 scope: "gameView"、实际的 running/paused 值、busy 和 toolbarSynchronized。它不再将编辑场景的帧数/时间缩放计数器作为预览状态呈现;这些数据仍保留在 get_performance_snapshot.runtime 中,其 scope 为 "editScene"。set_time_scale 仍只影响编辑场景。预览控制要求 Creator 主窗口工具栏兼容且就绪;如果工具栏不可用,会明确报告错误。
浏览器预览结果会区分同主机自动化与局域网访问:
| 字段 | 含义 |
|---|---|
url / localUrl | 回环 URL,供与 Cocos Creator 在同一台计算机上运行的 MCP 客户端或浏览器使用。 |
networkUrl | 供同一网络中的其他设备使用的原始非回环 URL;当 Creator 报告的是回环或通配符主机时,此值为空。 |
reportedUrl | Cocos Creator 在规范化之前报告的确切 URL 字符串。 |
urlWarning | 仅当报告的值无法规范化为绝对 HTTP(S) URL 时,此值才非空。 |
内置资源
| 资源 | 描述 |
|---|---|
cocos://project/context | 完整的项目和编辑器上下文 |
cocos://project/summary | 项目简要摘要 |
cocos://scene/active | 活动场景快照 |
cocos://scene/current | 当前场景的别名 |
cocos://selection/current | 当前编辑器选区 |
cocos://selection/asset | 当前选中的资源 |
cocos://errors/scripts | 脚本诊断信息 |
cocos://logs/editor | 最近的 MCP 运行时日志和工具交互记录 |
cocos://logs/project | 常见项目日志文件的最近内容 |
cocos://mcp/interactions | 最近的 MCP 交互历史 |
内置工具
Funplay MCP for Cocos 在 full 配置中目前提供 106 个工具函数:
| 类别 | 工具 |
|---|---|
| 脚本执行 | execute_javascript、execute_scene_script、execute_editor_script |
| 编辑器状态 | get_editor_state、get_tool_catalog、check_for_updates、get_selection、set_selection、get_editor_selection |
| 项目说明 | list_project_instructions、read_project_instruction、write_project_instruction、create_project_skill、create_cocos_mcp_project_skill |
| 项目与场景 | get_project_info、get_scene_info、get_hierarchy、find_nodes、inspect_node、list_scenes、open_scene、run_scene_asset |
| 节点编辑 | create_node、delete_node、set_node_transform |
| 资源与预制体 | list_assets、inspect_asset、inspect_asset_dependencies、validate_asset_dependencies、check_asset_ready、open_asset、select_asset、delete_asset、list_prefabs、inspect_prefab、validate_prefab_references、duplicate_prefab、edit_prefab_json、create_prefab_from_node、create_prefab_instance、inspect_prefab_instance、apply_prefab_instance、revert_prefab_instance、instantiate_prefab |
| 组件 | list_components、inspect_component、add_component、remove_component、set_component_property、reset_component_property |
| UI | create_canvas、create_label、create_button、create_sprite |
| 摄像机 | list_cameras、create_camera、set_camera_properties |
| 动画 | list_animations、add_animation_clip、play_animation、stop_animation |
| 文件 | read_file、get_file_snippet、write_file、replace_in_file、search_files、list_directory、exists、refresh_assets |
| 诊断与日志 | run_script_diagnostics、get_script_diagnostic_context、get_recent_logs、search_project_logs、clear_logs、validate_scene、get_performance_snapshot |
| 构建与编辑器 | get_build_status、get_preview_mode、set_preview_mode、open_build_panel、run_project_preview、save_current_scene、get_editor_preference、set_editor_preference、broadcast_editor_message |
| 运行时 | get_runtime_state、pause_runtime、resume_runtime、set_time_scale |
| 交互与事件 | emit_node_event、simulate_button_click、list_button_click_events、bind_button_click_event、invoke_component_method、simulate_mouse_click、simulate_mouse_drag、simulate_key_press、simulate_key_combo、simulate_preview_input |
| 截图与窗口 | capture_desktop_screenshot、capture_editor_screenshot、capture_scene_screenshot、capture_game_screenshot、capture_preview_screenshot、list_editor_windows |
主要工具示例
场景上下文
{
"context": "scene",
"code": "return { sceneName: scene.name, rootCount: scene.children.length };",
"args": {}
}
编辑器上下文
{
"context": "editor",
"code": "return { projectPath: context.projectPath, toolCount: helpers.listTools().length };",
"args": {}
}
编辑器上下文脚本会接收 Editor、fs、path、os、require、context、args,以及 helpers.getStatus()、helpers.listTools()、helpers.readResource(uri)、helpers.callTool(name, args) 和 helpers.configureClient(targetId) 等辅助函数。
可选配置
将 funplay-cocos-mcp.config.json 放在 Cocos 项目根目录下:
{
"host": "127.0.0.1",
"port": 8765,
"toolProfile": "core",
"enabledToolCategories": [],
"disabledToolCategories": [],
"enabledTools": [],
"disabledTools": [],
"enableSessions": false,
"enableConsoleLogging": true,
"executeJavascriptSafetyChecks": true,
"autostart": true,
"maxInteractionLogEntries": 50,
"activeToolProfileName": "",
"savedToolProfiles": []
}
也支持使用环境变量:
COCOS_MCP_HOSTCOCOS_MCP_PORTCOCOS_MCP_PROFILE
toolProfile: "custom" 会从 core 集合开始,然后添加 enabledToolCategories / enabledTools,并移除 disabledToolCategories / disabledTools。面板可以将这些暴露设置保存为命名的 savedToolProfiles,以便快速恢复或分享。默认情况下,enableSessions 处于关闭状态,因为此服务在常规编辑器自动化中不需要跨请求的客户端状态。
enableConsoleLogging 默认为 true。在 MCP Settings > Console Logs > Print MCP logs 中将其关闭,即可阻止扩展和 HTTP 服务向 Cocos 控制台输出 MCP 信息、警告和错误。此设置会立即生效,按项目保存,且不会重启 MCP、清除历史记录、屏蔽项目脚本日志或更改 stdio 协议输出。
架构
Cocos Creator Extension
├─ browser.js
│ ├─ Embedded HTTP MCP Server
│ ├─ Tool Registry
│ ├─ Resource Provider
│ ├─ Prompt Provider
│ └─ One-Click Client Configuration
├─ scene.js
│ └─ Scene/runtime execution bridge
├─ panel/index.js
│ └─ Minimal MCP Server dashboard
├─ panel/tool-exposure.js, panel/settings.js, panel/project-skills.js
│ └─ Focused maintenance windows
└─ lib/
├─ assets, diagnostics, screenshots, input
├─ tool-profiles, javascript-safety
├─ tools/
│ ├─ files
│ ├─ assets-advanced
│ ├─ cocos-project
│ └─ scene-events
└─ server, resources, prompts, tool registry
此服务使用 MCP 风格的 HTTP JSON-RPC 2.0,并支持工具、资源、资源模板、提示词、健康检查以及只读的 /tools 调试端点。
开发
发布更改前运行检查:
npm run check
npm test
npm run docs:check
npm run release:check
npm run pack:dry-run
更改 lib/tool-registry.js 后,重新生成工具参考文档:
npm run docs:generate
生成可用于 GitHub Release 的扩展包:
npm run release:package
软件包会写入 releases/<version>/,其中包含 zip、清单、生成的发行说明、校验和文件以及发行版 README。请上传全部五个文件,以便验证公开校验和。完整流程请参阅 RELEASE_WORKFLOW.md 和 RELEASE_CHECKLIST.md。
发布前验证 MCP Registry 元数据:
npm run registry:validate
许可证
MIT 许可证。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。