Nuphus Desktop Automation MCP

Give any MCP client direct control of the desktop and Chrome.

Stars
★ 329
Last updated
6d ago
License
MIT
Primary language
Rust

At a glance

How it runs
MCP serverCLI
Works with
Universal · cross-platformClaude.ai · OpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
An MCP clientChrome or Edge for browser toolsnpm for the recommended prebuilt installation, or the stable Rust toolchain for source buildsA vision API key and model ID only when using desktop_visionShell / CLINetwork accessLocal filesystemMCP Server
Typical use
A Claude Desktop, Cursor, or other MCP user who wants a model to inspect the screen and operate windows, the mouse, and the keyboard.
Not a fit if
  • Teams needing full desktop control on Linux — window and input support is only partial
  • macOS users unwilling to grant Accessibility permission — desktop input will not work
Source review
72/100 · Some gaps

What does this agent do, and when should you use it?

nuphus-mcp is a cross-platform stdio MCP server that exposes desktop control and Chrome automation through 38 standard MCP tools. Its Rust workspace contains the MCP server, the CDP-based nuphus-browser component, and the desktop-api control layer. It exchanges single-line JSON-RPC 2.0 messages over stdin and stdout, with no daemon or HTTP service, and is documented for clients including Claude Desktop, Cursor, VS Code, and Copilot. Desktop and browser operations require no API key; desktop_perceive runs PaddleOCR locally with optional YOLO icon detection, while desktop_vision connects to a user-supplied OpenAI-compatible or Anthropic-native vision model. Browser and desktop support is complete on Windows, macOS desktop input requires Accessibility permission, and Linux window and input capabilities are limited.

An MCP client sends JSON-RPC requests such as initialize, tools/list, and tools/call to nuphus-mcp. Its 15 desktop tools inspect screen size, produce PNG/base64 screenshots, enumerate and manipulate windows, and perform mouse clicks, drags, scrolling, keyboard input, hotkeys, and clipboard operations. desktop_perceive runs local PaddleOCR to return text elements with coordinates and can load a YOLO icon model through ONNX Runtime; desktop_vision sends a screenshot to the configured vision model for semantic interpretation. The 23 browser_* tools use nuphus-browser and chromiumoxide CDP to launch or attach to Chrome or Edge, navigate pages, create accessibility snapshots with @N references, click, type, execute scripts, extract content, and manage tabs, cookies, uploads, and downloads. The process reads newline-delimited JSON from stdin, writes JSON-RPC responses to stdout, sends logs to stderr, and validates paths used for screenshots, uploads, and file drags.

  1. A Claude Desktop, Cursor, or other MCP user who wants a model to inspect the screen and operate windows, the mouse, and the keyboard.
  2. An automation developer who needs DOM-level browser workflows for navigation, form entry, extraction, cookies, tabs, uploads, and downloads in managed Chrome.
  3. A user who needs to control an existing browser session through an external CDP endpoint, or fall back to OCR-driven visual control when CDP is unavailable.
  4. An agent developer who combines desktop_vision with desktop_perceive to obtain both semantic understanding and pixel-precise action coordinates.
  5. A DeepSeek Harness user who installs the dedicated dsh-nuphus-mcp plugin or mounts this server manually through its stdio MCP client.

How do you install or deploy this agent?

The recommended installation uses npm to select a prebuilt platform binary and does not require a Rust toolchain:

npm install -g @nuphus/nuphus-mcp

Start the stdio server after installation:

nuphus-mcp

A source build is also supported and requires the stable Rust toolchain:

cargo build --release -p nuphus-mcp

Chrome or Edge is required for browser tools. desktop_vision needs NUPHUS_MCP_VISION_API_KEY and NUPHUS_MCP_VISION_MODEL only when that tool is called. On its first run, desktop_perceive downloads the OCR models and icon_detect.onnx.

How do you use this agent?

Start with strict confirmation enabled so write operations must include confirm: true:

nuphus-mcp --confirm-write

A Claude Desktop configuration can launch it as follows:

{
  "mcpServers": {
    "nuphus-mcp": {
      "command": "nuphus-mcp",
      "args": ["--confirm-write"]
    }
  }
}

Use the documented initialization request for a quick smoke test:

echo '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test"}}}' | nuphus-mcp

To call desktop_vision, provide a vision API key and model ID in the MCP process environment:

export NUPHUS_MCP_VISION_API_KEY="your-api-key"
export NUPHUS_MCP_VISION_MODEL="your-vision-model"

The default path uses an OpenAI-compatible Chat Completions endpoint at https://api.openai.com/v1. For Anthropic's native Messages API, set NUPHUS_MCP_VISION_BASE_URL to https://api.anthropic.com/v1; provider detection can use the hostname, or NUPHUS_MCP_VISION_PROVIDER can be set explicitly to anthropic.

What are this agent's strengths and limitations?

Pros
  • One stdio MCP process supplies 15 desktop tools and 23 browser tools, covering both pixel-level input and CDP-level web automation.
  • Desktop control, browser automation, and OCR do not require an API key; only the optional desktop_vision tool uses bring-your-own-model credentials.
  • It can manage a dedicated Chrome instance or attach to an external CDP endpoint, with documented recovery when a fingerprint browser reopens on a different debug port.
  • It includes MCP safety annotations for destructive operations, an optional strict-confirm mode, and path validation for screenshots, uploads, and file drags.
  • The npm meta package provides prebuilt binaries for Windows x64/arm64, macOS arm64, and Linux x64/arm64, while Cargo remains available for source builds.
Limitations
  • Full desktop control is centered on Windows; macOS requires Accessibility permission, while Linux window and input functions are only partially supported.
  • The browser toolset depends on an installed Chrome or Edge browser and returns an error when neither can be detected.
  • Write tools run without confirmation by default, so operators must enable --confirm-write or NUPHUS_MCP_CONFIRM_WRITE=1 to enforce explicit approval.
  • Local perception models are downloaded on first use; network failures can require manual setup, and a failed YOLO download leaves only OCR available.
  • Chrome 136 and later prohibit remote debugging against the default user-data directory, requiring a managed profile, a copied profile, or lower-level visual automation.

How does this agent compare with similar options?

Unlike the full Nuphus desktop application, nuphus-mcp packages the same category of desktop and browser execution as a standalone interface for any MCP client. It is not itself a DeepSeek Harness or Cordis plugin; DSH users are directed to dsh-nuphus-mcp, while manual integration uses @deepseek-ai/dsh-mcp-client. For browser work, CDP mode provides DOM-related operations, accessibility snapshots, cookies, and tab control; the desktop_perceive plus mouse-and-keyboard path can operate an actually running browser window but does not provide DOM access.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Nuphus Desktop Automation MCP This agent 72 · Some gaps MCP serverFree + model costs ★ 329 6d ago Rust Claude.ai · OpenAI API · Claude API
Eko Agentic Workflow 43 · Major gaps Library / SDKFree + model costs ★ 5k 7mo ago TypeScript OpenAI API · Claude API
Safari MCP 78 · Good MCP serverFree ★ 225 today JavaScript Claude Code · Claude.ai
SuperAgentX Workflow Framework 37 · Major gaps Library / SDKFree + model costs ★ 202 4mo ago Python OpenAI API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Some gaps
72/ 100 5-point scale 3.6 / 5
This review covers the source as of Sep 11, 2026. The project has shipped 5 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 16/29
Reliability 9/14
Adaptability 16/18
Convention 16/18
Effectiveness 10/13
Verifiability 5/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

The project plainly states that it grants access comparable to a remote operator and recommends avoiding elevation and restricting stdin access. It also describes stdio transport, local OCR, optional external vision calls, model-download locations, and browser attachment. Path validation, destructive annotations, clipboard cleanup, and dependency auditing are substantive protections, supporting moderate scores for flow disclosure, sensitive-data handling, dependency security, and external effects. Deductions apply because the capability is inherently machine-wide, write operations run without confirmation by default, and strict confirmation is opt-in. Clicks, typing, navigation, and cookie changes generally lack a universal rollback path. Attribution reaches the repository, npm package, and “Nuphus Team,” but the publisher is unverified and individual stewardship is unclear.

Reliability9 / 14 · 3.2/5

The README, security policy, and workflows are broadly consistent about architecture, platforms, confirmation, and test scope. Missing browsers, unconfigured vision, failed model downloads, and broken external CDP connections are said to produce explicit errors. Prerequisites, browser discovery, prebuilt packages, and release-version consistency are adequately handled. Deductions reflect partial Linux desktop support, first-use network dependencies for OCR/YOLO, the non-blocking real-Chrome job in ordinary CI, and the absence of implementation code demonstrating the claimed error quality.

Adaptability16 / 18 · 4.4/5

Documentation thoroughly covers generic MCP clients, Claude Desktop, DSH, managed and external Chrome, fingerprint browsers, persistent sessions, vision providers, and multiple operating systems. It clearly distinguishes desktop from DOM automation and documents Chrome 136+, platform, BYOK, and browser-ownership boundaries. Environment-specific guidance is unusually detailed. Trigger precision receives only a moderate score because the supplied evidence omits TOOLS.md schemas and per-tool invocation rules, preventing confirmation of every high-risk tool's constraints.

Convention16 / 18 · 4.4/5

The README has strong organization, repository mapping, prerequisites, platform tables, installation paths, client configurations, demo material, and test commands. Product, command, environment-variable, and tool-prefix naming is stable. Limitations and the full MIT license are present, while release automation enforces version agreement and generates release notes. Deductions apply because no standalone FAQ or changelog is supplied. Maintenance is attributed mainly to “Nuphus Team”; the security channel, response commitments, and latest-only support policy establish an update path, but ownership remains nonspecific.

Effectiveness10 / 13 · 3.8/5

Combining desktop control, window management, local OCR, optional semantic vision, and Chrome CDP behind MCP offers substantial marginal value over a single-mode automation tool. PNG/base64 screenshots, accessibility references, OCR elements, JSON-RPC, and structured errors indicate usable outputs. The complete tool reference and representative responses are absent, however, so uniform downstream usability cannot be established. Core automation needs no API key, but vision usage, downloads, storage, initial setup, and machine-control risk impose real costs; consequently the “zero-cost” characterization is only narrowly supported.

Verifiability5 / 8 · 3.1/5

Several README claims about safety, platforms, testing, and releases are corroborated by SECURITY, workspace metadata, and CI/release workflows; license metadata is also backed by the license text. The workflows provide static evidence of test, audit, and publication gates. Core implementation, Cargo.lock, the audit exception file, TOOLS.md, and test sources are absent, so claims such as 38 tools, 60 tests, validation details, and error behavior remain largely self-reported. The documentation usually distinguishes defaults, recommendations, limitations, and optional features, but phrases such as “battle-tested” and local 7/7 results lack independent support in the supplied files.

Risks and how to mitigate them
  • Write-capable tools execute without confirmation by default. Enable --confirm-write or NUPHUS_MCP_CONFIRM_WRITE=1, and treat every process able to write to the server's stdin as having machine-control authority.
  • desktop_vision sends screen content to the user-configured external model endpoint. Screenshots may expose credentials, private messages, or other sensitive data, so review the endpoint and its retention policy before use.
  • Browser tools can read or change cookies and act through authenticated sessions; copying a real browser profile increases credential exposure. Prefer an isolated profile and a dedicated low-privilege account.
  • OCR/YOLO models are downloaded on first use, while the supplied evidence omits the lockfile, audit exceptions, and download-integrity mechanism. Verify dependencies, model provenance, checksums, and current audit results before deployment.
  • Linux desktop support is explicitly partial, macOS requires Accessibility permission, and the real-Chrome integration job is not yet a hard gate in ordinary CI.
Evidence confidence: Low Reviewed Sep 11, 2026 Reviewed revision 9b9ac4b224ff New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.3.3
    Release notes excerpt
    Full Changelog: https://github.com/mrpulor-gh/nuphus-mcp/compare/v0.3.2...v0.3.3
    View on GitHub ↗
  2. v0.3.2
    Release notes excerpt
    Full Changelog: https://github.com/mrpulor-gh/nuphus-mcp/compare/v0.3.1...v0.3.2
    View on GitHub ↗
  3. v0.3.1
    Release notes excerpt
    What's Changed * fix(browser): serve on a big-stack thread and bound the remaining waits — fixes #10 by @mrpulor-gh in https://github.com/mrpulor-gh/nuphus-mcp/pull/11 New Contributors * @mrpulor-gh made their first contribution in https://github.com/mrpulor-gh/nuphus-mcp/pull/11 Full Changelog: https://github.com/mrpulor-gh/nuphus-mcp/compare/v0.3.0...v0.3.1
    View on GitHub ↗

FAQ

Do the core desktop and browser features require a paid model API?
No. Desktop control, CDP browser automation, and local OCR need no API key. Only desktop_vision requires a user-provided vision API key and model ID.
Does it expose an HTTP service or install a background daemon?
No. It runs as a single stdio MCP process, exchanging one-line JSON-RPC 2.0 messages through stdin and stdout and writing logs to stderr.
Can it control my normal Chrome default profile directly?
Chrome 136 and later ignore remote-debugging switches when they target the default user-data directory. The documented options are to log in once to the managed profile, copy the real profile to a non-default directory and launch it with a debug port, or use OCR-driven desktop control.
How can I reduce the risk of unintended machine actions?
Run with --confirm-write or set NUPHUS_MCP_CONFIRM_WRITE=1. Strict mode rejects write calls that do not explicitly include confirm: true; destructive-tool annotations and file-path validation provide additional safeguards.
What happens if the local perception models cannot be downloaded?
Download failures return an error with manual installation guidance. YOLO is optional: if its download fails, desktop_perceive still returns OCR elements and reports yolo_available: false.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents