mcpbeat Sign in

WinCtl MCP Server

by sitharaj88 Your server? Claim it
local only

WinCtl runs on your own machine — the client starts it, so there is no endpoint to ping. 31 installs a week from npm. Last commit 2 Aug 2026.

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

Installs per day peak 9 · avg 5 · +111% w/w
a month agotoday
31
Installs / week
npm · @sitharaj88/winctl
0
Stars
0 open issues
2 Aug 2026
Last commit
0 releases in 90 days
MIT
License
TypeScript

What the code does

We read the source, 20 h ago · rules 3dff92dd89df

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a file or shell call file_list.path → src/tools/files.ts:214, file_list.path → src/tools/files.ts:265, file_read.path → src/tools/files.ts:290 и ещё 1
        await fs.writeFile(target, data);
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

      const probe = spawnSync(candidate, ['-NoLogo', '-NoProfile', '-Command', '$PSVersionTable.PSVersion.Major'], {

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add winctl -- npx -y @sitharaj88/winctl
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "winctl": {
      "args": [
        "-y",
        "@sitharaj88/winctl"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.winctl]
command = "npx"
args = ["-y", "@sitharaj88/winctl"]
.cursor/mcp.json
{
  "mcpServers": {
    "winctl": {
      "args": [
        "-y",
        "@sitharaj88/winctl"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "winctl": {
      "args": [
        "-y",
        "@sitharaj88/winctl"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: WINCTL_PROFILE (Permission profile: readonly (observation only), standard (adds desktop interaction and file access), or full (adds process control and shell execution). Defaults to standard.), WINCTL_TIERS (Comma-separated capability tiers, overriding the profile. Any of: observe, interact, filesystem, manage, shell.), WINCTL_ALLOWED_PATHS (Semicolon-separated folders that file tools may access. Empty means the whole filesystem except protected Windows system directories.), WINCTL_CONFIRM_DESTRUCTIVE (Set to false to skip user confirmation prompts for destructive actions. Defaults to true.), WINCTL_AUDIT_LOG (Path to the JSONL audit log. Defaults to %LOCALAPPDATA%\winctl\audit.jsonl.), WINCTL_MAX_IMAGE_WIDTH (Screenshots are downscaled to at most this width in pixels. Defaults to 1600.). The author declared them in the registry entry; get the values from the project itself.

Alternatives to WinCtl

same job, measured the same way
Computer Use
by hightemp

Local MCP server for desktop automation: mouse, keyboard, screen, windows, and processes.

34 installs/wk local only
MCP Test Utils
by jeenyjai

Desktop UI automation for AI agents: screenshots, windows, mouse, keyboard, UI Automation, OCR

local only
ScreenshotMCP
by agentforge-labs

Desktop and mobile website screenshots plus page context for AI agents and automation workflows.

2 tools answering
Android Puppeteer MCP
by pedro-rivas

MCP server for Android automation with UI interaction, screenshots, and device control

78 installs/wk local only
Precision Desktop
by ikoskela

Fixes DPI coordinate scaling for Windows desktop automation MCP servers.

43 installs/wk local only
ultranix-mcp
by jxoesneon

Secure Linux desktop automation - input, screen/OCR/vision, AT-SPI2 UI tree, window, clipboard

local only
Netwright
by ricfanin

Playwright-style automation of .NET desktop apps (WPF, WinForms, WinUI) for AI agents.

local only
I
Deskbrid
by coe0718

Linux automation. 125 MCP tools: windows, input, screenshots, clipboard, print, AT-SPI. 9 DEs.

local only

WinCtl — questions

Answers built from our own checks of this server.

Why is there no uptime for WinCtl?
WinCtl runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package @sitharaj88/winctl was installed 31 times last week.
How do I connect WinCtl?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls @sitharaj88/winctl straight from npm; nothing to host, nothing to sign up for.
How many people use WinCtl?
The npm package @sitharaj88/winctl was installed 31 times in the last week. Week over week that is +111%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is WinCtl open source?
Yes — it is published under the MIT licence, written in TypeScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.