Skip to content

v1.6.0 — Window control, selection enforcement, MP4 recording

Choose a tag to compare

@ilyafainberg ilyafainberg released this 02 Jul 10:03

TotalControl MCP Server — v1.6.0

Major update: a window-control safety model, mandatory window selection, screen recording to MP4, and a user-abort kill switch. Now 16 tools, built on .NET 10.

⚠️ Use at your own risk

This software gives an AI agent the same control over your computer that you have with a mouse and keyboard. There is no sandbox. Provided AS IS, WITHOUT WARRANTY OF ANY KIND; the author is not liable for any damages. Not a Microsoft product. See the README for full warnings.

What's new since v1.2.0

🎯 Window control + "Under Agent Control" frame

  • control_window(query) pins a window top-most, brings it forward, and draws a crimson border + an "Under Agent Control" tag with an button above its titlebar. The user can always see which window the agent is driving.
  • release_window(query | all=true) removes the frame and restores the window's original state. A process-exit safety-net un-top-mosts anything left behind.
  • Overlays run on a dedicated WPF/STA thread, follow the window as it moves/resizes, and hide while it's minimized. The frame is click-through (only the ✕ is interactive).

🔒 Mandatory window selection (enforced)

  • Capture and interaction tools refuse to run until a window is selected, returning an instruction that tells the agent to call find_windowcontrol_window first.
  • Absolute tools (screenshot_screen, click_mouse, send_keys, …) require at least one controlled window; window-scoped tools require that window to be controlled.
  • Disable with TOTALCONTROL_REQUIRE_WINDOW_SELECTION=0.

⛔ User abort (kill switch)

  • Clicking the on the frame is an explicit STOP: it cancels any in-flight operation (e.g. a recording) and the agent's next tool call returns an ⛔ ABORTED BY USER message instructing it to halt and ask how to proceed.

🎥 Screen recording → MP4

  • record_window(query, durationSeconds, fps) records a controlled window to an H.264 MP4 via FFmpeg (same DWM-aware capture as screenshots — works for Chromium/UWP/WebView2). Abortable via ✕.
  • Requires FFmpeg on PATH or TOTALCONTROL_FFMPEG. Install: winget install Gyan.FFmpeg.

🧰 More tools + fixes

  • New: scroll_mouse (vertical/horizontal wheel), crop_screenshot (region-of-interest), find_window (list windows as text, no capture).
  • Screenshots gained scale and jpegQuality knobs to cut token cost dramatically.
  • Fixed keyboard chords: {Win+R}, {Ctrl+S}, {Ctrl+A} now inject VK codes (via VkKeyScanW) so OS hotkeys actually fire — previously they were sent as Unicode and silently did nothing. Lone modifiers like {Win} now work too.
  • Fixed a crash on scaled screenshots (bitmap dimensions were read after disposal).
  • Upgraded to .NET 10; process-name caching speeds up window enumeration.

The 16 tools

Window control: find_window, control_window, release_window, record_window
Input: move_mouse, click_mouse, mouse_button, drag_mouse, scroll_mouse, send_keys
Vision: screenshot_screen, screenshot_window, crop_screenshot, hover_preview
High-level: click_in_window, find_element

Install

  1. Download TotalControl-v1.6.0-win-x64.zip below and unzip anywhere (e.g. C:\Tools\TotalControl\).

  2. Register with your MCP host. Microsoft Scout:

    { "name": "totalcontrol", "command": "C:\\Tools\\TotalControl\\TotalControl.exe", "args": [] }

    GitHub Copilot CLI%USERPROFILE%\.copilot\mcp-config.json:

    { "mcpServers": { "totalcontrol": { "command": "C:\\Tools\\TotalControl\\TotalControl.exe", "args": [], "env": {} } } }
  3. Restart the host so tools/list discovers all 16 tools.

Full details in the README.

In this release

  • TotalControl.exe — self-contained single-file Windows x64 (~137 MB; includes .NET 10 + WPF + UI Automation, no install needed).
  • README.md, LICENSE.
  • Optional: FFmpeg (for record_window only) — install separately with winget install Gyan.FFmpeg.

Requirements

  • Windows 10 or 11, x64, interactive user session.
  • An MCP-compatible host (Scout, Claude Desktop, GitHub Copilot CLI, Continue, Cline, Cursor, …).
  • FFmpeg only if you use record_window.