Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARKKVM_HOSTYesHost of the ArkKVM device, e.g. 192.168.1.50 or https://arkkvm.example
ARKKVM_PASSWORDNoRequired when the device has a local password (auth mode is detected automatically).
ARKKVM_VERIFY_TLSNo1 to verify the device certificate when using https://
ARKKVM_IDLE_TIMEOUTNoSeconds without tool calls before the session is released (0 = never)120
ARKKVM_KEY_DELAY_MSNoDelay between HID reports15
ARKKVM_SETTLE_MAX_MSNoMax time screenshot waits for the picture to stop changing (animations, H.264 sharpening)2000
ARKKVM_KEYBOARD_LAYOUTNoDefault layout for type_text (us, de)us
ARKKVM_SCREENSHOT_WIDTHNoDefault screenshot width and coordinate space before the first screenshot1280
ARKKVM_ALLOW_DANGEROUS_RPCNo1 allows factory reset, network changes, … through rpc_call

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
screenshotA

Capture the target computer's screen (HDMI input) as JPEG.

max_width: downscale to this width (0 = native resolution). Mouse tools use the
coordinate space of the most recent screenshot.
wait_ms: extra wait before capturing. The tool already waits (up to ARKKVM_SETTLE_MAX_MS)
until the picture stops changing, so this is rarely needed.
move_mouseB

Move the mouse pointer to (x, y) in screenshot pixel coordinates.

clickB

Click at (x, y) in screenshot pixel coordinates. count=2 for a double click.

dragC

Press at (x1, y1), move to (x2, y2) and release.

scrollC

Scroll at (x, y). Negative amount scrolls down (or left), positive up (or right).

type_textA

Type text on the target as keystrokes. '\n' presses Enter, '\t' Tab.

layout: keyboard layout configured on the TARGET OS ('us' or 'de'); defaults to
ARKKVM_KEYBOARD_LAYOUT. In BIOS/UEFI the layout is usually 'us'.
press_keysA

Press a key or key combination, e.g. 'enter', 'f2', 'esc', 'ctrl+alt+delete', 'super+r', 'alt+f4', 'shift+tab', 'down'. Keys use US physical positions.

repeat: press the combination this many times (e.g. 'down' x5 in a boot menu).
hold_ms: keep the keys pressed this long (e.g. to hold F12 during POST).
powerA

Press the target's ATX buttons (requires the ArkKVM ATX board wired to the mainboard).

power-short: short press of the power button (power on / ACPI shutdown).
power-long: hold power (~5 s, hard power off). reset: press the reset button.
wake_on_lanB

Send a Wake-on-LAN magic packet from the KVM to the given MAC address.

mount_media_urlA

Attach an ISO/IMG reachable over HTTP(S) as a read-only virtual USB CD-ROM or disk.

cdrom: optical drive, most compatible in BIOS/UEFI and for Windows installers.
disk: USB stick, faster, suits Linux/modern installers. Changing the mode re-enumerates
the KVM's USB devices; detach_usb_drive=true allows detaching the KVM's file-transfer
'Virtual USB Drive' from the host when that blocks the switch.
list_mediaB

List images stored on the KVM's internal storage, free space and what is mounted now.

mount_media_storageB

Attach an image stored on the KVM (see list_media) as a read-only virtual USB CD-ROM or disk. Mode semantics and detach_usb_drive as in mount_media_url.

unmount_mediaA

Detach the currently mounted virtual media.

usb_drive_statusA

Status of the KVM's Virtual USB Drive (FAT file-transfer drive): enabled, where it is attached ('host' = USB stick on the target, 'kvm' = files accessible via these tools, 'none') and, when attached to the KVM, its capacity.

usb_drive_attachA

Attach the Virtual USB Drive to the target computer ('host', appears as a USB stick), to the KVM ('kvm', needed for usb_drive_list/upload/download/delete) or detach it ('none'). The drive is only ever attached to one side. After attaching to the host, wait a few seconds before the OS shows it; drive letters can change.

usb_drive_listC

List a directory on the Virtual USB Drive. Requires the drive attached to the KVM.

usb_drive_uploadA

Copy a file onto the Virtual USB Drive, e.g. remote_path='/drivers/setup.exe'. Source is either local_path (a file on the machine running this MCP server) or content (text, written as UTF-8). Missing parent folders are created.

usb_drive_downloadA

Read a file from the Virtual USB Drive. With local_path it is saved there (on the machine running this MCP server); without, text files up to 100 KB are returned inline.

usb_drive_deleteA

Delete a file or folder on the Virtual USB Drive. Folders that are not empty are only deleted with recursive=true (the firmware deletes folders including their contents).

statusB

Report KVM status: firmware, HDMI/video signal, USB attachment, virtual media, keyboard LEDs and last known ATX LED state.

rpc_callA

Advanced: call any ArkKVM JSON-RPC method (e.g. getNetworkState, getEDID, getStorageSpace, listStorageFiles, setJigglerState). Destructive/configuration methods are blocked unless ARKKVM_ALLOW_DANGEROUS_RPC=1.

release_sessionA

Disconnect from the KVM now so the web UI can be used without being taken over.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 22 tools

Disambiguation4/5

Most tools map to distinct actions: input control (move_mouse, click, drag, scroll, type_text, press_keys), power, media mounting, and USB drive management are clearly separated. The only mild overlaps are mount_media_url vs mount_media_storage (differentiated by source) and status vs usb_drive_status (differentiated by scope), and the descriptions resolve both.

Naming Consistency4/5

Consistent snake_case everywhere, with predictable verb_noun patterns for the usb_drive_* and mount_media_* families. A few tools are bare nouns/verbs (screenshot, click, drag, scroll, power, status), which is a minor but readable deviation from a strict verb_noun convention.

Tool Count4/5

22 tools is on the heavier side, but the domain is genuinely broad (video capture, HID input, ATX power, virtual media, USB file transfer, status). Each tool covers a distinct operation rather than padding, though it sits near the upper comfortable bound.

Completeness4/5

Strong coverage of the KVM lifecycle: capture, input, power/WOL, media mount/list/unmount, and full USB-drive CRUD (status, attach, list, upload, download, delete), plus a raw rpc_call escape hatch for advanced/configuration methods. Minor gaps like clipboard or video-recording are largely reachable via rpc_call.

Maintenance

ActivityMaintained
ResponsivenessNo issues