MCP.Market

Desktop MCP server

by jaimenbell·io.github.jaimenbell/desktop-mcp·v0.1.1

Windows desktop-control MCP server: screenshot, window mgmt, mouse/keyboard input, recording.

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody has reviewed Desktop yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Desktop tools (18)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • focus_window

    Bring a window to the foreground by title substring. Requires DESKTOP_MCP_ENABLE_WINDOW=1.

  • get_active_window

    Return the currently focused/active window, or null if none.

  • hotkey

    Press a key combination, e.g. ['ctrl', 'c']. Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • key_press

    Press a single key (pyautogui key name, e.g. 'enter', 'a'). Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • list_windows

    List all visible top-level windows with title and bounds.

  • minimize_window

    Minimize a window by title substring. Requires DESKTOP_MCP_ENABLE_WINDOW=1.

  • mouse_click

    Click the mouse at (x, y) or the current position. Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • mouse_drag

    Drag the mouse from (x1, y1) to (x2, y2). Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • mouse_move

    Move the mouse cursor to (x, y) in virtual-desktop coordinates. Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • mouse_scroll

    Scroll the mouse wheel by `clicks` (positive=up) at an optional position. Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • move_resize_window

    Move and resize a window by title substring. Requires DESKTOP_MCP_ENABLE_WINDOW=1.

  • record_start

    Start an ffmpeg gdigrab screen recording with a hard max_duration_s cap. Requires DESKTOP_MCP_ENABLE_RECORD=1.

  • record_status

    Check whether a recording is in progress. Requires DESKTOP_MCP_ENABLE_RECORD=1.

  • record_stop

    Stop the active recording and return {path, bytes, duration_s}. Requires DESKTOP_MCP_ENABLE_RECORD=1.

  • restore_window

    Restore a minimized window by title substring. Requires DESKTOP_MCP_ENABLE_WINDOW=1.

  • screenshot

    Capture a PNG screenshot of a monitor, region, or window. Returns {path, w, h, monitor}.

  • type_text

    Type a string via simulated keystrokes. Requires DESKTOP_MCP_ENABLE_INPUT=1.

  • window_info

    Look up a window by title substring; returns its bounds and state.

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

no findings
  • Code scan11 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 43 days ago12/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Desktop compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
85/100
higher than 70% of 48,273 servers
Tools
18
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break

What its tools let an agent do: 17 read · 1 change

Install Desktop in Claude Code, Cursor or VS Code

claude mcp add desktop-mcp -- uvx desktop-mcp
Add to Cursor

What the publisher says

From the Desktop repository's README, as published. We do not edit it. Read it on GitHub

desktop-mcp

Windows desktop-control MCP server: screenshot, window management, mouse/keyboard input, and ffmpeg screen-recording, config-gated by tool group (input off by default) -- built to the same standard as mcp-factory and rag-mcp: own pyproject, fastmcp server, honest README, real test suite.

Quickstart

pip install desktop-mcp
// ~/.claude.json (or any MCP-host stdio client config)
{
  "mcpServers": {
    "desktop-mcp": {
      "command": "desktop-mcp"
      // or: "command": "python", "args": ["-m", "desktop_mcp"]
    }
  }
}

window/input/record tool groups are env-gated -- input stays off unless you explicitly opt in. See Env vars below for the full table.

Tool groups

A disabled group returns a structured policyrefusal error (never a silent no-op, never a crash). Input actions are additionally rate-capped (default 60 actions/min, tunable via DESKTOPMCPRATELIMITPERMIN) -- exceeding the cap returns a structured rate_limited error.

This is defense-in-depth: harness-level permission prompts are the first gate, but the server itself refuses input/window/record actions unless its own env explicitly enables them, so a misconfigured or overly-permissive harness can't turn on capabilities the operator didn't opt into for this process.

Security

Read this before you register desktop-mcp. This is a desktop-control server; what it can do to your machine is spelled out here plainly so you can make an informed decision. Honesty about the blast radius is the point.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Desktop: common questions

Is Desktop MCP server safe?
Yes, by our scan: it is graded A (85/100). Read the Desktop safety report
How do I install Desktop?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Desktop need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Desktop maintained?
The last commit was 82 days ago (2026-08-12). The latest release is v0.1.1.
What can I use instead of Desktop?
Servers from other publishers that do the same job: Mobilerun MCP server.
How does Desktop compare with other MCP servers?
safety score 85/100 (higher than 70% of 48,273 servers); tools 18 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Desktop

Same job from other publishers: the closest match first, then the best rated.

  • Mobilerun
    Let AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.
    A

More from jaimenbell →