PiKVM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PIKVM_HOST | Yes | The URL of your PiKVM device (e.g., https://192.168.1.100) | |
| PIKVM_PASSWORD | Yes | Password for PiKVM authentication | |
| PIKVM_USERNAME | Yes | Username for PiKVM authentication (default: admin) | |
| PIKVM_VERIFY_SSL | No | Whether to verify SSL certificate (default: false) | false |
| PIKVM_DEFAULT_KEYMAP | No | Default keyboard keymap (default: en-us) | en-us |
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
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pikvm_screenshotA | Capture a screenshot from the PiKVM video stream. Returns the current screen as a JPEG image. |
| pikvm_get_resolutionA | Get the current screen resolution of the remote machine. Useful for knowing valid coordinate ranges for mouse operations. |
| pikvm_typeA | Type text on the remote machine using PiKVM. Handles special characters correctly via keymap conversion. |
| pikvm_keyB | Send a key or key combination to the remote machine. Use JavaScript key codes (e.g., KeyA, Enter, ControlLeft). |
| pikvm_shortcutA | Send a keyboard shortcut (multiple keys pressed simultaneously). Example: Ctrl+Alt+Delete |
| pikvm_mouse_moveA | Move the mouse cursor to a position on the remote machine. For absolute moves, coordinates are in screen pixels (0,0 = top-left). For relative moves, deltas are clamped to -127 to 127. |
| pikvm_mouse_clickB | Click a mouse button on the remote machine. Optionally move to a pixel position first. |
| pikvm_mouse_scrollC | Scroll the mouse wheel on the remote machine. |
| pikvm_calibrateA | Start mouse coordinate calibration. Moves cursor to screen center and returns expected position. Take a screenshot after calling this to visually verify actual cursor position, then call pikvm_set_calibration with calculated factors. |
| pikvm_set_calibrationA | Set mouse coordinate calibration factors. Calculate factors as: factorX = expected_x / actual_x, factorY = expected_y / actual_y. For example, if calibration moved cursor to expected (960, 540) but it landed at (720, 405), factors would be 960/720=1.33 and 540/405=1.33. |
| pikvm_get_calibrationA | Get current mouse calibration state. Returns null if not calibrated. |
| pikvm_clear_calibrationA | Clear mouse calibration, reverting to uncalibrated mode. |
| pikvm_auto_calibrateA | Automatically calibrate mouse coordinates by detecting the cursor position via screenshot diffing. This is more accurate than manual calibration. Moves the mouse multiple times, compares screenshots to find the cursor, and computes calibration factors. Other tools are blocked during calibration. |
| skill_take_screenshotC | Guide for capturing screenshots with pikvm_screenshot |
| skill_check_resolutionC | Guide for checking screen resolution with pikvm_get_resolution |
| skill_type_textC | Guide for typing text with pikvm_type |
| skill_send_keyD | Guide for sending keys with pikvm_key |
| skill_send_shortcutD | Guide for sending keyboard shortcuts with pikvm_shortcut |
| skill_move_mouseC | Guide for moving the mouse with pikvm_mouse_move |
| skill_click_elementC | Guide for clicking with pikvm_mouse_click |
| skill_auto_calibrateC | Guide for automatic mouse calibration with pikvm_auto_calibrate |
| skill_scroll_pageC | Guide for scrolling with pikvm_mouse_scroll |
| skill_setup_session_workflowB | Step-by-step procedure for initializing a PiKVM session |
| skill_calibrate_mouse_workflowA | Step-by-step procedure for calibrating mouse coordinates |
| skill_auto_calibrate_mouse_workflowC | Step-by-step procedure for automatic mouse calibration |
| skill_click_ui_element_workflowB | Step-by-step procedure for finding and clicking a UI element |
| skill_fill_form_workflowC | Step-by-step procedure for filling in a form on screen |
| skill_navigate_desktop_workflowC | Step-by-step procedure for navigating a desktop environment |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| take-screenshot | Guide for capturing screenshots with pikvm_screenshot |
| check-resolution | Guide for checking screen resolution with pikvm_get_resolution |
| type-text | Guide for typing text with pikvm_type |
| send-key | Guide for sending keys with pikvm_key |
| send-shortcut | Guide for sending keyboard shortcuts with pikvm_shortcut |
| move-mouse | Guide for moving the mouse with pikvm_mouse_move |
| click-element | Guide for clicking with pikvm_mouse_click |
| auto-calibrate | Guide for automatic mouse calibration with pikvm_auto_calibrate |
| scroll-page | Guide for scrolling with pikvm_mouse_scroll |
| setup-session-workflow | Step-by-step procedure for initializing a PiKVM session |
| calibrate-mouse-workflow | Step-by-step procedure for calibrating mouse coordinates |
| auto-calibrate-mouse-workflow | Step-by-step procedure for automatic mouse calibration |
| click-ui-element-workflow | Step-by-step procedure for finding and clicking a UI element |
| fill-form-workflow | Step-by-step procedure for filling in a form on screen |
| navigate-desktop-workflow | Step-by-step procedure for navigating a desktop environment |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Many skill_ tools directly duplicate the functionality of pikvm_ tools (e.g., skill_auto_calibrate vs pikvm_auto_calibrate), causing ambiguity. Also, skill tools like 'skill_click_element' and 'skill_click_ui_element_workflow' overlap, making it hard to distinguish between documentation and actual actions.
Two distinct naming prefixes exist: pikvm_ (consistent verb_noun) and skill_ (inconsistent mix of 'guide', 'workflow', and action descriptions). While each prefix is internally consistent, the mix creates confusion and breaks a unified pattern.
28 tools is somewhat high for the domain. The actual action tools are about 12, and the remaining 16 are skill guides that could be consolidated into tool descriptions or fewer workflow tools. The count feels inflated.
Core actions for remote mouse, keyboard, screenshots, and calibration are covered. However, missing essential PiKVM features like power control, video settings, or media mounting leave some gaps. The skill tools provide workflow guidance but don't add functional breadth.