Skip to content

Releases: ilyafainberg/TotalControl-MCP-Server

TotalControl v1.7.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 00:33

Full Changelog: v1.6.0...v1.7.0

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.

v1.2.0 — First public release

Choose a tag to compare

@ilyafainberg ilyafainberg released this 12 Jun 23:57

TotalControl MCP Server — v1.2.0

First public release. A Model Context Protocol (MCP) server that gives an AI agent hardware-level control of a Windows desktop: synthesized mouse, keyboard, screen capture, and UI Automation introspection.

Built for Microsoft Scout and any MCP-compatible host (Claude Desktop, GitHub Copilot CLI, Continue, Cline, Cursor, …).

⚠️ 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. It is provided AS IS, WITHOUT WARRANTY OF ANY KIND. The author is not liable for any damages — lost data, deleted files, sent messages, financial transactions, broken systems — arising from use of this software. Not a Microsoft product. Read the full warnings in the README before installing.

What's in this release

  • TotalControl.exeself-contained single-file Windows x64 build (~131 MB; includes .NET 9 runtime + WPF + UI Automation libraries, no .NET install required on the target machine).
  • README.md — full documentation, install instructions, use cases, warnings.
  • LICENSE — MIT.

10 tools

Inputmove_mouse, click_mouse, mouse_button (down/up primitive), drag_mouse (atomic press→glide→release), send_keys
Visionscreenshot_screen, screenshot_window, hover_preview
High-levelclick_in_window (window-relative coords), find_element (UI Automation tree walk; can invoke=true to bypass UWP synthetic-input restrictions)

Install

  1. Download TotalControl-v1.2.0-win-x64.zip from the assets below.

  2. Unzip anywhere (e.g. C:\Tools\TotalControl\).

  3. Register with your MCP host. For Microsoft Scout:

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

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

    {
      "mcpServers": {
        "totalcontrol": {
          "command": "C:\\Tools\\TotalControl\\TotalControl.exe",
          "args": [],
          "env": {}
        }
      }
    }
  4. Toggle the server / restart the host so tools/list discovers all 10 tools.

Full details in the README.

Verified working

  • All 10 tools discoverable via tools/list over stdio JSON-RPC.
  • Pixel-accuracy gold test: screenshot_window PNG coordinates match click_in_window / move_mouse at physical-pixel precision on a 4K monitor at 150 % DPI scaling.
  • find_element UI Automation lookup confirmed accurate to ±0 pixels on Notepad menu bar.
  • Build: 0 warnings, 0 errors under .NET 9.0.315 SDK.

Requirements

  • Windows 10 or 11, x64.
  • A logged-in interactive user session (the agent operates the foreground desktop).
  • An MCP-compatible host (Scout, Claude Desktop, GitHub Copilot CLI, Continue, Cline, Cursor, Goose, Zed, …).