MCP.Market

WinCtl MCP server

by sitharaj88·io.github.sitharaj88/winctl·v1.0.2

Windows desktop control for AI agents: screen, UI Automation, input, processes, files, shell.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

0 stars18 downloads/wk

Reviews

Write one

Nobody has reviewed WinCtl yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

WinCtl tools (39, 4 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • clipboard_read

    Read the current text contents of the Windows clipboard. Returns empty if the clipboard holds an image or other non-text data.

  • clipboard_writewrite action

    Replace the Windows clipboard contents with text. Handy for moving a large block of text into an application

  • file_known_folders

    Return the absolute paths of the standard Windows folders (Desktop, Documents, Downloads, Temp and so on)

  • file_list

    List the contents of a directory with sizes and modification times. Optionally match a glob-style pattern.

  • file_manage

    Copy, move, rename or delete a file or directory, or create a directory.

  • file_read

    Read a text file and return its contents. Binary files are refused rather than returned as noise.

  • file_search

    Search a directory tree for files whose name matches a pattern, and optionally whose contents contain a string.

  • file_writewrite action

    Write text to a file, creating it if needed. Use mode "append" to add to the end instead of replacing.

  • input_click

    Click a mouse button, optionally moving to a position first. Set clicks to 2 for a double-click.

  • input_drag

    Press a mouse button at one point, move to another, and release — for dragging files, selecting text or moving items.

  • input_key_hold

    Hold a key down or release it, for interactions that need a key held across several other actions —

  • input_move_mouse

    Move the mouse cursor to an absolute position. …

  • input_press_keys

    Press a key or a chord such as "enter", "ctrl+s", "alt+tab" or "ctrl+shift+escape".

  • input_scroll

    Scroll the wheel over whatever is under the cursor. Positive amounts scroll up (or right for horizontal),

  • input_type

    Type literal text into the focused window. Sent as Unicode, so it is independent of the keyboard layout and

  • process_killwrite action

    Forcibly terminate a process by id. The application gets no chance to save, so prefer window_close for

  • process_list

    List running processes with their CPU and memory usage. Sorted by memory by default.

  • process_start

    Launch an application or open a document. Accepts an executable name on PATH (for example "notepad"),

  • screen_capture

    Take a screenshot of a monitor, or of the whole virtual desktop, and return it as an image you can read.

  • screen_capture_region

    Capture a rectangular region of a monitor. Coordinates are relative to that monitor top-left corner, in physical pixels.

  • screen_capture_window

    Capture a single application window by title, even if other windows overlap it.

  • screen_list_monitors

    List all connected displays with their position in virtual-desktop coordinates, resolution, DPI scale factor and which is primary.

  • shell_runwrite action

    Run a PowerShell or cmd command and return its output. This is unrestricted access to the user account:

  • system_control_service

    Start, stop or restart a Windows service. Most services require the connector to be running as Administrator;

  • system_info

    Report the machine: Windows version, hardware, CPU and memory usage, disk space, battery and network.

  • system_list_installed_apps

    List applications installed on this machine, from the Windows uninstall registry.

  • system_list_services

    List Windows services with their current state and startup type. Filter by name to avoid returning hundreds of rows.

  • system_notify

    Show a Windows toast notification. Useful for telling the user something finished when they are not watching the chat.

  • uia_find

    Search an application for UI elements matching a label, AutomationId and/or control type, and return their

  • uia_invoke

    Activate a control through the accessibility layer: click a button, toggle a checkbox, expand a tree node,

  • uia_set_value

    Set the text of an editable control directly, without typing it character by character.

  • uia_snapshot

    Read the accessibility tree of an application: every button, text field, list item and label, with its label,

  • window_close

    Ask a window to close, exactly as clicking its X button would. The application may prompt to save unsaved work,

  • window_focus

    Bring a window to the front and give it keyboard focus, restoring it first if minimized.

  • window_get_active

    Return the window that currently has keyboard focus. Use this to confirm which application will receive typed input.

  • window_get_desktop_info

    Return the bounding box of the whole virtual desktop and the current mouse cursor position, in physical pixels.

  • window_list

    List the visible top-level application windows, each with a stable id you can pass to the other window tools.

  • window_move

    Move and/or resize a window. Any omitted dimension keeps its current value.

  • window_set_state

    Minimize, maximize, restore, hide or show a window. Hiding removes it from the taskbar without closing it —

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

no findings
  • Code scan53 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 53 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How WinCtl compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
88/100
higher than 75% of 48,255 servers
Tools
39
the typical server has 7
Tools that change things
10%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
18
more than 5% of 12,191 servers with a package

What its tools let an agent do: 35 read · 3 change · 1 run or deploy

Install WinCtl in Claude Code, Cursor or VS Code

Runs npx -y @sitharaj88/winctl on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add winctl -- npx -y @sitharaj88/winctl
Add to Cursor

What the publisher says

From the WinCtl repository's README, as published. We do not edit it. Read it on GitHub

WinCtl

Full Windows desktop access for Claude and other MCP clients See the screen, read and drive real application UIs, manage windows and processes, work with files, and run shell commands — all behind a tiered permission model with audit logging.

Why this connector

Most desktop automation servers hand the model a screenshot and a click(x, y) tool, which breaks the moment a window moves. This one is built around the things that actually make Windows automation reliable:

tree, so Claude can act on "the Save button" rather than on coordinates that go stale. uiainvoke and uiaset_value drive controls directly.

  • UI Automation first. uia_snapshot reads an application's accessibility

awareness before touching any UI API, and reports the DWM frame bounds rather than the raw window rect (which includes an invisible ~7px resize border). Without this, every coordinate on a scaled display is silently wrong — on a 200% display, GetWindowRect reports 1351px where the true edge is 2641px.

  • Correct coordinates, always. The process declares per-monitor DPI

Unicode key events makes applications drop and repeat characters. Text over 200 characters is pasted via the clipboard instead, and your clipboard is restored afterwards.

  • Input that actually arrives. Synthetic typing is paced, because batching

Windows recycles window handles, and a stale one silently retargeting to a different app is exactly how automation closes the wrong window.

  • Handles that cannot betray you. Window ids are opaque and fingerprinted;

and says so when Windows refuses. Errors explain what to do next rather than surfacing an HRESULT.

  • Honest failures. window_focus verifies the foreground actually changed

Requirements

  • Windows 10 (1809+) or Windows 11
  • Node.js 20 or newer
  • No compiler or build tools — every native dependency ships prebuilt binaries

Install

Claude Desktop (recommended)

Download winctl.mcpb from the latest release and double-click it. Claude Desktop installs it and exposes the permission profile, allowed folders and confirmation settings in its UI.

Claude Code

Install globally first, then register the command:

npm install -g @sitharaj88/winctl
claude mcp add winctl -- winctl

Add --scope user to the second command to make it available in every project rather than just the current one.

Don't use npx -y @sitharaj88/winctl here. It works, but WinCtl depends on

prebuilt native binaries (sharp, koffi), and npx re-resolves them on every

launch — around 18 seconds versus 3 for a global install. MCP clients give up

long before that and report Connection closed.

Any MCP client (manual)

{
  "mcpServers": {
    "winctl": {
      "command": "winctl",
      "env": {
        "WINCTL_PROFILE": "standard"
      }
    }
  }
}

If winctl isn't on your PATH, point at the entry point directly — on Windows a global npm install lands in %APPDATA%\npm\node_modules:

{
  "mcpServers": {
    "winctl": {
      "command": "node",
      "args": ["C:\\Users\\<you>\\AppData\\Roaming\\npm\\node_modules\\@sitharaj88\\winctl\\dist\\index.js"]
    }
  }
}

Claude Desktop's config lives at %APPDATA%\Claude\claudedesktopconfig.json.

Permission tiers

Every tool belongs to exactly one tier. Tools in a disabled tier are never registered, so the model cannot see them, attempt them, or spend context reading their descriptions.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

WinCtl: common questions

Is WinCtl MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the WinCtl safety report
How do I install WinCtl?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does WinCtl need an API key?
No secret keys are declared. It reads 7 settings from the environment.
Is WinCtl maintained?
The last commit was 94 days ago (2026-08-02). The latest release is v1.0.2.
What can I use instead of WinCtl?
Servers from other publishers that do the same job: Mobilerun MCP server, Desktop Commander MCP server and Computer MCP server.
How does WinCtl compare with other MCP servers?
safety score 88/100 (higher than 75% of 48,255 servers); tools 39 (the typical server has 7); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to WinCtl

Same job from other publishers: the closest match first, then the best rated.

  • Mobilerun
    Let AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.
    A
  • Desktop Commander
    MCP server for terminal commands, file operations, and process management
    C
  • Computer
    A private persistent computer: files that survive between runs, a bash shell and JavaScript.
    A
  • Token Optimizer
    Context-window optimization: caching, compression & smart file tools that cut tokens 60-90%.
    C