WinCtl MCP server
io.github.sitharaj88/winctl·v1.0.2Windows desktop control for AI agents: screen, UI Automation, input, processes, files, shell.
0 stars18 downloads/wk
Reviews
Write oneNobody 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 postsRead from the package source without running it. The installed server may list more.
clipboard_readRead the current text contents of the Windows clipboard. Returns empty if the clipboard holds an image or other non-text data.
clipboard_writewrite actionReplace the Windows clipboard contents with text. Handy for moving a large block of text into an application
file_known_foldersReturn the absolute paths of the standard Windows folders (Desktop, Documents, Downloads, Temp and so on)
file_listList the contents of a directory with sizes and modification times. Optionally match a glob-style pattern.
file_manageCopy, move, rename or delete a file or directory, or create a directory.
file_readRead a text file and return its contents. Binary files are refused rather than returned as noise.
file_searchSearch a directory tree for files whose name matches a pattern, and optionally whose contents contain a string.
file_writewrite actionWrite text to a file, creating it if needed. Use mode "append" to add to the end instead of replacing.
input_clickClick a mouse button, optionally moving to a position first. Set clicks to 2 for a double-click.
input_dragPress a mouse button at one point, move to another, and release — for dragging files, selecting text or moving items.
input_key_holdHold a key down or release it, for interactions that need a key held across several other actions —
input_move_mouseMove the mouse cursor to an absolute position. …
input_press_keysPress a key or a chord such as "enter", "ctrl+s", "alt+tab" or "ctrl+shift+escape".
input_scrollScroll the wheel over whatever is under the cursor. Positive amounts scroll up (or right for horizontal),
input_typeType literal text into the focused window. Sent as Unicode, so it is independent of the keyboard layout and
process_killwrite actionForcibly terminate a process by id. The application gets no chance to save, so prefer window_close for
process_listList running processes with their CPU and memory usage. Sorted by memory by default.
process_startLaunch an application or open a document. Accepts an executable name on PATH (for example "notepad"),
screen_captureTake a screenshot of a monitor, or of the whole virtual desktop, and return it as an image you can read.
screen_capture_regionCapture a rectangular region of a monitor. Coordinates are relative to that monitor top-left corner, in physical pixels.
screen_capture_windowCapture a single application window by title, even if other windows overlap it.
screen_list_monitorsList all connected displays with their position in virtual-desktop coordinates, resolution, DPI scale factor and which is primary.
shell_runwrite actionRun a PowerShell or cmd command and return its output. This is unrestricted access to the user account:
system_control_serviceStart, stop or restart a Windows service. Most services require the connector to be running as Administrator;
system_infoReport the machine: Windows version, hardware, CPU and memory usage, disk space, battery and network.
system_list_installed_appsList applications installed on this machine, from the Windows uninstall registry.
system_list_servicesList Windows services with their current state and startup type. Filter by name to avoid returning hundreds of rows.
system_notifyShow a Windows toast notification. Useful for telling the user something finished when they are not watching the chat.
uia_findSearch an application for UI elements matching a label, AutomationId and/or control type, and return their
uia_invokeActivate a control through the accessibility layer: click a button, toggle a checkbox, expand a tree node,
uia_set_valueSet the text of an editable control directly, without typing it character by character.
uia_snapshotRead the accessibility tree of an application: every button, text field, list item and label, with its label,
window_closeAsk a window to close, exactly as clicking its X button would. The application may prompt to save unsaved work,
window_focusBring a window to the front and give it keyboard focus, restoring it first if minimized.
window_get_activeReturn the window that currently has keyboard focus. Use this to confirm which application will receive typed input.
window_get_desktop_infoReturn the bounding box of the whole virtual desktop and the current mouse cursor position, in physical pixels.
window_listList the visible top-level application windows, each with a stable id you can pass to the other window tools.
window_moveMove and/or resize a window. Any omitted dimension keeps its current value.
window_set_stateMinimize, 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
- 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
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
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 -- winctlAdd --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.
- MobilerunLet AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.not reviewedEstablishedA
- Desktop CommanderMCP server for terminal commands, file operations, and process managementnot reviewedWidely usedC
- ComputerA private persistent computer: files that survive between runs, a bash shell and JavaScript.not reviewedEstablishedA
- Token OptimizerContext-window optimization: caching, compression & smart file tools that cut tokens 60-90%.not reviewedEstablishedC