Skip to main content
Glama

Wick

为 Godot Engine 提供基于 Roslyn 增强的 C# 异常遥测,并通过 MCP 公开。

CI License: MIT


什么是 Wick?

当 Godot C# 游戏崩溃时,您的 AI 助手通常只能看到原始堆栈跟踪,并花费 8 次以上的对话轮次要求您打开文件。Wick 会捕获该异常,并使用 Roslyn 驱动的源代码上下文(实际方法体、调用链、最近的日志、场景状态)对其进行增强,然后在一次调用中将完整信息交给 AI。只需一轮对话即可完成诊断,而不是十轮。

Wick 有何不同?

其他 Godot MCP 服务器(如优秀的 GoPeak)专注于场景操作和 GDScript 工具。Wick 则专注于 C#/.NET 开发人员体验:

  • 基于 Roslyn 增强的异常遥测 -- 通过 stderr 捕获 C# 异常,并使用调用方法体、周围源代码行、封闭类型和调用链进行增强。没有其他 Godot MCP 服务器具备此功能。

  • 进程内异常捕获 -- 可选的 Wick.Runtime NuGet 组件可捕获 TaskScheduler.UnobservedTaskException 和 stderr 无法看到的异步异常。

  • 带源代码上下文的构建诊断 -- dotnet 构建错误通过与运行时异常相同的管道,利用 Roslyn 源代码上下文进行增强。

  • C# 分析工具 -- 通过 Roslyn 工作区查找符号、查找引用、获取成员签名。

  • 5 大支柱工具组系统 -- 仅激活您需要的部分:core(核心)、runtime(运行时)、csharp、build(构建)、scene(场景)。

入门指南

先决条件

安装

git clone https://github.com/buildepicshit/Wick.git
cd Wick
dotnet build Wick.slnx --configuration Release

MCP 配置

将 Wick 添加到您的 AI 编码助手的 MCP 配置中:

{
  "mcpServers": {
    "wick": {
      "command": "dotnet",
      "args": ["run", "--project", "path/to/Wick/src/Wick.Server"],
      "env": {
        "WICK_GROUPS": "core,runtime,csharp,build",
        "WICK_GODOT_BIN": "/path/to/godot",
        "WICK_PROJECT_PATH": "/path/to/your/godot-project"
      }
    }
  }
}

工具组

通过 WICK_GROUPS 环境变量或 --groups CLI 标志激活工具支柱:

支柱

包含内容

默认

core

GDScript 工具、场景解析、GDScript LSP、内省

始终开启

runtime

异常管道、游戏启动/停止、日志追踪、runtime_diagnose

可选

csharp

Roslyn 分析、查找符号、查找引用、成员签名

可选

build

dotnet build/test/clean、NuGet 管理、build_diagnose

可选

scene

通过无头 Godot 分发创建/修改场景

可选

示例:WICK_GROUPS=core,runtime,csharp,build 或 --groups=all。

可选:Wick.Runtime 组件

如需进行进程内异常捕获(异步异常、TaskScheduler 故障),请将 Wick.Runtime NuGet 添加到您的 Godot 项目中:

// In your Godot project's autoload or entry point:
WickRuntime.Install();

这可以捕获 stderr 无法看到的异常,并通过 TCP 网桥将其报告给 Wick 服务器。

架构

Wick 作为外部进程运行 -- 它不会在 Godot 内部运行。通信方式:

  • stdio -- 与 AI 客户端的 MCP 协议

  • TCP 6505 -- 编辑器网桥(Godot 插件到 Wick 服务器)

  • TCP 7777 -- 运行时网桥(运行中的游戏到 Wick 服务器)

  • TCP 7878 -- Wick.Runtime 组件网桥(进程内到 Wick 服务器)

这种架构使得 Wick 可以针对 .NET 10,即使 Godot 4.6.1 的运行时仍停留在 .NET 8。

归属说明

Wick 是受 GoPeak(MIT 许可证,(c) 2025 Solomon Elias / HaD0Yun)启发而进行的净室重新实现。详细致谢请参阅 ATTRIBUTION.md

贡献

我们欢迎贡献!在提交 PR 之前,请阅读 CONTRIBUTING.md

演示

克隆仓库并在浏览器中打开 docs/demo/player.html 观看演示,或直接播放 cast 文件:

asciinema play docs/demo/wick-demo.cast

许可证

MIT

Latest Blog Posts

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/buildepicshit/Wick'

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