OpenDesk MCP

An MCP server that lets an agent see the screen and control macOS, Windows and Linux: screenshots, clicks, OCR and screen memory

  • 92 ★ on the repository
  • Last commit
MCP serverOfficial

Broad access

Why this level

  • The agent sees the screen and acts with the mouse, keyboard and shell commands with the user permissions, and screen memory stores window text.
All reasons and checks

vitalops/opendesk

Install

Manual install

claude mcp add opendesk -- uvx --from opendesk opendesk-mcp

Command from the README for Claude Code, uv is required.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent sees the screen and acts with the mouse, keyboard and shell commands with the user permissions, and screen memory stores window text.

This is third-party code. Review the repository files before installing.

What it does

OpenDesk is an MCP server from VitalOps for desktop control. The agent takes a screenshot with numbered boxes on every clickable element, clicks and types by element name or number with no coordinates, and falls back to precise mouse and keyboard control, app launching, the clipboard and OCR. The `script` tool runs shell, AppleScript, JXA or PowerShell commands, and `browser` drives Chrome, Edge and Brave over the DevTools protocol. A task can be recorded once through `learn` and replayed: the recording compiles into a program that clicks elements by app, role and title and checks each step, and in normal mode it runs without model calls. Scheduling supports formats like `every day at 09:00` and cron. The `fleet` tool runs a call on several paired machines at once over an encrypted WebSocket. A separate screen memory feature records window text on app switches, keeps it in a local encrypted SQLite database and answers the agent through the `memory` tool. Secrets are redacted, apps can be put on a deny list and capture pauses with a hotkey.

Who it is for. Testers and developers who need an agent to work in desktop apps and interfaces that have no API.

Good fit when

  • You need to check a web app like a user: open it, create a record and confirm the result with no selectors
  • A program with no API needs the same buttons pressed on a schedule, for example filling in a form every Friday
  • One action has to run on several paired computers at once
  • You want to ask the agent which error the terminal showed on Tuesday and get the answer from local screen history
  • A workflow is easier to record by hand once and replay without model calls

Not a fit when

  • A service has an API or a ready MCP server: a direct call is more reliable and faster than going through the interface
  • The computer holds sensitive data and you are not ready to give an agent access to the screen and keyboard
  • You need work on a phone or tablet: the server targets desktop macOS, Windows and Linux

Example request

Take a screenshot, find the calculator window, calculate 17 times 23 and tell me what the display shows.

MCP

Transport
stdio, http
Authentication
not required

Limitations

On macOS the app that launches OpenDesk (Claude Desktop, a terminal, Cursor or VS Code) needs Accessibility and Screen Recording permissions, and `uvx opendesk check --open` helps verify them. It installs through `uv` or Node.js 18 and newer. The `script` tool runs arbitrary commands and `mouse` and `keyboard` act as the user, so keep confirmation on in the client for dangerous calls. Screen memory is off until you start it with `opendesk memory start` and it stores window text, though encrypted. Remote HTTP mode uses a bearer token and the port is set with `--port`. The project is not related to the openDesk office suite.

How to disable. Remove the `opendesk` entry from the client MCP configuration or run `claude mcp remove opendesk`. Screen memory stops with `opendesk memory stop` and the `memory_manage` tool deletes history.

FAQ

How do I connect OpenDesk to Claude Code?

Run `claude mcp add opendesk -- uvx --from opendesk opendesk-mcp`. There is also a plugin: `claude plugin marketplace add vitalops/opendesk` and `claude plugin install opendesk@opendesk`, which adds a skill describing the workflow.

Is Python required?

No, there is a Node.js version: `npx -y -p @vitalops/opendesk-sdk opendesk-js-mcp`. The Python version installs through `uvx` or `pip install opendesk`.

How does the agent click elements without coordinates?

The `screenshot` tool draws numbers on every clickable element from the accessibility tree, and `ui` clicks and types by name or number. Coordinates are needed only by the `mouse` tool.

What does screen memory store and can it be turned off?

Window text from the accessibility tree or local OCR and an encrypted thumbnail, all local. Start and stop with `opendesk memory start` and `opendesk memory stop`, and `memory_manage` sets the deny list, retention and deletion.

How do I control another machine?

Pair the machines and use the `opendesk_peers`, `opendesk_use` and `fleet` tools over an encrypted WebSocket. For network clients there is streamable HTTP with a token: `uvx opendesk mcp --transport http --port 8765`.

Discussion

No questions or reviews yet.

Open Computer Use

open-computer-use

An open MCP server for desktop control: the agent reads app state and clicks, types and scrolls on macOS, Linux and Windows

MCP serverBroad access2.9KRepository stars

An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API

MCP serverBroad access415Repository stars

An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell

MCP serverBroad access11.6KRepository stars

MCP server for macOS desktop control through the Accessibility API: clicks, typing, windows, apps, shell commands and AppleScript

MCP serverBroad access240Repository stars

An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name

MCP serverBroad access408Repository stars

A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree

MCP serverBroad access358Repository stars

README in short

The README lists the tools (screenshot, ui, mouse, keyboard, script, browser, learn, schedule, memory, fleet), setup for Claude Code, Claude Desktop, Cursor and VS Code, automation, screen memory and macOS permissions.

README badge

Report a problem