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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KultivatorConsulting/pikvm_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server