Atlas / MCP servers / sandraschi / Windows Computer Use

Windows Computer UseBLOCK

mcp/sandraschi/windows-computer-use

Windows Computer Use for AI Agents. Both a tool (22 MCP tools for click, type, screenshot, OCR, UI inspection) and an agent (autonomous mission engine, macro recorder, intent-based discovery, event watchers). Built with opencode (DeepSeek V4). Ships as MCP server, web UI, and Tauri desktop app.

Verdict
BLOCK
Grade
F
Trust score
43 /100
Exposed tools
76 59r · 14w · 3d
Transport
sse
License
MIT
Stars
41
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A tool for agents, and an agent itself.

Exhibit A: 100 Tauri/NSIS installers, one unattended run, $2 in LLM costs. Install, screenshot, verify, report — zero human intervention. That is what agentic Windows automation looks like at scale.

Built on pywinauto. Read docs/SAFETY.md before production use.

  • Quick Start
  • Features
  • Documentation
  • Ports
  • License

Quick Start

Read from source at commit aa9527333c15OBSERVED · 2026-10-09
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add windows-computer-use-sota --env WINDOWS_COMPUTER_USE_MCP_BYPASS_HITL=${WINDOWS_COMPUTER_USE_MCP_BYPASS_HITL} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "windows-computer-use-sota": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "WINDOWS_COMPUTER_USE_MCP_BYPASS_HITL": "${WINDOWS_COMPUTER_USE_MCP_BYPASS_HITL}"
      }
    }
  }
}
03

Exposed tools (76)

59 read · 14 write · 3 destructive. Blast radius: 3 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
GeneralreadBalanced help for this repo and Windows automation
add_facewriteAdd a new face to the recognition system.
analyze_winappreadCrawl a Windows app and produce UI element map + screenshot portfolio.
approve_automationreadApprove UI automation actions for a specified duration to prevent repetitive prompts.
automation_safetydestructiveInspect or reset server-side safety limits (rate, kill switch, dry-run). Not a substitute for HITL.
automation_watchreadif operation ==
bring_window_to_foregroundreadBring a window to the foreground by its title.
capture_and_recognizereadCapture an image from the webcam and recognize faces in it.
click_at_positionreadClick at specific screen coordinates.
click_elementreadClick on a UI element.
close_windowreadClose a window.
delete_facedestructiveDelete a known face from the system.
double_clickreadDouble-click on an element or at specific coordinates.
double_click_elementreadDouble-click on a UI element.
drag_and_dropdestructiveDrag from source to target element.
drag_mousereadDrag the mouse from one point to another.
element_existsreadCheck if a UI element exists.
extract_textreadExtract text from an image or screen region using OCR.
find_imagereadFind a template image within a screenshot or window.
find_image_on_screenreadFind an image on the screen using template matching.
find_window_by_titlereadFind window by title text.
get_active_windowreadGet the currently active window.
get_all_elementsreadGet all UI elements in a window.
get_all_windowsreadGet information about all visible windows.
get_app_monitoring_statusreadGet the current status of application monitoring.
get_cursor_positionreadGet current mouse cursor position.
get_element_inforeadGet detailed information about a UI element.
get_element_rectreadGet the rectangle of a UI element.
get_element_textreadGet the text of a UI element.
get_helpreadGet comprehensive help and documentation for all available tools.
get_intruder_detection_statusreadGet the current status of intruder detection.
get_mouse_positionreadGet the current mouse cursor position.
get_process_listreadGet a list of running processes.
get_security_eventsreadGet security events.
get_system_clipboardreadGet current clipboard content.
get_text_under_cursorreadGet text at the current cursor position using OCR.
get_ui_treereadGet a hierarchical representation of the UI tree.
get_window_rectreadGet the rectangle of a window.
get_window_titlereadGet the title of a window.
health_checkreadCheck if the PyWinAuto MCP server is running and operational.
highlight_elementreadHighlight a UI element with a colored rectangle.
hover_elementreadHover the mouse over a UI element.
hover_mousewriteMove mouse to coordinates and hover for specified duration.
is_element_enabledreadCheck if a UI element is enabled.
is_element_visiblereadCheck if a UI element is visible.
list_known_facesreadList all known faces in the system.
list_windowsreadList all visible windows on the desktop.
maximize_windowreadMaximize a window.
minimize_windowreadMinimize a window.
mouse_hoverreadHover over an element.
mouse_move_relativewriteMove mouse relative to current position.
mouse_move_to_elementwriteMove mouse to a UI element.
mouse_scrollreadScroll the mouse wheel.
move_mousewriteMove mouse to specific coordinates.
press_hotkeyreadPress a combination of keys (hotkey/shortcut).
press_keyreadPress a key or combination of keys.
recognize_facereadRecognize faces in an image.
restore_windowreadRestore a window to its normal state.
right_clickreadRight-click on an element or at specific coordinates.
right_click_elementreadRight-click on a UI element.
scroll_mousereadScroll mouse wheel at current or specified position.
send_keyswriteSend special key combinations.
set_element_textwriteSet the text of a UI element.
set_system_clipboardwriteSet clipboard content.
set_window_foregroundwriteBring a window to the foreground and activate it.
set_window_positionwriteSet the position and size of a window.
start_app_monitoringwriteStart monitoring sensitive applications.
start_intruder_detectionwriteStart intruder detection.
stop_app_monitoringwriteStop application monitoring.
stop_intruder_detectionwriteStop intruder detection.
take_screenshotreadTake a screenshot of the entire screen or a specific window.
type_textreadType text at current cursor position.
verify_textreadVerify that an element contains the expected text.
waitreadPause execution for specified seconds.
wait_for_elementreadWait for a UI element to appear.
wait_for_windowreadWait for a window with the specified title to become active.
04

