与Godot游戏引擎交互的模型上下文协议(MCP)服务器。
Godot MCP使AI助手能够启动Godot编辑器,运行项目,捕获调试输出,并通过标准化接口控制项目执行。
这种直接反馈循环有助于AI助手理解在Godot项目中哪些有效,哪些无效,从而生成更好的代码并提供调试帮助。
当前版本: 0.1.0
所需Godot版本: 4.5.0或更高版本
状态: 活跃开发
此MCP服务器需要Godot 4.5.0或更高版本以确保与现代Godot特性的兼容性:
服务器在启动时会自动验证您的Godot版本,并在版本不兼容时提供明确的错误消息。
克隆仓库并构建MCP服务器:
git clone https://github.com/Derfirm/godot-mcp.git
cd godot-mcp
npm install
npm run build
构建过程编译TypeScript并捆绑GDScript操作文件。
在您的Cline MCP设置文件中添加以下内容:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/绝对路径/to/godot-mcp/build/index.js"],
"env": {
"DEBUG": "true" // 可选:启用详细日志
},
"disabled": false,
"autoApprove": [
"launch_editor",
"run_project",
"get_debug_output",
"stop_project",
"get_godot_version",
"list_projects",
"get_project_info",
"create_scene",
"add_node",
"remove_node",
"modify_node",
"duplicate_node",
"query_node",
"load_sprite",
"export_mesh_library",
"save_scene",
"create_script",
"attach_script",
"validate_script",
"get_node_methods",
"import_asset",
"create_resource",
"list_assets",
"configure_import",
"create_signal",
"connect_signal",
"list_signals",
"disconnect_signal",
"add_physics_body",
"configure_physics",
"setup_collision_layers",
"create_area",
"create_ui_element",
"apply_theme",
"setup_layout",
"create_menu",
"create_animation_player",
"add_keyframes",
"setup_animation_tree",
"add_particles",
"get_uid",
"update_project_uids",
"get_class_info",
"get_method_info",
"search_docs",
"get_best_practices",
"run_with_debug",
"get_error_context",
"run_scene",
"capture_screenshot",
"list_missing_assets",
"remote_tree_dump",
"toggle_debug_draw",
"update_project_settings",
"configure_input_map",
"setup_autoload",
"manage_plugins"
]
}
}
}
使用Cursor UI:
godot(或您喜欢的任何名称)commandnode /绝对路径/to/godot-mcp/build/index.js使用项目特定配置:
在项目目录中创建一个.cursor/mcp.json文件,内容如下:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/绝对路径/to/godot-mcp/build/index.js"],
"env": {
"DEBUG": "true" // 启用详细日志
}
}
}
}
您可以使用环境变量自定义服务器行为:
GODOT_PATH:Godot可执行文件的路径(覆盖自动检测)DEBUG:设置为"true"以启用详细的服务器端日志示例:
export GODOT_PATH="/路径/to/godot"
export DEBUG="true"
您可以验证您的Godot安装并检查支持的功能,使用get_godot_version工具:
"我安装了哪个版本的Godot?"
"检查我的Godot版本是否支持所有功能"
该工具将显示:
您也可以手动检查:
godot --version
# 或
/path/to/Godot.app/Contents/MacOS/Godot --version
配置完成后,您的AI助手将在需要时自动运行MCP服务器。您可以使用以下提示:
"为我在/path/to/project的项目启动Godot编辑器"
"运行我的Godot项目并显示任何错误"
"获取有关我的Godot项目结构的信息"
"我安装了哪个版本的Godot?"
"创建一个新的2D场景,根节点为CharacterBody2D"
"在我的玩家场景中添加一个Sprite2D节点并加载角色纹理"
"从我的级别场景中删除旧的敌人节点"
"修改玩家节点,将其位置设置为(100, 200)"
"复制敌人的节点并放置在不同的位置"
"为玩家控制器创建一个新的GDScript"
"将玩家脚本附加到CharacterBody2D节点"
"验证我的player.gd脚本是否有语法错误"
"显示CharacterBody2D节点上可用的所有方法"
"在我的场景中添加一个带有胶囊碰撞形状的CharacterBody2D"
"为玩家、敌人和环境设置碰撞层"
"创建一个用于检测玩家进入区域的Area2D"
"配置我的RigidBody2D的物理属性"
"创建一个主菜单UI,带有开始、选项和退出按钮"
"添加一个标签以显示玩家得分"
"为我的设置菜单设置VBoxContainer布局"
"应用自定义主题到我的UI元素"
"为我的角色创建一个带有空闲和行走动画的AnimationPlayer"
"向动画轨道添加关键帧以动画化玩家的位置"
"设置带有状态机的AnimationTree以处理角色状态"
"为玩家跳跃添加粒子效果"
"更新我的项目设置,将窗口大小设置为1920x1080"
"配置输入动作移动左、移动右和跳跃"
"设置GameManager作为自动加载单例"
"列出所有已安装的编辑器插件"
"以调试模式运行我的项目并捕获所有输出"
"帮我理解这个错误:[粘贴错误消息]"
"显示CharacterBody2D类的文档"
"搜索Godot文档中的move_and_slide"
"在Godot中使用信号的最佳实践是什么?"
"将我的3D模型导出为GridMap使用的MeshLibrary"
"获取我在Godot 4.4项目中的特定脚本文件的UID"
"将按钮的pressed信号连接到start_game方法"
"使用特定压缩设置导入纹理"
Godot MCP服务器使用捆绑的GDScript方法进行高效的操作执行:
1. TypeScript服务器层
2. 捆绑的GDScript操作
godot_operations.gd)用于所有操作3. 文档模块
--doctool获取类信息服务器支持跨多个类别的50多种操作:
未找到Godot
GODOT_PATH环境变量指向您的Godot可执行文件版本不兼容
godot --version以验证您的安装get_godot_version工具检查兼容性连接问题
无效项目路径
project.godot文件的目录构建问题
npm install以确保所有依赖项均已安装node_modules和build文件夹,然后重新构建对于Cursor用户
对于Cline用户
欢迎贡献!请参阅CONTRIBUTING.md了解指南。
详见.kiro/specs/godot-game-assistant/tasks.md以获取详细的实施计划。
服务器自动使用--doctool标志生成并缓存Godot文档。这在您使用与文档相关的工具时透明地发生。
如果您想预生成文档或清除缓存:
# 创建缓存目录
mkdir -p .godot-docs-cache/doctool
# 为所有Godot类生成文档
godot --doctool .godot-docs-cache/doctool --no-docbase --headless --quit
# 或使用自定义Godot路径(macOS示例)
/Applications/Godot.app/Contents/MacOS/Godot --doctool .godot-docs-cache/doctool --no-docbase --headless --quit
# Windows示例
"C:\Program Files\Godot\Godot.exe" --doctool .godot-docs-cache/doctool --no-docbase --headless --quit
# Linux示例
/usr/bin/godot --doctool .godot-docs-cache/doctool --no-docbase --headless --quit
注意:
--headless和--quit标志确保Godot在没有GUI的情况下运行并在生成文档后退出--no-docbase标志生成类结构(方法、属性、信号),而不包括详细的描述~/.godot-docs-cache/(用户的家目录)MCP_CACHE_DIR环境变量以指定不同的目录doctool/ - Godot生成的原始XML文档*.json - 解析和缓存的类信息.godot-docs-cache/目录以重新生成环境变量示例:
# 设置自定义缓存目录
export MCP_CACHE_DIR=/路径/to/your/cache