# Netwright

MCP-сервер, с которым ИИ-агент запускает десктопное .NET-приложение, читает его интерфейс текстом и прогоняет сценарий, не забирая у вас мышь.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 20
- Автор: ricfanin
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/ricfanin/netwright
- Обновлён: 2026-10-09
- HTML: https://affpapa.org/nevibecode/mcp/netwright

## Что делает

Netwright работает с WPF и WinForms, включая .NET Framework 4.x, а также с WinUI 3 и .NET MAUI на Windows через UI Automation. Агент стартует приложение прямо из `.csproj`, получает stdout, stderr и вывод `Trace`, а при падении — исключение со стеком. Снимок интерфейса отдаётся сжатым текстом: пустые панели разметки сворачиваются, таблицы пересказываются построчно.

Действия идут в фоне. В приложении, которое запустил Netwright, они выполняются внутри самого приложения, поэтому окно не выходит на передний план и не мешает работе. Нажатия клавиш и правый клик — отдельные команды, они ненадолго забирают фокус и возвращают его. Каждое действие сначала ждёт, пока цель станет доступной и видимой, потом ждёт затишья интерфейса: асинхронные экраны не требуют пауз в сценарии. Ошибки приходят кодом с подсказкой, что делать дальше.

Нужны Windows 10 или 11 и .NET 10 SDK. Сами приложения могут быть собраны на любой версии .NET. Проверки состояния делает `desktop_expect`, а `desktop_export_test` превращает сессию в C#-тест на Netwright.Testing для xUnit, NUnit или MSTest. Медленнее по времени на вызов, чем координатные инструменты: форма заполняется примерно за 1.8 с против 0.6 с, зато ответ уже содержит результат.

## Требования
- Переменные окружения: `NETWRIGHT_ALLOW` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

## Когда брать
- запустить WPF-приложение из `.csproj` и увидеть вывод консоли
- прочитать интерфейс окна компактным текстом вместо скриншота
- заполнить форму и отправить её, не отбирая мышь у разработчика
- дождаться загрузки асинхронного экрана без `sleep` в сценарии
- превратить прогнанный сценарий в C#-регрессионный тест

## Примеры запросов агенту
- Запусти `src/Orders/Orders.csproj`, открой экран заказа и покажи снимок интерфейса
- Отметь чекбокс `#chkTerms` и нажми `#btnSave`, потом проверь, что появилось модальное окно подтверждения
- Экспортируй эту сессию в регрессионный тест на xUnit

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
