winapp-mcp-winui

Automate WinUI desktop UI interactions using WinApp MCP workflows.

Updated Jan 15, 2026
One-click install
npx skills add https://github.com/ethanhanderson/church-presenter --skill winapp-mcp-winui
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: winapp-mcp-winui
Source: https://github.com/ethanhanderson/church-presenter/tree/main/.cursor/skills/winapp-mcp-winui
Command: npx skills add https://github.com/ethanhanderson/church-presenter --skill winapp-mcp-winui

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates flaky, slow, and unreliable Windows UI automation by guiding stable WinUI and desktop interactions through consistent WinApp MCP workflows, including virtualization, dialogs, and async UI updates.

Core Features & Use Cases

  • Session lifecycle management: Launch, attach, snapshot, and close Windows apps while tracking the correct appId.
  • Stable element targeting: Prefer automationId over localized name, use snapshots strategically, and invalidate caches after out-of-band UI changes.
  • Robust interaction & verification: Use the right patterns and waits (wait_for_input_idle, wait_for_element, wait_for_condition, invoke_element) plus assertions via read_element/get_all_values.
  • E2E regression support: Capture and compare visual evidence with screenshots and diffs, and detect tree changes via hashes.
  • Edge-case handling for real WinUI apps: Scroll/realize virtualized items, find items in large lists, operate on separate windows (dialogs/file pickers), and debug async structure/property changes with event monitoring.

Quick Start

Use the winapp-mcp-winui skill to launch or attach to the ChurchPresenter Windows app, wait for the target screen, interact using AutomationId-based selectors, and then verify results with read_element and visual screenshots.

Frequently Asked Questions about winapp-mcp-winui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix flaky WinUI desktop UI automation tests?

WinUI desktop UI automation tests become flaky due to unstable selectors and async loading. You can eliminate this brittleness by using AutomationId-based element targeting, event-aware waits, and session lifecycle management to interact with controls reliably.

How do I automate interactions with virtualized items in WinUI?

Automating virtualized items in WinUI requires scrolling or realizing items in large lists before interaction. By invalidating element caches after out-of-band UI changes and using strategic snapshots, you can reliably discover and interact with virtualized elements.

What is the best way to handle content dialogs and file pickers in Windows desktop testing?

Handling content dialogs and file pickers during Windows desktop testing requires operating on separate windows. You can manage this by attaching to the correct session, waiting for the dialog element, and applying pattern-correct actions to interact with the separate window.

How do I capture visual regression evidence in Windows UI automation?

Visual regression evidence in Windows UI automation is captured using screenshots and diffs. By detecting tree structure changes via hashes and comparing visual evidence across runs, you can verify end-to-end UI consistency and harden against regressions.

Why does my Windows UI automation fail to find elements after async updates?

Windows UI automation fails to find elements after async updates because element caches become stale. You must invalidate caches after out-of-band UI changes and debug async structure changes using event monitoring with wait_for_condition to ensure stable element discovery.