nuphus-mcp
Integrates with OpenAI-compatible vision APIs to send screenshots for semantic understanding, complementing local OCR for pixel-precise coordinates.
nuphus-mcp
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)
ββββββββββββββββββββ ββββββββββββββββββββββββFeatures
36 MCP tools (15 desktop + 21 browser) β screenshots, window control, mouse/keyboard, Chrome CDP automation, and more β see TOOLS.md / TOOLS.zh-CN.md for the full reference.
Desktop automation: screen size, screenshot (BMP/base64), window list, window activate/screenshot/move/resize/info, mouse click/drag/scroll/position, keyboard input/hotkey, clipboard write/clean β implemented on the
desktop-apicrate (xcap + Win32, no Tauri dependency).Computer vision pair:
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.Browser automation: navigate, snapshot (accessibility tree with
@Nrefs), click, type, exec, scroll, extract, screenshot, evaluate, back/forward, wait_for, cookies get/set/import, upload, tabs, downloads β implemented onnuphus-browser(chromiumoxide CDP).Zero-cost stdio: no HTTP server, no daemon. The process reads single-line JSON from stdin and writes responses to stdout.
Safety-first: destructive tools are annotated per the MCP spec; optional strict-confirm mode; path validation for screenshot/upload.
Related MCP server: desktop-touch-mcp
Repository Layout
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)
βββ ...Prerequisites
Rust toolchain (stable) β build from source with Cargo.
Chrome or Edge β required for browser tools. The server auto-detects an installed browser; if none is found,
browser_*tools return a clear error.Windows recommended for full desktop control β see Platform Support below.
Platform Support
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 |
API Keys & Local Models
Vision β BYOK, OpenAI-compatible
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 |
| β | β | API key for your vision model |
| β |
| OpenAI-compatible base URL |
| β | β | Model id, e.g. |
Perceive models (local, auto-downloaded)
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 & Run
Install via npm (recommended β all platforms, prebuilt binaries):
npm install -g @nuphus/nuphus-mcpThe 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 serverBuild 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-mcpMCP Client Configuration
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.
Demo
A self-contained stdio client that walks through
initialize β tools/list β tools/call:
cargo build -p nuphus-mcp
cargo run -p nuphus-mcp --example demoTests
cargo check --workspace
cargo test -p nuphus-mcp # protocol + security + vision + models tests (28)Safety
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.
License
MIT
This server cannot be installed
Maintenance
Related MCP Servers
- Alicense-qualityFmaintenanceAn open-source MCP server for macOS and Windows that provides native desktop control via Accessibility APIs, OCR, and Chrome CDP. It enables AI agents to interact with applications, manage browser sessions, and automate workflows with high-speed native UI actions.Last updated9810AGPL 3.0
- AlicenseAqualityBmaintenanceWindows desktop automation MCP server β screenshot, mouse, keyboard & UI Automation. Lets LLM agents see and control your Windows desktop directly.Last updated301,5918MIT
- Alicense-qualityAmaintenanceThe local MCP server that gives any AI agent safe desktop control. Provides 6 compact tools (computer, accessibility, window, system, browser, task) for cross-platform GUI automation with ground-truth verification.Last updated50391MIT
- Alicense-qualityBmaintenanceAn MCP server that gives any AI assistant eyes and hands on your desktop β screenshots, clicking, typing, OCR, window management, accessibility-tree queries, workflow recording.Last updated5Apache 2.0
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mrpulor-gh/nuphus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server