一、项目概述
项目名称:Godot MCP Native (Model Context Protocol)
核心定位:一个 Godot Engine 编辑器插件,通过 Model Context Protocol (MCP) 将 AI 助手(如 Claude、Cursor 等)与 Godot 编辑器深度集成,让 AI 能够直接理解和操作 Godot 项目。
核心特点:
- 🦀 完全原生实现:纯 GDScript 编写,无需 Node.js 等外部依赖
- 🔧 154 个 MCP 工具:30 个核心工具 + 124 个补充工具
- 🌐 双传输模式:支持 HTTP(SSE)和 Stdio(开发中)
- 🔇 Vibe Coding 模式:免打扰模式,避免 AI 操作干扰用户工作流
- 🌍 国际化支持:完整的英文/中文双语支持
二、项目结构
c:\GitHub\Godot-MCP-Native\
├── addons\godot_mcp\ # 插件主目录
│ ├── mcp_server_native.gd # 插件入口 (EditorPlugin)
│ ├── native_mcp\ # 核心 MCP 实现
│ ├── tools\ # 154 个工具实现
│ ├── runtime\ # 运行时探针
│ ├── ui\ # 编辑器 UI 面板
│ └── utils\ # 工具类
├── docs\ # 完整文档体系
├── test\ # 测试体系(单元 + 集成)
├── project.godot # Godot 项目配置
└── README.md / AGENTS.md # 项目文档
三、架构设计
3.1 三层架构
┌─────────────────────────────────┐
│ AI Client (Claude, etc.) │ ← JSON-RPC 2.0 请求
└──────────────┬──────────────────┘
│ HTTP / Stdio
┌──────────────▼──────────────────┐
│ Godot Native MCP Server │ ← 工具注册、请求路由、认证
└──────────────┬──────────────────┘
│ Godot Editor API
┌──────────────▼──────────────────┐
│ Godot Editor │ ← 场景、脚本、节点操作
└─────────────────────────────────┘
3.2 核心模块
| 模块 | 文件 | 职责 |
|---|---|---|
| 插件入口 | mcp_server_native.gd |
EditorPlugin 生命周期管理 |
| 服务器核心 | mcp_server_core.gd |
MCP 协议处理、工具注册、消息路由 |
| 传输层 | mcp_http_server.gd |
HTTP + SSE 传输实现 |
| 认证管理 | mcp_auth_manager.gd |
Token 认证,时序安全比较 |
| 工具分类 | mcp_tool_classifier.gd |
core / supplementary 分类 |
| 调试器桥接 | mcp_debugger_bridge.gd |
连接 Godot 调试器 |
| 运行时探针 | mcp_runtime_probe.gd |
注入游戏获取运行时数据 |
四、MCP 工具体系(154 个)
4.1 工具分类
| 类别 | 核心 | 补充 | 总计 | 源文件 |
|---|---|---|---|---|
| Node Tools | 9 | 11 | 20 | node_tools_native.gd |
| Script Tools | 7 | 7 | 14 | script_tools_native.gd |
| Scene Tools | 4 | 4 | 8 | scene_tools_native.gd |
| Editor Tools | 4 | 12 | 16 | editor_tools_native.gd |
| Debug Tools | 3 | 67 | 70 | debug_tools_native.gd |
| Project Tools | 3 | 23 | 26 | project_tools_native.gd |
| 合计 | 30 | 124 | 154 | - |
4.2 工具注册方式
每个工具通过 8 个参数注册:
server_core.register_tool(
"tool_name", # 1. 工具名称
"Description...", # 2. 描述
input_schema, # 3. 输入 JSON Schema
Callable(self, "_tool_..."), # 4. 回调函数
output_schema, # 5. 输出 JSON Schema
annotations_dict, # 6. 注解(readOnlyHint 等)
"core", # 7. 类别
"Group-Name" # 8. 分组
)
4.3 工具执行流程
AI 请求 → 传输层接收 → 参数验证(JSON Schema)
→ 权限检查 → 调用工具实现 → 执行 Godot API
→ 返回结果 → 发送给 AI
五、运行时探针(Runtime Probe)
这是项目的特色功能,允许 AI 在游戏运行时获取和操控游戏状态。
架构
MCP Server ←→ EngineDebugger ←→ MCPRuntimeProbe (注入到游戏场景)
实现机制
通过 EngineDebugger.register_message_capture() 注册消息捕获,实现编辑器与运行时的通信:
func _ready() -> void:
EngineDebugger.register_message_capture(CAPTURE_PREFIX,
Callable(self, "_capture_mcp_message"))
func _capture_mcp_message(message: String, data: Array) -> bool:
match message:
"get_runtime_info":
EngineDebugger.send_message("mcp:runtime_info", [_get_runtime_info()])
"get_scene_tree":
EngineDebugger.send_message("mcp:scene_tree", [...])
# ...更多消息处理
支持的运行时操作
- 获取运行时场景树
- 检查节点属性和方法
- 调用节点方法
- 计算表达式
- 模拟输入事件
- 控制动画播放
- 获取性能快照
六、测试体系
6.1 测试结构
test\
├── unit\ # 单元测试 (GUT 框架)
│ ├── test_mcp_*.gd # 核心模块测试
│ └── tools\ # 工具测试
└── integration\ # 集成测试 (Python)
└── test_*_flow.py # 端到端流程测试
6.2 测试规模
- 单元测试:19 个测试脚本,295 个测试用例,521 个断言
- 测试框架:GUT (Godot Unit Test) 9.6.0
- 运行命令:
& "Godot.exe" --headless --path "..." -s addons/gut/gut_cmdln.gd ` -gdir=res://test/unit/ -ginclude_subdirs -gexit
6.3 测试规范(强制)
- 每次修改代码必须更新对应测试用例
- 必须覆盖:正常路径 + 边界条件 + 错误处理
- 禁止提交无测试更新的 commit
七、安全设计
认证机制
- Token-based 认证(仅 HTTP 模式)
- 时序安全比较防止时序攻击
- Token 长度要求 ≥ 16 字符
速率限制
- 每 IP 每 60 秒最多 100 个请求
路径遍历保护
func is_path_safe(path: String) -> bool:
if not path.begins_with("res://") and not path.begins_with("user://"):
return false
if path.contains(".."):
return false
return true
八、文档体系
| 目录 | 内容 |
|---|---|
docs/current/ |
当前稳定文档(架构、快速开始、工具参考) |
docs/architecture/ |
架构设计文档 |
docs/configuration/ |
配置示例 |
docs/debugging/ |
调试文档和问题排查 |
docs/development/ |
开发规范(PR 审查流程等) |
docs/release-notes/ |
版本发布说明 |
核心文档:
tools-reference.md(127 KB)— 最详细的工具参考手册architecture.md(17.6 KB)— 架构设计文档testing-guide.md(16.4 KB)— 测试指南
九、技术亮点
- 完全原生实现 — 不依赖 Node.js,纯 GDScript
- 线程安全 — 使用
call_deferred()和Mutex - 调试器深度集成 — 通过
EngineDebuggerAPI - 运行时探针 — 独特的游戏运行时 AI 交互能力
- 完善的 i18n — 英文/中文完整支持
- 全面的测试覆盖 — 单元 + 集成测试
十、配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
auto_start |
false | 自动启动服务器 |
transport_mode |
"http" | 传输模式 |
http_port |
9080 | HTTP 监听端口 |
auth_enabled |
false | 启用认证 |
log_level |
2 | 日志级别 (0-3) |
security_level |
1 | 安全级别 (0=宽松, 1=严格) |
rate_limit |
100 | 速率限制(每60秒) |
vibe_coding_mode |
true | 免打扰模式 |
总结
Godot MCP Native 是一个架构清晰、模块化、可扩展性强的 Godot 插件。它通过 MCP 协议将 AI 助手深度集成到游戏开发工作流,154 个工具覆盖了从场景编辑、脚本管理到调试和项目配置的各个方面。特别是运行时探针的设计,为 AI 辅助游戏开发提供了独特的能力,是该项目最大的技术亮点。
登录后可参与表态
推荐
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
领取 2000万 Tokens
通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力