deskvnc_overview
What DeskVNC is, the three protocols it speaks, and the boundary problem it solves.
Model Context Protocol
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.
deskvnc_overviewWhat DeskVNC is, the three protocols it speaks, and the boundary problem it solves.
deskvnc_machine_refusalWhy 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_loopThe complete observe-then-act sequence, every argument name, and the real latency of each step.
deskvnc_tool_referenceEvery dvv tool, what it does, the shell equivalents, and the binary path per platform.
deskvnc_safety_modelCoordinate fencing, the lease model, human take-back, and the error codes an agent should handle.
deskvnc_setupWhere the dvv binary lives and how to register the MCP server with your client.
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"}
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.
A self contained page that plays the observe-then-act cycle step by step, with the real latency printed for each call.