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
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.
Install
- Works in
Manual install
claude mcp add opendesk -- uvx --from opendesk opendesk-mcpCommand from the README for Claude Code, uv is required.
Access and checks
How we reviewBroad 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.
Related
MCP serversOpen 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
An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API
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 server for macOS desktop control through the Accessibility API: clicks, typing, windows, apps, shell commands and AppleScript
Clawd Cursor: desktop control through MCP
Clawd Cursor
An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name
A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree
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.