Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NANOKVM_HOST | Yes | NanoKVM IP address or hostname | |
| NANOKVM_PASS | No | Web UI password | admin |
| NANOKVM_USER | No | Web UI username | admin |
| NANOKVM_HTTPS | No | Use HTTPS instead of HTTP | false |
| NANOKVM_SCREEN_WIDTH | No | Target screen width in pixels | 1920 |
| NANOKVM_SCREEN_HEIGHT | No | Target screen height in pixels | 1080 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nanokvm_power | Control the target machine's power.
Args:
action: Power action to perform
- "power": Short press power button (800ms) - normal on/off
- "power_long": Long press power button (5000ms) - force off
- "reset": Press reset button (DEPRECATED for Pi 5 - use power_cycle)
Note: Raspberry Pi 5 has NO hardware reset button. The "reset" action
will not work on Pi 5. Use nanokvm_power_cycle() instead. |
| nanokvm_power_cycle | Power cycle the target machine (force off, wait, power on).
This is the recommended way to "reset" a Raspberry Pi 5 since
it has no hardware reset button. The sequence is:
1. Force power off (5 second button hold)
2. Wait for specified duration
3. Power on (short button press)
Args:
off_duration_ms: Time to wait after power off before powering on (ms).
Default 3000ms (3 seconds) ensures clean power cycle.
Use longer values (5000+) if you have slow storage.
Returns:
Status message indicating power cycle completion |
| nanokvm_led_status | Get the power and HDD LED status of the target machine.
Returns:
Dictionary with 'pwr' and 'hdd' boolean values indicating LED states.
- pwr: True if power LED is on (machine is powered)
- hdd: True if HDD LED is on (disk activity) |
| nanokvm_hdmi_status | Get HDMI connection status and resolution.
Returns:
Dictionary with HDMI state including:
- connected: Whether HDMI signal is detected
- width: Video width in pixels
- height: Video height in pixels |
| nanokvm_hdmi_reset | Reset the HDMI connection. Useful if video is not displaying correctly. |
| nanokvm_send_text | Type text on the target machine via keyboard emulation.
Uses the NanoKVM paste API which is faster than individual key presses.
Maximum 1024 characters per call.
Args:
text: The text to type (max 1024 characters)
language: Keyboard layout - "" for US QWERTY, "de" for German |
| nanokvm_send_key | Send a single key press to the target machine.
Args:
key: Key to press. Can be:
- Named keys: enter, escape, tab, backspace, delete, space
- Function keys: f1, f2, ..., f12
- Arrow keys: up, down, left, right
- Navigation: home, end, pageup, pagedown, insert
- Single characters: a, b, 1, 2, etc.
ctrl: Hold Ctrl modifier
shift: Hold Shift modifier
alt: Hold Alt modifier
meta: Hold Meta/Windows/Command modifier |
| nanokvm_tap | Tap at a specific screen position (touchscreen/mouse emulation).
Coordinates are in screen pixels based on NANOKVM_SCREEN_WIDTH and
NANOKVM_SCREEN_HEIGHT environment variables.
Args:
x: X coordinate (0 = left edge, screen_width = right edge)
y: Y coordinate (0 = top edge, screen_height = bottom edge) |
| nanokvm_click | Click a mouse button, optionally at a specific position.
Args:
button: Mouse button - "left", "right", or "middle"
x: Optional X coordinate to move to before clicking
y: Optional Y coordinate to move to before clicking |
| nanokvm_move | Move mouse cursor to absolute screen position.
Args:
x: X coordinate (0 = left edge)
y: Y coordinate (0 = top edge) |
| nanokvm_scroll | Scroll the mouse wheel.
Args:
amount: Scroll amount. Positive = scroll down, negative = scroll up. |
| nanokvm_screenshot | Capture a screenshot from the target machine's display.
Returns the screenshot as a JPEG image that can be displayed or analyzed.
By default, 4K images are resized to 1080p to keep the response size
manageable.
Args:
max_width: Maximum width in pixels (default 1920, use 0 for no limit)
max_height: Maximum height in pixels (default 1080, use 0 for no limit)
quality: JPEG quality 1-100 (default 80)
Returns:
JPEG image of the current display |
| nanokvm_list_images | List available ISO images on the NanoKVM device.
Returns:
List of available images with file paths and metadata |
| nanokvm_mount_iso | Mount an ISO image for the target machine.
The target machine will see this as an attached CD-ROM or USB disk.
Args:
file: Path to ISO file on the NanoKVM device
as_cdrom: Mount as CD-ROM (True) or USB disk (False) |
| nanokvm_unmount_iso | Unmount the currently mounted ISO image. |
| nanokvm_mounted_image | Get information about the currently mounted ISO image.
Returns:
Dictionary with mounted image info, or None if nothing mounted |
| nanokvm_reset_hid | Reset the HID (keyboard/mouse) devices. Use this if keyboard or mouse input stops working. |
| nanokvm_info | Get NanoKVM device information.
Returns:
Dictionary with device info including IP, firmware version, etc. |
| nanokvm_hardware | Get NanoKVM hardware information.
Returns:
Dictionary with hardware details |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |