# omni-computer-use

Hands an agent the Windows desktop: screenshots, clicks, keystrokes. Useful where built-in computer use is missing.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: Jason26214
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Jason26214/omni-computer-use
- Updated: 2026-09-19
- HTML: https://affpapa.org/en/nevibecode/mcp/omni-computer-use

## What it does

The server mirrors the computer-use tool surface from Claude Desktop, but ships as a plain MCP server with no client integration. It carries 29 tools: 27 line up with Anthropic's set, plus `deactivate` and `display_overview`. Setting `COMPUTER_USE_DEV=on` adds a `reload` tool, bringing the count to 30.

Click, move, scroll and drag coordinates live in the pixel space of the latest screenshot; the server converts them to physical pixels. On a multi-monitor machine each capture names the display it came from and lists the others. Synthetic keystrokes are refused when the agent's own window sits in front — otherwise the text would land in its conversation or run as a shell command.

Windows and Python 3.11+ are required, and `uv`/`uvx` fetch Python for you. The PyPI package is `omni-computer-use-mcp` while the command, server key and repo stay `omni-computer-use`. Installing into Claude once exposes the server to both the CLI and the Claude Desktop app, since Desktop reads Claude's MCP servers alongside its own.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `COMPUTER_USE_MAX_PIXELS`, `COMPUTER_USE_MASKING`, `COMPUTER_USE_ENFORCE_FOREGROUND`, `COMPUTER_USE_DEV` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env COMPUTER_USE_MAX_PIXELS=<COMPUTER_USE_MAX_PIXELS> --env COMPUTER_USE_MASKING=<COMPUTER_USE_MASKING> --env COMPUTER_USE_ENFORCE_FOREGROUND=<COMPUTER_USE_ENFORCE_FOREGROUND> --env COMPUTER_USE_DEV=<COMPUTER_USE_DEV> --transport stdio omni-computer-use -- uvx omni-computer-use-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from omni-computer-use-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add omni-computer-use --env COMPUTER_USE_MAX_PIXELS=<COMPUTER_USE_MAX_PIXELS> --env COMPUTER_USE_MASKING=<COMPUTER_USE_MASKING> --env COMPUTER_USE_ENFORCE_FOREGROUND=<COMPUTER_USE_ENFORCE_FOREGROUND> --env COMPUTER_USE_DEV=<COMPUTER_USE_DEV> -- uvx omni-computer-use-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from omni-computer-use-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "omni-computer-use": {
            "command": "uvx",
            "args": [
                "omni-computer-use-mcp"
            ],
            "env": {
                "COMPUTER_USE_MAX_PIXELS": "<COMPUTER_USE_MAX_PIXELS>",
                "COMPUTER_USE_MASKING": "<COMPUTER_USE_MASKING>",
                "COMPUTER_USE_ENFORCE_FOREGROUND": "<COMPUTER_USE_ENFORCE_FOREGROUND>",
                "COMPUTER_USE_DEV": "<COMPUTER_USE_DEV>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from omni-computer-use-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "omni-computer-use": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "omni-computer-use-mcp"
            ],
            "env": {
                "COMPUTER_USE_MAX_PIXELS": "<COMPUTER_USE_MAX_PIXELS>",
                "COMPUTER_USE_MASKING": "<COMPUTER_USE_MASKING>",
                "COMPUTER_USE_ENFORCE_FOREGROUND": "<COMPUTER_USE_ENFORCE_FOREGROUND>",
                "COMPUTER_USE_DEV": "<COMPUTER_USE_DEV>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from omni-computer-use-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e COMPUTER_USE_MAX_PIXELS=<COMPUTER_USE_MAX_PIXELS> -e COMPUTER_USE_MASKING=<COMPUTER_USE_MASKING> -e COMPUTER_USE_ENFORCE_FOREGROUND=<COMPUTER_USE_ENFORCE_FOREGROUND> -e COMPUTER_USE_DEV=<COMPUTER_USE_DEV> omni-computer-use uvx omni-computer-use-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from omni-computer-use-mcp <command>

## When to use it
- launch an app and type into its window
- capture the right monitor on a multi-display setup
- send a click or scroll to a specific screen point
- read from and write to the clipboard
- let an agent debug your own desktop app

## Example prompts
- Take a screenshot and tell me which monitor it is
- Open Calculator and work out 12 times 8
- Switch to the second display and describe what is open there

## Similar
- [dsh-cua - Windows Computer Use](https://affpapa.org/en/nevibecode/mcp/dsh-cua-windows-computer-use.md) — MCP server · ★ 7
- [open-computer-use](https://affpapa.org/en/nevibecode/skills/open-computer-use.md) — skill · 1800 installs
- [computer-use-agents](https://affpapa.org/en/nevibecode/skills/sickn33-computer-use-agents.md) — skill · 962 installs
- [Munim Computer Use](https://affpapa.org/en/nevibecode/mcp/munim-computer-use.md) — MCP server · ★ 19
- [computer-use](https://affpapa.org/en/nevibecode/skills/computer-use.md) — skill · 239600 installs
- [Computer Use](https://affpapa.org/en/nevibecode/mcp/computer-use.md) — MCP server · ★ 388

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
