Skip to main content
Glama

Godot 4 Runtime MCP Server

by MingHuiLiu
PROJECT_STRUCTURE.md7.33 kB
# Godot MCP 项目文件结构 ## 完整项目结构 ``` Godot-Mcp/ │ ├── README.md # 项目介绍和快速开始 ├── LICENSE # MIT 许可证 ├── USAGE.md # 详细使用指南 ├── INTEGRATION.md # Godot 项目集成指南 ├── DEVELOPMENT.md # 开发者文档 ├── .gitignore # Git 忽略文件 ├── package.json # 项目元数据 │ ├── start-server.sh # Linux/macOS 启动脚本 ├── start-server.bat # Windows 启动脚本 ├── claude_desktop_config.example.json # Claude Desktop 配置示例 │ ├── McpServer/ # MCP 服务器 (.NET 项目) │ ├── McpServer.csproj # 项目文件 │ ├── Program.cs # 主程序入口 │ │ │ ├── Models/ # 数据模型 │ │ ├── McpModels.cs # MCP 协议模型 │ │ └── GodotModels.cs # Godot 数据模型 │ │ │ ├── Services/ # 服务层 │ │ └── GodotCommunicationService.cs # Godot 通信服务 │ │ │ └── Handlers/ # MCP 工具处理器 │ ├── ToolHandler.cs # 处理器基类 │ ├── SceneHandlers.cs # 场景管理工具 │ └── RuntimeHandlers.cs # 运行时工具 │ ├── GodotPlugin/ # Godot 插件 │ ├── plugin.cfg # 插件配置 │ ├── McpPlugin.cs # 插件入口 │ ├── McpClient.cs # MCP 客户端 │ └── RuntimeBridge.cs # 运行时桥接 │ └── ExampleProject/ # 示例 Godot 项目 └── README.md # 示例项目说明 ``` ## 文件说明 ### 根目录文件 - **README.md**: 项目主文档,包含功能特性、安装步骤和工具列表 - **USAGE.md**: 详细的使用指南和 MCP 工具参考 - **INTEGRATION.md**: 如何将插件集成到现有 Godot 项目 - **DEVELOPMENT.md**: 架构说明、扩展开发和贡献指南 - **LICENSE**: MIT 开源许可证 - **package.json**: 项目元信息和脚本定义 - **.gitignore**: Git 版本控制忽略规则 ### 启动脚本 - **start-server.sh**: Unix 系统(macOS/Linux)启动脚本 - **start-server.bat**: Windows 系统启动脚本 - **claude_desktop_config.example.json**: Claude Desktop 配置模板 ### MCP 服务器 (McpServer/) #### 核心文件 - **Program.cs**: - MCP 协议处理 - stdio 通信 - 请求路由 - 工具注册 #### 模型 (Models/) - **McpModels.cs**: - MCP 协议消息结构 - 工具定义 - 请求/响应模型 - **GodotModels.cs**: - Godot 特定数据结构 - 节点信息 - 性能统计 - 日志条目 #### 服务 (Services/) - **GodotCommunicationService.cs**: - TCP Socket 服务器 - 消息队列管理 - 异步请求处理 - 连接管理 #### 处理器 (Handlers/) - **ToolHandler.cs**: 所有工具的抽象基类 - **SceneHandlers.cs**: 场景相关工具 - GetSceneTreeHandler - GetNodeInfoHandler - SetPropertyHandler - GetPropertyHandler - CreateNodeHandler - DeleteNodeHandler - CallMethodHandler - **RuntimeHandlers.cs**: 运行时工具 - ExecuteCSharpHandler - GetGlobalVariablesHandler - GetPerformanceStatsHandler - GetLogsHandler - LoadSceneHandler - GetResourceInfoHandler - ListResourcesHandler - TakeScreenshotHandler ### Godot 插件 (GodotPlugin/) - **plugin.cfg**: Godot 插件元数据配置 - **McpPlugin.cs**: - EditorPlugin 实现 - 插件生命周期管理 - 运行时 McpClient 创建 - **McpClient.cs**: - TCP 客户端连接 - 消息接收和处理 - 请求路由到 RuntimeBridge - 响应发送 - **RuntimeBridge.cs**: - 核心运行时访问实现 - 场景树操作 - 节点属性读写 - 方法调用 - 资源管理 - 性能监控 ### 示例项目 (ExampleProject/) - **README.md**: 示例项目的使用说明和测试用例 ## 依赖关系 ### MCP 服务器依赖 ```xml <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="System.Net.WebSockets" Version="4.3.0" /> <PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" /> ``` ### Godot 插件依赖 - Godot 4.x with C# (Mono) - .NET 8.0 或更高版本 ## 数据流 ### MCP 请求流程 ``` 1. Claude Desktop ↓ (JSON-RPC via stdio) 2. Program.cs ↓ (Method routing) 3. ToolHandler ↓ (GodotService.SendRequestAsync) 4. GodotCommunicationService ↓ (TCP Socket, JSON) 5. McpClient (Godot) ↓ (Request routing) 6. RuntimeBridge ↓ (Godot API calls) 7. Godot Engine ← (Response back through same path) ``` ### 消息格式 #### MCP 协议 (stdio) ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_scene_tree", "arguments": {} } } ``` #### Godot 协议 (TCP) ```json { "type": "request", "id": "uuid-here", "action": "get_scene_tree", "parameters": {} } ``` ## 构建和部署 ### 开发环境 1. 安装 .NET 8.0 SDK 2. 安装 Godot 4.x (C# 版本) 3. 克隆仓库 4. 构建 MCP 服务器: ```bash cd McpServer dotnet build ``` ### 生产部署 1. 发布 MCP 服务器: ```bash dotnet publish -c Release -o publish ``` 2. 复制插件到 Godot 项目 3. 配置 Claude Desktop 4. 启动服务器和游戏 ## 版本兼容性 | 组件 | 版本要求 | |------|----------| | .NET SDK | 8.0+ | | Godot | 4.0+ (C#) | | Claude Desktop | 最新版本 | | macOS | 10.15+ | | Windows | 10+ | | Linux | 现代发行版 | ## 网络端口 - **7777**: Godot ↔ MCP Server 通信 - 协议: TCP - 仅 localhost - 自定义 JSON 消息格式 ## 性能指标 ### 典型操作延迟 - 获取节点信息: ~10-50ms - 设置属性: ~10-50ms - 获取场景树: ~50-200ms (取决于场景大小) - 方法调用: ~10-50ms ### 资源使用 - MCP 服务器内存: ~50-100MB - Godot 插件开销: ~5-10MB - CPU 使用: 最小 (<1%) ## 支持的 Godot 节点类型 插件支持所有 Godot 内置节点类型,包括: - Node, Node2D, Node3D - Control 及其子类 - CanvasItem 及其子类 - CharacterBody2D/3D - Area2D/3D - 自定义 C# 节点 ## 限制和注意事项 1. **单客户端**: 目前只支持一个 Godot 实例连接 2. **仅运行时**: 无法在编辑器模式下访问 3. **C# 限制**: 仅支持 C# 脚本,不支持 GDScript 4. **性能**: 频繁调用会有网络开销 5. **安全性**: 应仅在开发环境使用 ## 扩展点 可以扩展的地方: 1. **新工具**: 添加自定义 MCP 工具 2. **新操作**: 在 RuntimeBridge 中添加新功能 3. **协议增强**: 支持更复杂的数据类型 4. **UI 工具**: 创建 Web 界面或 Godot 编辑器插件 5. **多实例**: 支持连接多个 Godot 游戏 ## 相关资源 - [MCP 规范](https://spec.modelcontextprotocol.io/) - [Godot 文档](https://docs.godotengine.org/) - [.NET 文档](https://docs.microsoft.com/dotnet/) - [Claude Desktop](https://claude.ai/desktop)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MingHuiLiu/godot4-runtime-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server