Trust audit

BLOCKgrade F · trust 43/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (8 observation(s))
Shell
declared (13 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/windows_computer_use_mcp/face_recognition.py:74
face_data = pickle.load(f)
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/windows_computer_use_mcp/tools/archived/face_recognition.py:129
face_data = pickle.loads(decrypted_data)
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/windows_computer_use_mcp/tools/portmanteau_face.py:118
face_data = pickle.loads(data)
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHNetwork egress · net.env_exfil · CWE-200, CWE-319
scripts/cua-smoke.py:336
os.environ.copy() ... urllib.request
Why it matters. reads secrets in the same file that sends data out
MEDIUMInventory / provenance · inv.binary · CWE-1104
paint_elements.json
paint_elements.json
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.symlink · CWE-1104
scripts/backup-repo.ps1
scripts/backup-repo.ps1
Why it matters. link not followed
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
hooks/runtime-opentelemetry.py:43
mod = __import__(module_name, fromlist=[attr_name])
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
mcpb/verify_pack.py:48
mod = importlib.import_module(entry_module_or_file)
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
scripts/demo-autonomous.py:20
mod = importlib.import_module(f"windows_computer_use_mcp.tools.portmanteau_{tool}")
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
src/windows_computer_use_mcp/tools/__init__.py:110
__import__(f"{__name__}.{module_name}", fromlist=["*"])
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
src/windows_computer_use_mcp/tools/portmanteau_macro.py:41
mod = importlib.import_module(target)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.example:17
# CUA_MCP_URL=http://127.0.0.1:10789
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.example:38
# MCP_BRIDGE_URLS=http://127.0.0.1:10750/mcp,http://127.0.0.1:10752/mcp
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
fleet-start.config.ps1:1
# Per-repo fleet start config for pywinauto-mcp
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
scripts/FleetStartMode.ps1:1
# FleetStartMode.ps1 - vendored per-repo copy (no mcp-central-docs required at runtime)
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/windows_computer_use_mcp/.markdownlint.json:1
{
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
web_sota/start.ps1:1
# Fleet unified launcher - do not edit logic here.
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
automation_safety, delete_face, drag_and_drop
Why it matters. 3 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.cursorignore
.cursorignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
mcpb/.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
src/windows_computer_use_mcp/.markdownlint.json
.markdownlint.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.symlink · CWE-1104
.windsurf/rules/global_rules/rules2.md
.windsurf/rules/global_rules/rules2.md
Why it matters. link not followed
LOWInventory / provenance · inv.symlink · CWE-1104
.windsurf/rules/global_rules/rules3.md
.windsurf/rules/global_rules/rules3.md
Why it matters. link not followed

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha aa9527333c15full audit observations/trust-audit/mcp-server/sandraschi__windows-computer-use.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-09aa9527333c15BLOCKF43first audit
06

Questions

What is the Windows Computer Use MCP server?

Windows Computer Use for AI Agents. Both a tool (22 MCP tools for click, type, screenshot, OCR, UI inspection) and an agent (autonomous mission engine, macro recorder, intent-based discovery, event watchers). Built with opencode (DeepSeek V4). Ships as MCP server, web UI, and Tauri desktop app.

What tools does Windows Computer Use expose?

76 in total: 59 read-only, 14 that write, and 3 that can delete or overwrite (automation_safety, delete_face, drag_and_drop). Every one is listed on this page with its risk.

Is Windows Computer Use safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (43/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 3 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Windows Computer Use need?

It reads WINDOWS_COMPUTER_USE_MCP_BYPASS_HITL from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Windows Computer Use run?

It speaks sse, so it runs as a service you connect to over the network. It is published on npm as windows-computer-use-sota at 0.5.4.

How current is this page?

The grade is for one exact copy of the source (aa9527333c15), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement