by mrpulor-gh
Desktop automation MCP server — computer use for any AI agent: control screen, windows, mouse/keyboard, and Chrome via Model Context Protocol (stdio)
# Add to your Claude Code skills
git clone https://github.com/mrpulor-gh/nuphus-mcpnuphus-mcp is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by mrpulor-gh. Desktop automation MCP server — computer use for any AI agent: control screen, windows, mouse/keyboard, and Chrome via Model Context Protocol (stdio). It has 53 GitHub stars.
nuphus-mcp's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/mrpulor-gh/nuphus-mcp" and add it to your Claude Code skills directory (see the Installation section above).
nuphus-mcp is primarily written in Rust. It is open-source under mrpulor-gh on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh nuphus-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Desktop automation MCP server — computer use for any AI agent. See the screen, control windows/mouse/keyboard, and drive Chrome over the Model Context Protocol (stdio). Desktop & browser automation need no API key; OCR runs locally; vision plugs into your own vision LLM (OpenAI-compatible, BYOK).
nuphus-mcp is a lightweight, cross-platform desktop automation MCP server
that exposes desktop + browser automation as standard MCP tools. It speaks
JSON-RPC 2.0 over stdio — no daemon, no network service, one binary. Claude
Desktop, Cursor, VS Code, Copilot, or any MCP client can connect and
immediately control the screen, windows, keyboard/mouse, and Chrome —
computer use for any AI agent — desktop & browser automation need no API
key; local OCR is built in; vision works with your own vision LLM
(OpenAI-compatible, BYOK).
🇨🇳 Mainland China mirror: this repo is mirrored on Gitee for fast in-China access (Chinese docs served by default there). 中文文档
┌──────────────────┐ stdio JSON-RPC ┌──────────────────────┐
│ Any MCP Client │ ───────────────► │ nuphus-mcp │
│ (Claude/Cursor/ │ ◄─────────────── │ desktop-api crate │──► screen/window/mouse/keyboard
│ Nuphus itself) │ single-line JSON │ nuphus-browser crate│──► Chrome (CDP)
└──────────────────┘ └──────────────────────┘
desktop-api crate (xcap + Win32, no Tauri dependency).desktop_vision (BYOK — send a screenshot to your
own vision model via an OpenAI-compatible API) + desktop_perceive (local
OCR with PaddleOCR, models auto-downloaded on first run; optional YOLO icon
detection). Used together they give AI agents both semantic understanding
and pixel-precise coordinates — the battle-tested vision→perceive flow from
the Nuphus desktop app. See TOOLS.md for BYOK env vars, model
setup, and the recommended flow.@N
refs), click, type, exec, scroll, extract, screenshot, evaluate,
back/forward, wait_for, cookies get/set/import, upload, tabs, downloads —
implemented on nuphus-browser (chromiumoxide CDP).nuphus-mcp/
├── Cargo.toml # workspace root
├── TOOLS.md / TOOLS.zh-CN.md # 36-tool reference
├── crates/
│ ├── nuphus-mcp/ # MCP Server (this repo's product)
│ ├── nuphus-browser/ # Browser automation core (CDP)
│ └── desktop-api/ # Desktop control core (vendored)
└── ...
browser_* tools return a clear error.| Platform | Browser tools | Desktop tools |
|---|---|---|
| Windows | Full | Full (Win32 API) |
| macOS | Full | Desktop input requires Accessibility permission (System Settings → Privacy & Security → Accessibility) |
| Linux | Available | Partial — window/input capabilities are limited |
desktop_vision uses your own vision model through an OpenAI-compatible
Chat Completions endpoint. Nothing is required unless you call this tool — and
when it is not configured the tool returns a clear error instead of silently
failing.
| Environment variable | Required | Default | Description |
|---|---|---|---|
NUPHUS_MCP_VISION_API_KEY |
✅ | — | API key for your vision model |
NUPHUS_MCP_VISION_BASE_URL |
— | https://api.openai.com/v1 |
OpenAI-compatible base URL |
NUPHUS_MCP_VISION_MODEL |
✅ | — | Model id, e.g. gpt-4o-mini, qwen-vl-max |
desktop_perceive runs PaddleOCR locally with ONNX Runtime. The first call
downloads the OCR models automatically into %APPDATA%\Nuphus\models (or
NUPHUS_MODELS_DIR). Download failures return a clear error with manual
instructions. YOLO icon detection (icon_detect.onnx) is an optional
enhancement and is not auto-downloaded. See
TOOLS.md → Vision & Local Models.
All other tools need no API key.
Install via npm (recommended — all platforms, prebuilt binaries):
npm install -g @nuphus/nuphus-mcp
The nuphus-mcp meta package installs the prebuilt binary for your platform
automatically (Windows x64/arm64, macOS arm64, Linux x64/arm64) and puts the
nuphus-mcp command on your PATH. No Rust toolchain needed:
nuphus-mcp # stdio MCP server
Build from source (requires the Rust toolchain):
cargo build --release -p nuphus-mcp
# binary at target/release/nuphus-mcp(.exe)
The server reads newline-delimited JSON from stdin and writes JSON-RPC responses to stdout. Logs go to stderr.
# quick smoke test
echo '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test"}}}' | nuphus-mcp
Point any MCP client at nuphus-mcp. After npm install -g @nuphus/nuphus-mcp the command is on your PATH; otherwise use the absolute
path to the binary (nuphus-mcp / nuphus-mcp.exe).
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"nuphus-mcp": {
"command": "nuphus-mcp",
"args": []
}
}
}
Any MCP client (generic mcpServers JSON):
{
"mcpServers": {
"nuphus-mcp": {
"command": "nuphus-mcp",
"args": [],
"env": {}
}
}
}
Supported MCP methods: initialize, notifications/initialized, ping,
tools/list, tools/call.
A self-contained stdio client that walks through
initialize → tools/list → tools/call:
cargo build -p nuphus-mcp
cargo run -p nuphus-mcp --example demo
cargo check --workspace
cargo test -p nuphus-mcp # protocol + security + vision + models tests (28)
This server can physically control the machine it runs on. Read
SECURITY.md and the Safety Annotations section of
TOOLS.md before deploying. Recommended: run with
--confirm-write (or NUPHUS_MCP_CONFIRM_WRITE=1) so write tools require an
explicit "confirm": true argument.
MIT