用途
Wick 是一款面向 Godot Engine 的 C# 异常遥测工具,通过 MCP(Model Context Protocol)向 AI 编程助手暴露调试信息。其目标是解决 Godot C# 游戏崩溃时,AI 只能看到原始堆栈跟踪、需要反复请求开发者打开文件的问题。Wick 捕获异常后,用 Roslyn 补充源码上下文,将完整画面一次性交给 AI,实现一轮诊断而非十轮。
主要能力
- Roslyn 增强的异常遥测:从 stderr 捕获 C# 异常,并补充调用方法体、周边源码行、所属类型和调用链。
- 进程内异常捕获(可选):通过 Wick.Runtime NuGet 配套组件捕获 TaskScheduler.UnobservedTaskException 以及 stderr 无法看到的异步异常。
- 带源码上下文的构建诊断:dotnet build 错误经由与运行时异常相同的管道,用 Roslyn 源码上下文进行增强。
- C# 分析工具:通过 Roslyn 工作区提供查找符号、查找引用、成员签名等功能。
- 五支柱工具组系统:按需激活,分组为 core、runtime、csharp、build、scene。
使用方式
前置要求:.NET 10 SDK(10.0.201 或更高版本)、支持 .NET/Mono 的 Godot 4.6.1+。
Wick 由两部分组成:
- Godot 侧桥接插件(/addons/wick/)——推荐通过编辑器内的 Godot Asset Library 安装,也可手动将 /addons/wick/ 复制到项目中。
- .NET MCP 服务器——克隆并构建。
将 Wick 添加到 AI 编程助手的 MCP 配置中。通过 WICK_GROUPS 环境变量或 --groups CLI 参数激活工具支柱,例如 WICK_GROUPS=core,runtime,csharp,build 或 --groups=all。
可选的 Wick.Runtime 配套组件用于进程内异常捕获和实时场景树查询,需将 Install() 和 Tick() 都接入游戏入口点。文档说明:若进程内桥接工具(如 runtime_query_scene_tree)一直挂起,是因为忘记调用 Tick();仅 Install() 可覆盖异常捕获,但实时 RPC 处理器需要 Tick() 来排空主线程调度器。
架构与通信
Wick 作为外部进程运行,不运行在 Godot 内部。通信方式:
- stdio:与 AI 客户端之间的 MCP 协议
- TCP 6505:编辑器桥接(Godot 插件到 Wick 服务器)
- TCP 7777:运行时桥接(运行中的游戏到 Wick 服务器)
- TCP 7878:Wick.Runtime 配套桥接(进程内到 Wick 服务器)
该架构允许 Wick 服务器和提供方项目面向 .NET 10,而可选的进程内 Wick.Runtime 配套组件保持 net8.0,以匹配 Godot 4.6.1 当前稳定的 .NET 运行时。
适用场景
- 使用 Godot Engine 与 C#/.NET 开发游戏的团队或个人。
- 希望让 AI 编程助手更高效地诊断 C# 运行时异常和构建错误。
- 需要 C# 符号导航和引用分析能力的 Godot 项目。
限制与说明
- Wick 是受 GoPeak(MIT License)启发的净室重实现,详细致谢见 ATTRIBUTION.md。
- 与偏向场景操作和 GDScript 工具的其他 Godot MCP 服务器不同,Wick 专注 C#/.NET 开发者体验。
- 需遵守行为准则与安全政策,提交 PR 前请阅读 CONTRIBUTING.md。
- 除上述明确说明外,其他收费、价格、平台或效果信息暂未提供。