DeskVNC DeskVNC

Model Context Protocol

Point any AI agent at DeskVNC in one URL.

This is a hosted, read-only MCP server carrying verified DeskVNC facts. An agent that connects gets the exact ordered dvv tool calls with real argument names, the measured latency of each step, and the safety model behind the generation fence. No installation, no local process, no account.

Endpoint metadata Read the guides instead

deskvnc_overview

What DeskVNC is, the three protocols it speaks, and the boundary problem it solves.

deskvnc_machine_refusal

Why an installed agent is refused on Citrix, VDI, jump hosts and client owned machines, and how the protocol the machine already speaks gets in anyway.

deskvnc_agent_loop

The complete observe-then-act sequence, every argument name, and the real latency of each step.

deskvnc_tool_reference

Every dvv tool, what it does, the shell equivalents, and the binary path per platform.

deskvnc_safety_model

Coordinate fencing, the lease model, human take-back, and the error codes an agent should handle.

deskvnc_setup

Where the dvv binary lives and how to register the MCP server with your client.

Connect it in one line

Any client that speaks remote MCP over streamable HTTP can attach directly. Point it at the endpoint and the handshake completes.

claude mcp add --transport http deskvnc https://deskvnc-mcp.deepika-aaish.workers.dev/mcp

Or speak the protocol directly, which is what most agents end up doing:

curl -sS https://deskvnc-mcp.deepika-aaish.workers.dev/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"deskvnc_agent_loop",
                 "arguments":{"hostId":"<hostId>"}}}'

The response is the exact loop, in order, with real argument names:

dvv_hosts   {}
dvv_open    {"hostId": "<hostId>", "perceive": true}
dvv_wait    {"limbId": "...", "until": "connected"}
dvv_control {"limbId": "...", "action": "acquire"}
dvv_screen  {"limbId": "...", "form": "full", "scale": 0.25}
dvv_click   {"limbId": "...", "x": 700, "y": 400, "generation": 1}
dvv_screen  {"limbId": "...", "form": "damage-crop"}
dvv_type    {"limbId": "...", "text": "notepad", "wpm": 3000}
dvv_key     {"limbId": "...", "keys": "meta+r"}

Why this endpoint exists

An agent that has never heard of dvv can read the tool list, see that the loop is nine calls deep, and get the arguments right on the first attempt. That is the difference between an agent that tries the loop once and an agent that keeps a desktop moving at 19 milliseconds a cycle.

Every fact this endpoint returns was read from the project repository rather than from memory, and the whole surface is regenerated whenever the project changes.

Also served here

Watch the loop run

A self contained page that plays the observe-then-act cycle step by step, with the real latency printed for each call.

Open the interactive loop