助力AI辅助开发,LayaAir3.2.5开始支持MCP协议

该文章已生成可运行项目,

在今天发布的 LayaAir 3.2.5 中,我们不仅修复了若干已知BUG,还对程序蓝图、3D物理系统、IDE易用性等方面进行了优化和完善,为开发者带来更加易用的创作体验。

本次版本还有一个非常重要的升级,那就是支持了MCP(Model Context Protocol)协议规范

MCP是一套面向未来的开放式标准,旨在打通引擎与AI辅助开发工具(如Claude、Cursor等)之间的连接。通过MCP,开发者可以基于LayaAir引擎扩展自定义的Tool工具和Prompt提示模块,并将其直接暴露给支持MCP的智能IDE进行调用。

这意味着:

  • 极大提升开发效率

    通过AI工具理解和调用开发者的自定义功能模块,减少重复劳动,加速开发流程。

  • 支持个性化扩展

    可以根据项目需求,量身定制专属的开发辅助工具,让LayaAir3-IDE成为真正属于大家的个性化IDE。

  • 接轨未来开发趋势

    MCP作为AI辅助编程的重要标准之一,LayaAir 引擎率先接入,让我们的开发环境始终保持行业前沿。

  • 社区共建生态

    通过免费开放的插件,引导更多开发者贡献MCP插件和模块,整个LayaAir生态将变得更加开放、多元、富有生命力。

如何快速启用MCP支持?

1、打开资源商店,搜索关键词 "MCP",将引擎官方MCP插件添加至我的资源

2、启动 LayaAir-IDE 3.2.5,依次点击菜单栏 开发者 -> 包管理器,找到并安装添加的MCP插件。

3、插件安装完成后,MCP服务器将自动启动,并在界面中显示可用的URL。

4、将上图控制台的 URL 填写到 Cursor、Claude 等支持MCP协议的服务器配置项中,即可开始智能联动开发。

例如 Cursor 配置里,先在 Cursor Setting 中找到 Features,下滑找到 MCP Servers,点击Add new MCP Server。

说明:

Name

用于识别服务器的昵称

Type

sse:用于服务器发送事件

Server URL 

将前文的URL复制到此处

以下视频演示了基于MCP协议,LayaAir3-IDE场景编辑与3D美术工具Blender形成了联动开发。

如何使用MCP二次开发?

MCP开发方式和普通的插件开发方式相同。在项目新建一个ts文件,使用本插件提供的装饰器就可以自定义 tool 和 prompt 。

@IEditor.mcp.tool

在UI进程自定义tool

@IEditor.mcp.prompt

在UI进程自定义prompt

@IEditorEnv.mcp.tool

在场景进程自定义tool

@IEditorEnv.mcp.prompt

在场景进程自定义prompt

回调函数的返回值可以为字符串,也可以为对象,请参考官方文档:

https://modelcontextprotocol.io/docs

为了让vscode能够识别本插件提供的装饰器,需要在tsconfig里加上配置,如下示例,在include里加入./library/packages/**/*.d.ts

{  "compilerOptions": {  },  "include": [    "./assets",    "./src",    "./engine",    "./library/packages/**/*.d.ts"  ]}

以下是简单的示例:

import fs from "fs";import fpath from "path";
export class MCPTest {    @IEditorEnv.mcp.tool("create-cube-in-scene", 'create a cube in the opened scene')    static async createCube() {        let cube = new Laya.Sprite3D();        cube.name = "Cube";        cube.addComponent(Laya.MeshFilter).sharedMesh = <Laya.Mesh>await Laya.loader.load("~/internal/Box.lm");        cube.addComponent(Laya.MeshRenderer).sharedMaterial = <Laya.Material>await Laya.loader.load("~/internal/DefaultMaterial.lmat");        EditorEnv.scene.addNode(EditorEnv.scene.rootNode3D, cube);        EditorEnv.navigationManager.focusNode(cube);        return "finish";    }
    @IEditorEnv.mcp.tool("import-model-to-scene", "import an external model to the scene", {        path: "an absolute file path"    })    static async importModelToScene(sourceFile: string) {        let asset = EditorEnv.assetMgr.createFileAsset(fpath.basename(sourceFile), true);        await fs.promises.copyFile(sourceFile, EditorEnv.assetMgr.getFullPath(asset));        //等待IDE监测到文件系统的改变        await IEditorEnv.utils.sleep(500);        await EditorEnv.assetMgr.flushChanges();        let node = await EditorEnv.scene.instantiatePrefab(asset.id, null, null);        EditorEnv.scene.addNode(EditorEnv.scene.rootNode3D, node);        EditorEnv.navigationManager.focusNode(node);        return "finish";    }}

更多3.2.5的更新记录,请前往官网查看!

https://layaair.com/#/engineDownload/

图片

END

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值