Skip to main content
Glama

Wick

Телеметрия C#-исключений с поддержкой Roslyn для движка Godot, предоставляемая через MCP.

CI License: MIT


Что такое Wick?

Когда игра на C# в Godot аварийно завершается, ваш ИИ-ассистент видит «сырой» стек вызовов и тратит более 8 итераций, прося вас открыть файлы. Wick перехватывает это исключение, обогащает его контекстом исходного кода с помощью Roslyn (тело метода, цепочка вызовов, последние логи, состояние сцены) и передает полную картину ИИ за один вызов. Один запрос для диагностики вместо десяти.

Чем Wick отличается от других?

Другие MCP-серверы для Godot (например, отличный GoPeak) фокусируются на манипуляции сценами и инструментах GDScript. Wick фокусируется на опыте разработчика C#/.NET:

  • Телеметрия исключений с поддержкой Roslyn — C#-исключения, перехваченные из stderr, обогащаются телом вызывающего метода, окружающими строками кода, содержащим типом и цепочкой вызовов. Ни один другой MCP-сервер для Godot этого не делает.

  • Внутрипроцессный перехват исключений — дополнительный NuGet-пакет Wick.Runtime перехватывает TaskScheduler.UnobservedTaskException и асинхронные исключения, которые не видны в stderr.

  • Диагностика сборки с контекстом исходного кода — ошибки dotnet build обогащаются контекстом исходного кода 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 в конфигурацию 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 или флаг CLI --groups:

Компонент

Что включает

По умолчанию

core

Инструменты GDScript, парсинг сцен, GDScript LSP, интроспекция

Всегда включено

runtime

Конвейер исключений, запуск/остановка игры, чтение логов, runtime_diagnose

По выбору

csharp

Анализ Roslyn, поиск символов, поиск ссылок, сигнатуры членов

По выбору

build

dotnet build/test/clean, управление NuGet, build_diagnose

По выбору

scene

Создание/изменение сцен через headless-режим Godot

По выбору

Пример: WICK_GROUPS=core,runtime,csharp,build или --groups=all.

Опционально: компаньон Wick.Runtime

Для внутрипроцессного перехвата исключений (асинхронные исключения, ошибки TaskScheduler) добавьте NuGet-пакет Wick.Runtime в ваш проект Godot:

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

Это позволяет перехватывать исключения, невидимые для stderr, и сообщать о них серверу Wick через TCP-мост.

Архитектура

Wick работает как внешний процесс — он НЕ запускается внутри Godot. Связь:

  • stdio — протокол 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.

Участие в разработке

Мы приветствуем вклад в проект! Пожалуйста, прочитайте CONTRIBUTING.md перед отправкой PR.

Демо

Клонируйте репозиторий и откройте docs/demo/player.html в браузере, чтобы посмотреть демо, или воспроизведите файл записи напрямую:

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