适用于Godot 4+C#项目的完整的MCP(模型上下文协议)服务器,允许AI助手通过MCP协议获取和修改游戏运行时信息,包括场景树查询、信号系统调试、增强的日志分析等功能。
新手? 查看5分钟快速入门指南
文档导航:
Godot-Mcp/
├── McpServer/ # MCP 服务器 (.NET 9.0)
│ ├── Tools/ # 48 个 MCP 工具
│ │ ├── SceneTools.cs # 场景树工具 (13 个)
│ │ ├── PropertyTools.cs # 属性工具 (4 个)
│ │ ├── ResourceTools.cs # 资源工具 (5 个)
│ │ ├── DebugTools.cs # 调试工具 (12 个)
│ │ └── SignalTools.cs # 信号工具 (9 个) ✨
│ ├── Services/
│ │ ├── GodotClient.cs # 强类型 HTTP 客户端
│ │ └── IGodotApi.cs # Refit API 接口
│ └── Models/
│ └── GodotApiModels.cs # 所有请求/响应类型
├── GodotPlugin/ # Godot HTTP 服务器
│ └── McpClient.cs # 48 个 HTTP 端点实现 ✨
├── test-godot-api.http # HTTP 测试文件
├── test-new-features.http # 新功能测试 ✨
└── 文档/ # 7 个 Markdown 文档
cd McpServer
dotnet build
在VSCode设置中配置MCP服务器:
{
"github.copilot.chat.mcp.enabled": true,
"github.copilot.chat.mcp.servers": {
"godot": {
"command": "dotnet",
"args": ["run", "--project", "/path/to/Godot-Mcp/McpServer"]
}
}
}
GodotPlugin/McpClient.cs 翻译成英文并复制到你的Godot项目中McpClientres://McpClient.cs启动游戏后,HTTP服务器会自动启动 http://127.0.0.1:7777/,AI助手可以通过MCP协议与游戏互动。
get_scene_tree -获取完整的场景树(包括属性、方法和信号)get_scene_tree_simple - ✨ 获取简化的场景树(仅结构和类型)get_node_info -获取详细的节点信息get_node_children -获取直接子节点列表get_node_parent -检索父节点信息find_nodes_by_type -按类型查找节点find_nodes_by_name -按名称模糊搜索find_nodes_by_group -按组查找节点search_nodes -组合条件搜索(名称+类型+组)get_node_ancestors -获取多层父链get_node_context -检索节点上下文(父节点、兄弟节点、子节点)get_node_subtree -获取子树node_exists -检查节点是否存在get_scene_tree_stats -获取场景树统计get_node_signals -获取节点的所有信号get_signal_connections -检查信号连接状态connect_signal -将信号连接到方法disconnect_signal -断开信号连接emit_signal -传输信号(用于测试目的)start_signal_monitoring -开始监控信号事件stop_signal_monitoring -停止监控get_signal_events -获取信号事件历史clear_signal_events -清除信号事件get_logs -检索最近的日志get_logs_filtered -过滤查询日志(级别、关键词、时间)get_log_stats -获取日志统计export_logs -导出日志到文件clear_logs -清除日志add_custom_log -添加自定义日志标签get_property -获取节点属性值set_property -设置节点属性值list_properties -列出节点的所有属性list_methods -列出节点的所有方法call_method -调用节点方法execute_csharp -执行C#代码片段list_resources -列出资源目录load_resource -加载资源get_resource_info -获取资源的详细信息get_global_variables -获取全局变量create_node -创建新节点delete_node -删除节点load_scene -加载场景get_performance_stats -获取性能统计take_screenshot -截图get_time -获取游戏时间AI: 检查玩家血量信号是否连接
→ get_node_signals (查看 Player 信号)
→ get_signal_connections (检查 health_changed 连接)
→ start_signal_monitoring (开始监听)
→ [玩家受伤]
→ get_signal_events (查看事件)
→ 分析: 信号触发了,但 UI 更新方法有 bug
AI: 游戏卡顿排查
→ get_scene_tree_simple (快速浏览场景结构)
→ add_custom_log ("性能测试开始")
→ get_performance_stats (记录基线)
→ [运行游戏 5 分钟]
→ get_logs_filtered (level=error, 查找错误)
→ export_logs (导出完整报告)
→ 分析: 发现内存泄漏
AI: 找到敌人节点修改血量
→ search_nodes (namePattern="enemy", caseSensitive=false)
→ 找到 /root/Main/Enemies/Enemy1
→ get_node_context (查看上下文)
→ set_property (修改 health 属性)
→ add_custom_log ("修改敌人血量")
VSCode Copilot
↓ stdio (MCP Protocol)
MCP Server (.NET 9.0)
├── 48 个 MCP 工具 (SceneTools, SignalTools, DebugTools...)
├── GodotClient (Refit 强类型 HTTP 客户端)
└── IGodotApi (48 个 HTTP 端点定义)
↓ HTTP POST
Godot HTTP Server (127.0.0.1:7777)
├── 请求队列 (线程安全)
├── 主线程处理 (_Process)
├── 环形日志缓冲区 (1000 条)
├── 信号事件监听器
└── 场景树 API (Godot Runtime)
MIT许可证
✅ V5.0 生产就绪 -一个完整的调试系统,包括简化的查询、信号监控和增强的日志
完成度: 100% -所有功能均已实现并成功编译
查看项目完成总结了解详细的实施清单。