{"name":"io.github.sitharaj88/winctl","slug":"sitharaj88-winctl","title":"WinCtl","description":"Windows desktop control for AI agents: screen, UI Automation, input, processes, files, shell.","url":"https://mcp.market/server/sitharaj88-winctl","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":19,"stars":0,"forks":0,"downloads_week":18,"last_push_at":"2026-08-02T07:07:39.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/sitharaj88/winctl","website":"https://github.com/sitharaj88/winctl#readme","version":"1.0.2","remotes":[],"packages":[{"registryType":"npm","identifier":"@sitharaj88/winctl","version":"1.0.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Permission profile: readonly (observation only), standard (adds desktop interaction and file access), or full (adds process control and shell execution). Defaults to standard.","format":"string","default":"standard","name":"WINCTL_PROFILE"},{"description":"Comma-separated capability tiers, overriding the profile. Any of: observe, interact, filesystem, manage, shell.","format":"string","name":"WINCTL_TIERS"},{"description":"Semicolon-separated folders that file tools may access. Empty means the whole filesystem except protected Windows system directories.","format":"string","name":"WINCTL_ALLOWED_PATHS"},{"description":"Set to false to skip user confirmation prompts for destructive actions. Defaults to true.","format":"string","default":"true","name":"WINCTL_CONFIRM_DESTRUCTIVE"},{"description":"Path to the JSONL audit log. Defaults to %LOCALAPPDATA%\\winctl\\audit.jsonl.","format":"string","name":"WINCTL_AUDIT_LOG"},{"description":"Screenshots are downscaled to at most this width in pixels. Defaults to 1600.","format":"string","default":"1600","name":"WINCTL_MAX_IMAGE_WIDTH"}]},{"registryType":"mcpb","identifier":"https://github.com/sitharaj88/winctl/releases/download/v1.0.2/winctl.mcpb","version":"1.0.2","fileSha256":"4556a00621ed232482523d23852190eb9ac344d8d27e5109c2eb5142a35a3335","transport":{"type":"stdio"},"environmentVariables":[{"description":"Permission profile: readonly (observation only), standard (adds desktop interaction and file access), or full (adds process control and shell execution). Defaults to standard.","format":"string","default":"standard","name":"WINCTL_PROFILE"}]}],"tools":[{"name":"clipboard_read","description":"Read the current text contents of the Windows clipboard. Returns empty if the clipboard holds an image or other non-text data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clipboard_write","description":"Replace the Windows clipboard contents with text. Handy for moving a large block of text into an application","write_action":true,"price_micros":0,"input_schema":null},{"name":"file_known_folders","description":"Return the absolute paths of the standard Windows folders (Desktop, Documents, Downloads, Temp and so on)","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_list","description":"List the contents of a directory with sizes and modification times. Optionally match a glob-style pattern.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_manage","description":"Copy, move, rename or delete a file or directory, or create a directory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_read","description":"Read a text file and return its contents. Binary files are refused rather than returned as noise.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_search","description":"Search a directory tree for files whose name matches a pattern, and optionally whose contents contain a string.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_write","description":"Write text to a file, creating it if needed. Use mode \"append\" to add to the end instead of replacing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"input_click","description":"Click a mouse button, optionally moving to a position first. Set clicks to 2 for a double-click.","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_drag","description":"Press a mouse button at one point, move to another, and release — for dragging files, selecting text or moving items.","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_key_hold","description":"Hold a key down or release it, for interactions that need a key held across several other actions —","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_move_mouse","description":"Move the mouse cursor to an absolute position. …","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_press_keys","description":"Press a key or a chord such as \"enter\", \"ctrl+s\", \"alt+tab\" or \"ctrl+shift+escape\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_scroll","description":"Scroll the wheel over whatever is under the cursor. Positive amounts scroll up (or right for horizontal),","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_type","description":"Type literal text into the focused window. Sent as Unicode, so it is independent of the keyboard layout and","write_action":false,"price_micros":0,"input_schema":null},{"name":"process_kill","description":"Forcibly terminate a process by id. The application gets no chance to save, so prefer window_close for","write_action":true,"price_micros":0,"input_schema":null},{"name":"process_list","description":"List running processes with their CPU and memory usage. Sorted by memory by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"process_start","description":"Launch an application or open a document. Accepts an executable name on PATH (for example \"notepad\"),","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_capture","description":"Take a screenshot of a monitor, or of the whole virtual desktop, and return it as an image you can read.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_capture_region","description":"Capture a rectangular region of a monitor. Coordinates are relative to that monitor top-left corner, in physical pixels.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_capture_window","description":"Capture a single application window by title, even if other windows overlap it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_list_monitors","description":"List all connected displays with their position in virtual-desktop coordinates, resolution, DPI scale factor and which is primary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shell_run","description":"Run a PowerShell or cmd command and return its output. This is unrestricted access to the user account:","write_action":true,"price_micros":0,"input_schema":null},{"name":"system_control_service","description":"Start, stop or restart a Windows service. Most services require the connector to be running as Administrator;","write_action":false,"price_micros":0,"input_schema":null},{"name":"system_info","description":"Report the machine: Windows version, hardware, CPU and memory usage, disk space, battery and network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"system_list_installed_apps","description":"List applications installed on this machine, from the Windows uninstall registry.","write_action":false,"price_micros":0,"input_schema":null},{"name":"system_list_services","description":"List Windows services with their current state and startup type. Filter by name to avoid returning hundreds of rows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"system_notify","description":"Show a Windows toast notification. Useful for telling the user something finished when they are not watching the chat.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uia_find","description":"Search an application for UI elements matching a label, AutomationId and/or control type, and return their","write_action":false,"price_micros":0,"input_schema":null},{"name":"uia_invoke","description":"Activate a control through the accessibility layer: click a button, toggle a checkbox, expand a tree node,","write_action":false,"price_micros":0,"input_schema":null},{"name":"uia_set_value","description":"Set the text of an editable control directly, without typing it character by character.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uia_snapshot","description":"Read the accessibility tree of an application: every button, text field, list item and label, with its label,","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_close","description":"Ask a window to close, exactly as clicking its X button would. The application may prompt to save unsaved work,","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_focus","description":"Bring a window to the front and give it keyboard focus, restoring it first if minimized.","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_get_active","description":"Return the window that currently has keyboard focus. Use this to confirm which application will receive typed input.","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_get_desktop_info","description":"Return the bounding box of the whole virtual desktop and the current mouse cursor position, in physical pixels.","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_list","description":"List the visible top-level application windows, each with a stable id you can pass to the other window tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_move","description":"Move and/or resize a window. Any omitted dimension keeps its current value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"window_set_state","description":"Minimize, maximize, restore, hide or show a window. Hiding removes it from the taskbar without closing it —","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-24T12:01:32.457Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T12:01:32.364Z","components":{"code":{"score":25,"max":25,"notes":["53 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 53 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@sitharaj88/winctl","version":"1.0.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":8,"publishedAt":"2026-08-02T06:41:46.905Z","repositoryUrl":"git+https://github.com/sitharaj88/winctl.git","weeklyDownloads":18}],"repo":{"found":true,"owner":"sitharaj88","repo":"winctl","archived":false,"pushedAt":"2026-08-02T07:07:39Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/16262939?v=4","ownerCreatedAt":"2015-12-12T02:23:12Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/sitharaj88/winctl/main/icon.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":18,"license":"MIT","lastPushAt":"2026-08-02T07:07:39.000Z","score":19}}}},"grade_history":[],"reviews":[]}