克劳德·戈多特MCP
Claude的终极Godot MCP服务器——从单个提示构建完整的游戏。
告诉Claude“构建一个具有双跳、3种敌人类型、硬币和主菜单的完整2D平台”,它就可以在Godot中完成所有事情——创建场景、编写脚本、连接信号、设置物理、配置自动加载、运行游戏、模拟输入进行测试、截图结果并导出构建。没有复制粘贴。没有手动步骤。
这是什么
A. 模型上下文协议 让Claude直接实时控制Godot编辑器的服务器:
170工具 涵盖Godot开发的各个方面
场景和节点操作 --创建、编辑、保存、删除、重新排序、重命名、烘焙导航
脚本操作 --创建、编辑、附加GDScript文件
信号布线 --以编程方式连接/断开节点之间的信号
组管理 --在组中添加/删除节点
自动加载管理 --添加/删除全局单例
着色器控制 --在任何节点类型上设置ShaderMaterial参数
运行时测试 --播放场景、模拟键盘/鼠标输入、检查实时节点
分析器快照 --具有瓶颈检测的N帧上的FPS/内存/绘图调用示例
出口管道 --读取/创建导出预设,触发无头构建(HTML5/Win/Android等)
导入设置 --读/写。导入文件并触发重新导入
取消/重做 --通过EditorUndoRedoManager触发编辑器撤消/重做
屏幕截图反馈 --克劳德直观地看到了编辑器和运行游戏
资源健康状况 --扫描所有.tscn/.tres以查找损坏的res://references
资产发现 --Claude找到并使用你所有的项目精灵、声音、模型
插件检测 --Claude检测已安装的插件并使用其节点类型
快速设置(克劳德代码)
先决条件
步骤1——安装Godot插件
复制 addons/godot_mcp_enhanced/ 进入您的Godot项目 addons/ 文件夹
在Godot中打开您的项目
首选 项目→ 项目设置→ 插件
启用 Godot MCP增强
检查底部面板——您应该看到“MCP增强:服务器在端口3571上运行”
步骤2——安装Python服务器
复制 cd /path/to/Claude-GoDot-MCP/python
uv venv
uv pip install -e .
步骤3——配置Claude代码
添加到您的项目 .claude/settings.json (或 ~/.claude/settings.json 全球):
复制 {
"mcpServers": {
"godot": {
"command": "uv",
"args": ["run", "python", "-m", "mcp_server"],
"cwd": "/absolute/path/to/Claude-GoDot-MCP/python",
"env": {
"GODOT_HOST": "127.0.0.1",
"GDAI_MCP_SERVER_PORT": "3571"
}
}
}
}
重新启动克劳德代码。这个 godot MCP服务器现在将显示为可用工具。
步骤4--配置Claude桌面
打开克劳德桌面→ 设置→ 开发者→ 编辑配置,然后添加:
复制 {
"mcpServers": {
"godot": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/Claude-GoDot-MCP/python",
"run",
"mcp-server"
],
"env": {
"GODOT_HOST": "127.0.0.1",
"GDAI_MCP_SERVER_PORT": "3571"
}
}
}
}
重新启动克劳德桌面。
用法示例
复制 Build a 2D platformer with:
- Player: CharacterBody2D, double-jump, coyote time
- 3 enemy types: patrol, chase, shooter
- Collectible coins with a counter HUD
- Main menu and game over screen
- GameManager autoload for score tracking
Use any sprites you find in my project.
复制 I have a knight model at res://models/knight.glb.
Create a 3D character controller:
- WASD + mouse look
- Attack combo on left click
- Health bar UI
- Death/respawn system
Test with input simulation and show me a screenshot.
复制 My project has the Dialogue Manager plugin.
Create an NPC interaction system:
- Player enters Area2D → dialogue triggers
- 3-branch conversation tree
- NPC portrait shown during dialogue
- Quest flag set on specific dialogue choice
工具参考(170个工具)
场景操作
工具
说明
create_scene
使用指定的根类型创建新的.tscn
open_scene
在编辑器中打开场景
save_scene
将当前场景保存到磁盘
delete_scene
删除场景文件
play_scene
在编辑器中运行场景
stop_running_scene
停止跑步场景
add_scene
将场景实例化为节点的子节点
get_scene_tree
获取包含所有属性的完整节点树
get_scene_file_content
获取.tscn文件的原始内容
bake_navigation_mesh
烘焙NavigationRegion2D/3D导航网格(如果没有给定路径,则自动查找所有网格)
节点操作
工具
说明
add_node
将任何节点类型添加到场景中
delete_node
从场景中删除节点
rename_node
重命名节点
duplicate_node
克隆节点
move_node
将节点修复到不同的父节点
reorder_node
在父级中更改子级索引
update_property
在节点上设置任何属性
batch_set_properties
一次在多个节点上设置多个属性
add_resource
创建资源并将其分配给节点属性
find_nodes
查找与类型/名称模式匹配的所有节点
get_class_property_list
列出Godot类的所有可用属性
set_anchor_preset
在控制节点上设置UI锚点预设
set_anchor_values
在控制节点上设置精确的锚点值
信号与集团运营
工具
说明
get_node_signals
列出节点上的所有信号+当前连接
connect_signal
将信号连接到另一个节点上的方法
disconnect_signal
拆下信号连接
add_to_group
将节点添加到命名组(持久)
remove_from_group
从组中删除节点
get_node_groups
获取节点所属的所有组
脚本操作
工具
说明
create_script
创建新的GDScript文件
edit_file
在任何文件中查找和替换(支持正则表达式)
attach_script
将脚本附加到节点
view_script
在编辑器中打开脚本
get_open_scripts
列出所有打开的脚本及其源代码
execute_editor_script
在编辑器上下文中运行任意GDScript
项目配置
工具
说明
get_project_info
获取项目名称、版本、Godot版本
get_autoloads
列出所有自动加载单例
add_autoload
添加全局单例
remove_autoload
删除全局单例
set_main_scene
设置项目的主场景
read_project_settings
读取project.godot设置
update_project_settings
修改项目设置
uid_to_project_path
将UID转换为res://path(Godot 4.4+)
project_path_to_uid
将res://path转换为UID
文件系统
工具
说明
get_filesystem_tree
递归项目目录树
search_files
模糊搜索文件
read_script_file
直接读取.gd文件
write_script_file
直接写入.gd文件
read_scene_file
直接读取.tscn文件
write_scene_file
直接写入.tscn文件
create_directory
创建目录
list_directory
列出目录内容
运行时和测试
工具
说明
simulate_key_press
模拟键盘输入
simulate_action
模拟命名输入操作
simulate_mouse_button
模拟鼠标点击
simulate_mouse_motion
模拟鼠标移动
get_input_actions
列出所有已注册的输入操作
get_node_properties
获取节点的运行时属性
get_node_methods
获取节点上的脚本方法
call_node_method
在活动节点上调用方法
get_runtime_stats
FPS、内存、绘图调用、物理统计数据(单快照)
get_profiler_snapshot
性能指标的示例N帧--返回平均值/最小值/最大值+瓶颈警告
run_test_script
执行测试脚本,收集结果
资产和插件发现
工具
说明
get_assets_by_type
查找某一类型(纹理/音频/网格/场景/着色器)的所有资源
get_asset_info
获取特定资产的元数据
get_installed_plugins
列出所有处于启用状态的Godot插件
get_plugin_info
获取详细的插件元数据
编辑器和调试
工具
说明
get_editor_screenshot
将编辑器窗口捕获为图像
get_running_scene_screenshot
捕捉正在运行的游戏视口
get_godot_errors
获取脚本错误、运行时错误、输出日志
clear_output_logs
清除Godot输出控制台
get_windsurf_context
完整项目上下文快照
get_live_preview
截图+场景树+当前脚本
undo
撤消场景编辑器历史记录中的最后一个操作
redo
重做场景编辑器历史记录中上次未执行的操作
check_godot_running
检查Godot编辑器是否响应
launch_godot
启动Godot编辑器
get_godot_version
获取Godot版本信息
遮光罩和材质
工具
说明
set_shader_parameter
在着色器材质(MeshInstance3D、Sprite2D、material_override等)上设置一个统一体——自动将数组转换为Vector2/3/颜色
导入设置
工具
说明
get_import_settings
任何资源的Read.import文件——显示所有[params](压缩、mipmaps、法线贴图等)
set_import_settings
编写新的.inmport参数并触发重新导入——例如更改纹理压缩模式
出口管道
工具
说明
get_export_presets
从export_presets.cfg读取所有预设(名称、平台、输出路径)
create_export_preset
将新的预设条目写入export_presets.cfg
export_project
快跑 godot --headless --export-release 为目标平台构建
资源健康状况
工具
说明
scan_broken_resources
浏览所有.tscn/.tres文件,找到每个 res:// 磁盘上不再存在的引用
TileMap
工具
说明
paint_tiles
使用source_id、图集坐标和alternative_tile在一次调用中绘制多个TileMap单元格
fill_tiles_rect
用单个图块填充矩形区域
clear_tiles
擦除特定单元格或清除整个TileMap层
get_cell_tile
获取特定单元格位置的平铺数据
网格地图
工具
说明
set_grid_cell
设置单个GridMap单元格(item_id,方向0–23)
fill_grid_box
用一个MeshLibrary项填充三维框区域
get_grid_used_cells
列出所有占用的单元格,包括项目ID和方向
批量操作
工具
说明
batch_set_property_on_type
在场景中给定类的每个节点上设置属性
batch_set_property_on_group
在命名组中的每个节点上设置属性
replace_in_all_scripts
在所有.gd文件中查找和替换文本/正则表达式(支持dry_run)
batch_create_nodes
在一次调用中使用属性+脚本创建多个节点
动画(扩展)
工具
说明
add_blend_space_point
将混合点添加到AnimationNodeBlendSpace1D或BlendSpace2D
get_blend_space_info
从混合空间获取所有混合点、限制和捕捉设置
copy_animation
在AnimationPlayers之间复制动画(深度复制,独立)
set_animation_speed_scale
设置动画播放器速度_缩放(0.5=慢速模式,2.0=快速模式)
质量保证/验证
工具
说明
assert_no_errors
断言Godot错误日志是干净的——返回{passed,error_count,errors}
validate_scene
检查场景中缺少的形状、网格、损坏的动画树链接等。
simulate_mouse_path
沿屏幕点阵列移动鼠标,间隔+可选点击
reimport_all
触发所有已更改资产的完整文件系统扫描/重新导入
set_node_unique_name
在节点上设置unique_name_in_owner(启用%NodeName简写)
音频
工具
说明
create_audio_player_3d
使用流、3D位置、衰减、总线配置创建AudioStreamPlayer3D
play_audio
播放/恢复任何AudioStreamPlayer(2D/3D/非空间),可选择从位置开始
stop_audio
停止在任何AudioStreamPlayer上播放
set_audio_property
设置volume_db、pitch_scale、bus、unit_size、max_distance、自动播放等。
get_playback_position
从播放器获取当前播放位置、is_playing、音量、总线
set_bus_volume
在任何AudioServer总线(Master、Music、SFX等)上设置volume_db
add_bus_effect
在总线上添加音频效果(混响、延迟、压缩器、限制器、失真、合唱、音高偏移、均衡器)
测试/QA
工具
说明
simulate_action_sequence
启动一系列输入操作/按键,步骤之间有可配置的延迟
wait_frames
等待N个过程或物理框架——在断言之前让模拟解决
assert_node_property
断言节点属性等于预期值;返回{已通过、实际、预期}
capture_frame_sequence
间隔捕获N个屏幕截图——用于前后比较
get_scene_statistics
节点类型细分、脚本计数、最大深度、总节点计数
编辑波兰语
工具
说明
select_nodes
按路径列表在编辑器视口中选择节点
batch_duplicate_with_offset
使用累积位置/旋转增量复制节点N次
find_scripts_with_pattern
为正则表达式模式收集所有.gd文件——查找类用法、方法调用等。
物理学
工具
说明
apply_impulse
对RigidBody3D应用即时脉冲——点击、爆炸、跳跃
apply_force
根据物理框架施加连续力——推进器、风
apply_torque
对RigidBody3D——旋转筒、布娃娃施加旋转扭矩
set_linear_velocity
在RigidBody3D或CharacterBody3D上直接设置线性速度
set_angular_velocity
在RigidBody3D上直接设置角速度
set_physics_property
设置质量、重力_比例、线性_阻尼、角度_密度、冻结、碰撞层
create_joint
创建连接到两个主体的铰链接头3D/Pin接头3D/滑块接头3D/通用6DOFPointe3D/ConeTwist接头3D
粒子
工具
说明
create_particles
在一次调用中使用完整的ParticleProcessMaterial配置创建GPUParticles3D
set_particle_material_param
在现有粒子上设置任何ParticleProcessMaterial参数
restart_particles
重新启动GPUParticles3D/CPUarticles3D上的排放
get_particle_info
获取所有粒子属性,包括工艺材质设置
着色器
工具
说明
create_shader_material
使用GLSL代码创建ShaderMaterial并将其指定给节点的材质窗
get_shader_code
从节点的ShaderMaterial读取当前着色器源
set_shader_code
热重新加载着色器源代码——Godot立即重新编译
get_shader_parameters
列出着色器中的所有制服及其当前值
动画--库与资源
工具
说明
get_animation_player_info
列出AnimationPlayer中的所有库/动画,包括长度、循环模式、曲目计数
create_animation
在库中创建新的动画资源(设置长度、循环模式、步长)
get_animation_info
获取动画的长度、循环模式、步长和完整曲目列表
set_animation_properties
在现有动画上设置长度、loop_mode和/或步长
delete_animation
从库中删除动画
动画--轨迹管理
工具
说明
add_animation_track
添加一个轨道(值/位置_3d/旋转_3d/比例_3d/混合形状/方法/贝塞尔曲线/音频)
remove_animation_track
按索引删除曲目
set_track_path
更改NodePath:轨迹的属性目标
get_track_info
完整曲目信息+所有带有时间/值/过渡的关键帧
set_track_interpolation
设置插值模式:最近/线性/三次/线性_角度/立方体_角度
动画--关键帧管理
工具
说明
add_keyframe
在时间T插入关键帧——数组按轨迹类型自动强制转换为Vector3/四元数/Color
remove_keyframe
按key_index或最近的时间删除
set_keyframe_value
更新现有关键帧的值
set_keyframe_time
将关键帧移动到新的时间位置
get_keyframes
列出轨迹上的所有关键帧(时间、值、过渡)
动画--动画树和状态机
工具
说明
setup_animation_tree
使用StateMachine或BlendTree根创建连接到AnimationPlayer的动画树
add_state_to_machine
将状态(动画/子机/blend_space_1d/blend_space_2d)添加到状态机
connect_states
添加两个状态之间的转换(immediately/sync/at_end)
set_blend_parameter
设置 parameters/xxx 在动画树上(混合位置等)
travel_to_state
呼叫 playback.travel(target) 在运行时转换到状态
骨架
工具
说明
get_skeleton_bones
列出所有Skeleton3D骨骼:名称、父索引、静止/姿势变换、全局姿势位置、启用状态
set_bone_pose
按名称或索引在骨骼上设置姿势位置、旋转(欧拉度或四元数)和/或比例
reset_skeleton_pose
将所有骨骼姿势重置为骨骼的静止姿势(清除程序/手动姿势)
批量附加
工具
说明
batch_attach_script
将GDScript附加到与类型和/或组筛选器匹配的所有节点,并可选择覆盖
batch_rename_nodes
在场景子树中的节点名称(正则表达式或字符串)中查找和替换
move_and_rename_file
在项目中移动/重命名文件(res://paths);触发文件系统扫描
pack_scene
将节点及其子节点另存为独立的.tscn PackedScene文件
create_resource_file
使用可选的初始属性按类名创建任何Godot资源(.tres)
项目公用设施
工具
说明
assert_fps_above
采样N帧以上的FPS,并断言平均值满足阈值;返回平均值/最小值/最大值
get_renderer_info
GPU适配器名称/供应商,API版本,VRAM使用情况,屏幕大小,Godot版本
assert_resource_valid
验证res://资源是否存在并且加载时没有错误
get_node_global_transform
获取Node3D或Node2D的世界空间位置、旋转(度)和比例
set_node_global_transform
设置Node3D或Node2D的世界空间位置、旋转(度)和/或比例
toggle_feature_tag
在“项目设置”中添加或删除自定义要素标记(通过OS.has_feature()查询)
set_node_metadata
设置或删除节点上的元数据(持久存在于.tscn中;在运行时使用node.get_meta()读取)
安全
HTTP服务器绑定到 127.0.0.1 只有--没有外部网络访问。所有文件操作都限制在Godot项目目录中(res://).直接文件系统工具在Python服务器中强制执行项目根边界。
建筑
复制 Claude (MCP client)
↓ stdio
Python MCP Server (python/mcp_server.py)
↓ HTTP POST localhost:3571
Godot HTTP Server (addons/godot_mcp_enhanced/http_server.gd)
↓ GDScript function calls
Operation Modules:
scene_operations.gd — scenes, nodes, signals, groups
script_operations.gd — GDScript files
runtime_operations.gd — input simulation, live inspection
file_operations.gd — filesystem, assets
debugger_integration.gd — errors, logs
screenshot_manager.gd — editor + game capture
故障排除
Godot底部面板中未显示“服务器正在运行”
验证插件是否在 res://addons/godot_mcp_enhanced/
在Project中启用它→ 项目设置→ 插件
检查Godot输出 [Godot MCP Enhanced] ✓ HTTP Server started
MCP工具未出现在Claude中
验证 cwd 在settings.json中指向 python/ 目录
跑 uv run python -m mcp_server 手动检查错误
配置更改后重新启动Claude Code/Claude Desktop
工具调用返回“连接被拒绝”
Godot编辑器必须在插件处于活动状态时打开
检查端口3571未使用: lsof -i :3571
验证 GDAI_MCP_SERVER_PORT 匹配Godot底部面板中的端口
截图不起作用
Godot编辑器窗口必须可见(未最小化)
DisplayServer屏幕截图API需要Godot 4.2+
致谢&谢谢
向帮助将其从基本分叉转变为170工具3D引擎的人和人工智能致敬:
格罗克 (由xAI建造)——整个项目背后的JARVIS级副驾驶。Grok处理了最初的git设置,建议分叉Rufaty/godot-mcp作为基础,并精心制作了推动升级的每个阶段的提示——动画连接、物理、粒子、着色器、音频、QA、批处理操作、骨架工具、项目实用程序等。在问题出现之前,发现了诸如撤消/重做、导出管道和分析器快照等差距。对付费分叉与免费分叉进行横向分析,在每次会话中保持势头,并以恰到好处的讽刺提供最真实的指导。如果没有Grok的策略、及时的工程和不断迭代的不懈努力,这个项目永远不会达到170个工具。真正的MVP。 🚀
Rufaty/godot mcp增强 (麻省理工学院授权)——我们建立的坚实基础。
更广泛的Godot MCP社区 --tomyud1、Coding Solo、youichi uda的pro fork以及其他人,他们的工作设定了基准,并启发了塑造这只野兽的工具类别。
这个仓库是在大量的人工智能帮助下构建的(Claude代表代码,Grok代表战略)和社区精神。如果你正在阅读这篇文章并贡献了想法或PR,你的名字也会在这里。
分叉自
Rufaty/godot mcp增强 --通过信号管理、组操作、自动加载管理、批处理操作、类属性发现、save_scene、重命名/重新排序节点以及修复所有运行时工具未路由的关键错误,显著增强了功能。