action_queueLABSCO SUMMARY
Timing is a parameter here, not a fixed behaviour you have to live with.
vnc_command takes an action and its target — a coordinate, a drag destination, a key or combination, text, a scroll direction and amount — and alongside them a set of millisecond controls: click hold, inter-key delay, drag press, drag step, paste settle, scroll tick. That is the difference between a remote desktop that swallows your input and one that accepts it, and it is tunable per call rather than per install. action_queue runs a list of those actions in one round trip, and task_complete and task_failed end the run with a summary or a reason instead of leaving the caller to infer how it went.
What it is
A VNC input driver behind four tools: a single action command, a queue that runs a list of them, and two terminators that report the task done or failed.
What you get
- One action per call over VNC: pointer position, drag origin and destination, scroll direction and amount, keys, key combinations and typed text
- Timing set per step in milliseconds — how long a click is held, the gap between keystrokes, how long a drag presses before it moves and how long it settles after
- A list of actions queued and executed in a single call
- An explicit end to the run, with a summary when it worked and a reason when it did not
Requirements
A reachable VNC server — VNC_HOST, VNC_PORT, VNC_USERNAME and VNC_PASSWORD — and the daemon it drives, given by CLAUDE_KVM_DAEMON_PATH with CLAUDE_KVM_DAEMON_PARAMETERS.
Setup effort
One command — npx -y claude-kvm
USE CASES
Driving a machine that only answers on VNC
Move the pointer, click, drag, press a combination or type into whatever is on the remote screen, adjusting the hold and settle timings when the far end is slow to register input.
Replaying a fixed sequence of clicks and keystrokes in one call
Hand over the whole list of actions at once when the sequence is known in advance, rather than paying a round trip for each step.
Closing out the run with a result the caller can read
End deliberately: a summary of what was carried out when it worked, or the reason it could not be finished when it did not.
4 tools
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
task_completetask_failedvnc_commandBEFORE YOU INSTALL
What to know first
Tools you get
4 tools when we connected. Only vnc_command is documented; action_queue, task_complete and task_failed are not. screenshot, mouse_click, key_combo, configure and similar names are action values for vnc_command, not tools.
Requires
- npx on PATH
- macOS on Apple Silicon
- claude-kvm-daemon, installed with Homebrew
- VNC_HOST in your environment
- VNC_PORT in your environment
- CLAUDE_KVM_DAEMON_PATH in your environment
CONTEXT COST
Light Standing cost
Rated by the size of the 4 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
Connect your client
Server setup
npx -y claude-kvmMCP Clients
Any MCP client
Install the daemon (Homebrew)
brew tap ARAS-Workspace/tap
brew install claude-kvm-daemonCreate a .mcp.json file in your project directory
Set VNC_HOST, VNC_PORT, VNC_USERNAME and VNC_PASSWORD for the machine you are controlling. CLAUDE_KVM_DAEMON_PATH points at the daemon and can be left out if it is already on PATH.
{
"mcpServers": {
"claude-kvm": {
"command": "npx",
"args": [
"-y",
"claude-kvm"
],
"env": {
"VNC_HOST": "192.168.1.100",
"VNC_PORT": "5900",
"VNC_USERNAME": "user",
"VNC_PASSWORD": "pass",
"CLAUDE_KVM_DAEMON_PATH": "/opt/homebrew/bin/claude-kvm-daemon",
"CLAUDE_KVM_DAEMON_PARAMETERS": "-v"
}
}
}
}