MCP server for Godot 4 C# runtime debugging and development. Provides comprehensive tools for scene tree manipulation, property/method invocation, signal monitoring, logging, resource management, and script execution.
This C# MCP server for Godot 4 has 45 tools with adequate naming and documented parameters, but suffers from critical gaps in descriptions, schema completeness, and error handling. Descriptions are present but frequently generic or in Chinese without English translations, making them unsuitable for English-speaking LLM contexts. Parameters lack formal constraints (enums, ranges, patterns), and output schemas are completely undocumented. Tool clustering (multiple log tools, signal tools) suggests possible refactoring. No evidence of error recovery guidance, permission checks, or audit logging. The server targets a game engine (Godot) with a custom C# transport layer, not standard HTTP, this limits protocol maturity assessment.
添加自定义日志条目 (用于标记调试点)
调用节点方法
清空日志缓冲区
清空信号事件记录
连接信号到方法
创建新节点
删除节点
断开信号连接
发射自定义信号 (用于测试)
执行 C# 代码片段
Descriptions in Chinese without English translations; LLMs are trained primarily on English and will struggle to understand tool purpose, selection, and constraints.
No output schemas documented; LLMs cannot plan downstream calls or extract required fields. Tool returns are shown as plain Task<string>, hiding structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 44 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
导出所有日志到文件
按组名查找节点
按名称搜索节点 (支持模糊匹配)
查找指定类型的所有节点
获取全局变量
获取日志统计信息
获取游戏日志输出
获取过滤后的日志
获取节点的祖先路径 (向上追溯多层)
获取节点的直接子节点列表 (不递归,轻量级)
获取节点的上下文信息 (父节点、兄弟节点、子节点)
获取指定节点的详细信息
获取节点的父节点路径
获取节点的所有信号
获取节点的子树 (指定深度,避免完整树太大)
获取性能统计信息
获取节点属性值
获取资源信息
获取当前场景树结构
获取场景树简化结构 (仅名称和类型,用于快速浏览)
获取场景树统计信息 (节点数量、类型分布等)
获取信号的连接信息
获取已记录的信号事件 (支持时间范围查询)
获取当前时间
列出节点所有方法
列出节点所有属性
列出指定目录下的资源
加载资源
加载场景
检查节点是否存在
智能搜索节点 (组合多个条件)
设置节点属性值
监听信号事件 (设置过滤器)
停止监听信号事件 (查看统计)
截取游戏画面
Parameters lack type constraints (no enums, ranges, or regex patterns). Free-form strings invite hallucinated values. Example: 'level' parameter in GetLogsFiltered accepts 'error'|'warning'|'info'|'debug' but no enum is declared.
No error handling guidance or recovery patterns. Tools have no documented error cases, failure modes, or actionable recovery steps. ExecuteCSharp and CallMethod are particularly risky without rollback or error context.
No permission checks or destructive operation safeguards. Tools like DeleteNode, ClearLogs, ClearSignalEvents, and ExecuteCSharp are irreversible but lack confirmation or dry-run modes.
Excessive tool overlap without clear differentiation. Multiple log tools (GetLogs, GetLogsFiltered, GetLogStats, ExportLogs), signal tools (GetNodeSignals, GetSignalConnections, EmitSignal, StartSignalMonitoring, GetSignalEvents), and scene tools (GetSceneTree, GetSceneTreeSimple, GetNodeInfo, GetNodeContext) suggest domain fragmentation.
Very short descriptions on many tools. GetTime ('获取当前时间' = 'Get current time') is 4 words; GetLogStats is 4 words; GetGlobalVariables is 4 words. These are too terse to guide LLM selection and assume prior knowledge of Godot APIs.
Parameters accept complex or unconstrained types. 'args' in CallMethod is List<object>; 'value' in SetProperty is object; 'nodeType' in CreateNode is a free string (no enum of valid Godot types). These inviting hallucinations and require LLM to guess valid values.
No pagination or result limits documented for list tools. ListResources, FindNodesByType, FindNodesByName, SearchNodes, GetSceneTree could return unbounded results, blowing context windows.
No audit logging, permission scopes, or security model. Tools expose full Godot runtime access (ExecuteCSharp can run arbitrary code) without any per-request authentication, authorization, or audit trail.