注意: 这是我第一次尝试创建一个MCP(模型上下文协议)服务器。它并不完美,实际上还缺少很多功能,但我希望比我聪明的人可以在此基础上继续开发和完善!
defold-mcp 是一个开源的模型上下文协议(MCP)服务器,旨在连接Defold游戏引擎与现代开发工具及AI驱动的工作流程。它提供了一套强大的工具,用于自动化、检查和管理Defold项目,使开发者更容易:
.env文件支持环境配置。defold-mcp 暴露了以下MCP工具:
launch_defold: 启动项目的Defold编辑器run_project: 在调试模式下运行Defold项目并捕获输出create_project: 创建具有基本结构的新Defold项目list_projects: 列出目录中的所有Defold项目get_project_settings: 从game.project读取设置update_project_settings: 更新game.project中的设置create_script: 创建新的Lua脚本edit_script: 编辑现有的Lua脚本create_lua_module: 创建可复用的Lua模块create_collection: 创建新的集合add_game_object: 向集合中添加游戏对象add_component: 向游戏对象添加组件(如精灵、脚本等)create_sprite: 创建并添加精灵资源create_tilemap: 创建并添加瓦片地图资源create_particlefx: 创建并添加粒子效果create_camera: 创建并添加相机组件create_factory: 创建用于生成游戏对象的工厂组件create_gui: 创建GUI场景和脚本setup_physics: 为碰撞对象配置物理属性build_project: 为目标平台构建项目enable_hot_reload: 通过监视项目文件启用热重载add_native_extension: 添加本地扩展get_project_analytics: 获取项目修改的分析数据...等等!详情见index.js。
git clone https://github.com/yourusername/defold-mcp.git
cd defold-mcp
npm install
.env文件以覆盖默认值(参见index.js中的变量如DEFOLD_PATH、MCP_PORT等)。node index.js
如果您正在使用Cursor或Windsurf,则无需手动运行服务器。相反,在您的项目中添加一个配置文件.cursor/mcp.json,让客户端自动启动和管理服务器。
这是一个示例配置:
{
"mcpServers": {
"defold-mcp": {
"command": "/path/to/your/node/binary", // 例如,~/.nvm/versions/node/v22.14.0/bin/node
"args": ["/path/to/where/you/cloned/defold-mcp/index.js"], // 例如,~/git/defold-mcp/index.js
"env": {
"MCP_TRANSPORT": "stdio",
"DEFOLD_PATH": "/Applications/Defold.app/Contents/MacOS/Defold",
"MCP_PORT": "3000",
"MCP_HOST": "localhost",
"BOB_PATH": "/desired/path/for/bob.jar" // 例如,~/defold/bob-1.9.6.jar
}
}
}
}
command: 您的Node.js二进制文件路径。您可以通过在终端中运行which node找到此路径。args: 此项目index.js文件的路径,无论您将其克隆到何处。BOB_PATH: 您希望安装或找到Defold bob.jar文件的位置。这允许Cursor或Windsurf在您打开项目时自动启动、停止并连接到defold-mcp服务器。只需根据您的设置调整路径和环境变量即可。
我创建defold-mcp作为我首次尝试构建MCP服务器并与Defold游戏引擎集成的实验。我的目标是使Defold更易于自动化和AI驱动的工作流程。我知道还有粗糙的边缘和可以做得更好的地方,但我希望这个项目能激发其他人贡献、改进,并将其发展得更远!
如果您看到改进的方法,请分叉、贡献或联系我们。让我们一起为Defold社区打造一些伟大的东西。
欢迎提交问题报告、功能请求和贡献!请打开一个issue或提交pull request。
本项目采用MIT许可证。
由好奇心和对游戏开发的热爱所创造。