Godot编辑器AI控制协议

连接AI助手与Godot编辑器的MCP服务器,实现通过AI工具控制场景、节点、脚本及运行游戏。

  • by LeanderM99
  • C#
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 LeanderM99/GodotMCP

使用说明

Godot MCP

一 MCP(模型上下文协议) 将Claude等AI助手连接到Godot 4.6+编辑器的服务器。控制场景、节点、脚本,甚至运行你的游戏——所有这些都可以通过你的AI编码工具完成。

专为 戈多。NET(C#).

入门指南

先决条件

1.安装Godot插件

复制 godot-mcp/ 将文件夹放入Godot项目的 addons/ 目录:

your-project/
  addons/
    godot-mcp/
      MCPPlugin.cs
      WebSocketServer.cs
      CommandRouter.cs
      Handlers/
      plugin.cfg

然后在中启用插件 项目>项目设置>插件 --检查 Godot MCP.

2.构建MCP服务器

cd mcp-server
npm install
npm run build

3.配置您的AI工具

将服务器添加到MCP客户端配置中。对于 克劳德代码,添加到您的 .claude/settings.json:

{
  "mcpServers": {
    "godot": {
      "command": "node",
      "args": ["<path-to>/mcp-server/build/index.js"]
    }
  }
}

4.打开Godot并开始使用

在编辑器中打开您的Godot项目。该插件在端口上启动WebSocket服务器 6550 自动。当您的AI工具发出第一个请求时,MCP服务器会连接到它。

环境变量

变量 默认值 描述
GODOT_MCP_PORT 6550 MCP服务器连接到的WebSocket端口
GODOT_MCP_TIMEOUT 15000 请求超时(毫秒)

建筑

AI Tool (Claude Code, etc.)
  ↕ stdio (MCP protocol)
MCP Server (Node.js / TypeScript)
  ↕ WebSocket (localhost:6550)
Godot Editor Plugin (C# EditorPlugin)
  ↕ Godot API
Your Game Project

两个组成部分:

  • mcp-server/ --使用stdio传输的TypeScript MCP服务器。使用Zod验证输入,通过WebSocket转发命令。
  • godot-mcp/ --在Godot编辑器内运行的C#EditorPlugin。通过WebSocket接收命令,根据Godot API执行命令,返回结果。

工具

7个类别的45个工具。

项目

工具 说明
project_get_settings 读取project.godot设置。如果未指定节/键,则返回所有设置。
project_list_files 列出目录中的文件。支持球形过滤和递归扫描。
project_read_file 读取项目文件的内容。
project_write_file 在项目中写入或创建文件。
project_get_uid 将资源路径转换为其UID。
project_get_path_from_uid 将UID转换回资源路径。

场景

工具 说明
scene_create 使用指定类型的根节点创建新的场景文件。
scene_open 在编辑器中打开一个场景。
scene_get_current 获取有关当前打开的场景的信息。
scene_save 保存当前或指定的场景。
scene_delete 从项目中删除场景文件。
scene_instance 将PackedScene作为当前场景中节点的子节点进行实例化。
scene_get_tree 获取JSON格式的完整场景树结构。
scene_play 运行项目或特定场景。
scene_stop 停止当前正在运行的游戏。

节点

工具 说明
node_add 将新节点添加到场景树中。
node_delete 从场景树中删除节点。
node_rename 重命名节点。
node_duplicate 复制一个节点及其所有子节点。
node_move 将节点修复为新的父节点。
node_get_properties 获取节点的所有属性。
node_set_property 在节点上设置属性。
node_get_signals 列出节点上定义的所有信号。
node_connect_signal 将信号连接到另一个节点上的方法。
node_disconnect_signal 断开信号连接。
node_get_children 列出节点的直接子节点。

脚本

工具 说明
script_list 列出项目中的所有脚本。按语言筛选(C#、GDScript或两者)。
script_read 读取脚本文件的源代码。
script_create 创建新的脚本文件。
script_edit 替换现有脚本文件的内容。
script_attach 将脚本附加到当前场景中的节点。
script_detach 将脚本与节点分离。

编辑

工具 说明
editor_screenshot 截取编辑器视口的屏幕截图(2D、3D或完整)。
editor_game_screenshot 截取正在运行的游戏视口的屏幕截图。
editor_get_errors 从Godot输出日志中获取最近的错误和警告。
editor_execute_gdscript 在编辑器上下文中执行GDScript表达式。
editor_execute_csharp 在编辑器上下文中执行C#表达式。
editor_reload_project 在编辑器中重新加载当前项目。
editor_get_open_files 列出脚本编辑器中当前打开的所有文件。
editor_open_file 在脚本编辑器中的可选行号处打开文件。

输入

工具 说明
input_key 在跑步游戏中模拟键盘按键的按下/释放。
input_mouse 在运行游戏中模拟鼠标事件(点击、按下、释放、移动)。
input_action 触发Godot输入操作(例如。 move_up, jump).
input_text 逐个字符键入文本字符串。
input_sequence 执行一系列定时输入操作。

运行时

工具 说明
runtime_get_scene_tree 获取跑步游戏的实时场景树。
runtime_get_node_properties 获取正在运行的游戏中节点的属性。
runtime_capture_frame 捕获一帧性能数据:FPS、帧时间、对象计数、绘制调用。
runtime_monitor_property 随时间监控属性值。

许可证

麻省理工学院