Skip to main content
Glama

PiKVM MCP Server

SonarQube Cloud

MCP Badge

Give AI agents hands. This MCP server connects Claude Code (or any MCP client) directly to a PiKVM device, giving AI full keyboard, mouse, and screen access to a physical machine -- no browser automation, no virtual desktops, no emulators.

Point it at real hardware. Let the AI see the screen, type commands, click buttons, and navigate GUIs on a machine it could never otherwise touch.

Automatic Mouse Calibration

IP-KVM devices translate mouse coordinates through multiple layers — USB HID emulation, host-side input drivers, display scaling — each introducing positional error. Existing KVM products either ignore this (requiring manual correction) or offer limited auto-sync that only detects cursor acceleration in a fixed corner region.

This MCP server takes a different approach. The pikvm_auto_calibrate tool uses a vision-based algorithm that:

  1. Moves the cursor a known distance across multiple randomized screen positions

  2. Diffs screenshot pairs to isolate the cursor via connected-component analysis

  3. Computes correction factors from detected vs commanded movement using median aggregation

  4. Self-verifies by moving to target positions and confirming the cursor lands within 20px

The entire process runs in ~30-60 seconds with no human intervention. Noisy screens (tooltips, animations, dynamic content) are handled through multi-round sampling, ratio divergence filtering, and outlier-resistant statistics — the algorithm discards bad data and still converges on accurate factors.

This is the first IP-KVM tooling — commercial or open source — to implement fully automated mouse coordinate calibration via computer vision. It is what makes precise AI-driven mouse control over a network KVM practical.

See it in action

The video below shows Claude Code using this MCP server to autonomously interact with a Raspberry Pi desktop: taking a screenshot to identify the OS, opening a text editor from the menu, typing text, and closing the application -- all through the PiKVM hardware interface.

Demo Video

This next demonstration shows Claude, connected via the PiKVM MCP server, responding to a natural language prompt to auto-calibrate its mouse coordinate scaling before performing a series of precision mouse tasks on a remote machine. The session concludes with Claude autonomously drawing a house in MS Paint — a simple but effective showcase of accurate, AI-driven input control over an isolated system.

Demo Video

Features

  • Automatic mouse calibration — Vision-based cursor detection computes coordinate correction factors with no manual measurement. The first fully automated calibration for IP-KVM.

  • Screenshot capture — Get current screen as JPEG image

  • Text typing — Type text with proper special character handling via keymaps

  • Keyboard control — Send individual keys or key combinations (e.g., Ctrl+Alt+Delete)

  • Mouse control — Move, click, and scroll with calibrated coordinate correction

Related MCP server: qemu-mcp-server

Installation

npm install
npm run build

Configuration

Copy .env.example to .env and configure:

cp .env.example .env

Edit .env:

PIKVM_HOST=https://<your-pikvm-ip>
PIKVM_USERNAME=admin
PIKVM_PASSWORD=your_password
PIKVM_VERIFY_SSL=false
PIKVM_DEFAULT_KEYMAP=en-us

Usage with Claude Code

Requires Node.js 18+. This server uses ES modules. If node --version shows an older version, replace "command": "node" with the full path to a compatible binary (e.g. "/usr/local/bin/node" or your nvm path like "~/.nvm/versions/node/v22.x.x/bin/node"). This is common when nvm's default alias points to an older version.

Add to your Claude Code MCP settings (~/.config/claude-code/settings.json or via the settings UI):

{
  "mcpServers": {
    "pikvm": {
      "command": "node",
      "args": ["/path/to/pikvm_mcp_server/dist/index.js"],
      "env": {
        "PIKVM_HOST": "https://<your-pikvm-ip>",
        "PIKVM_USERNAME": "admin",
        "PIKVM_PASSWORD": "your_password"
      }
    }
  }
}

Or if using the .env file:

{
  "mcpServers": {
    "pikvm": {
      "command": "node",
      "args": ["/path/to/pikvm_mcp_server/dist/index.js"]
    }
  }
}

Available Tools

Display

  • pikvm_screenshot - Capture current screen as JPEG (optional: maxWidth, maxHeight, quality)

  • pikvm_get_resolution - Get screen resolution and valid coordinate ranges

Keyboard

  • pikvm_type - Type text with keymap-aware special character handling (required: text; optional: keymap, slow, delay)

  • pikvm_key - Send a key or key combo, e.g. Ctrl+Alt+Del (required: key; optional: modifiers, state)

  • pikvm_shortcut - Send multiple keys pressed simultaneously (required: keys array)

Mouse

  • pikvm_mouse_move - Move cursor to absolute pixel position or relative delta (required: x, y; optional: relative)

  • pikvm_mouse_click - Click a mouse button, optionally at a position (optional: button, x, y, state)

  • pikvm_mouse_scroll - Scroll the mouse wheel (required: deltaY; optional: deltaX)

Calibration

  • pikvm_auto_calibrate - Automatically detect cursor and compute calibration factors (preferred)

  • pikvm_calibrate - Start manual calibration by moving cursor to screen center for visual verification

  • pikvm_set_calibration - Apply correction factors calculated from calibration (required: factorX, factorY)

  • pikvm_get_calibration - Get current calibration state

  • pikvm_clear_calibration - Reset to uncalibrated mode

Skills (Prompts & Skill Tools)

The server exposes 15 skills that provide structured guidance for agents. Each skill is available via two discovery paths:

  • MCP Promptsprompts/list / prompts/get for clients that support the Prompts capability.

  • Skill Toolstools/list / tools/call as skill_* read-only tools, ensuring visibility in marketplaces (e.g. LobeHub) that index tools only.

Tool Guides

Prompt Name

Skill Tool

Description

take-screenshot

skill_take_screenshot

Capturing screenshots with pikvm_screenshot

check-resolution

skill_check_resolution

Checking screen resolution with pikvm_get_resolution

type-text

skill_type_text

Typing text with pikvm_type

send-key

skill_send_key

Sending keys with pikvm_key

send-shortcut

skill_send_shortcut

Sending keyboard shortcuts with pikvm_shortcut

move-mouse

skill_move_mouse

Moving the mouse with pikvm_mouse_move

click-element

skill_click_element

Clicking with pikvm_mouse_click

scroll-page

skill_scroll_page

Scrolling with pikvm_mouse_scroll

auto-calibrate

skill_auto_calibrate

Automatic mouse calibration with pikvm_auto_calibrate

Workflow Recipes

Prompt Name

Skill Tool

Arguments

Description

setup-session-workflow

skill_setup_session_workflow

Initialize a PiKVM session

calibrate-mouse-workflow

skill_calibrate_mouse_workflow

Calibrate mouse coordinates

click-ui-element-workflow

skill_click_ui_element_workflow

element_description (required)

Find and click a UI element

fill-form-workflow

skill_fill_form_workflow

form_description (optional)

Fill in a form on screen

navigate-desktop-workflow

skill_navigate_desktop_workflow

goal (required)

Navigate a desktop environment

auto-calibrate-mouse-workflow

skill_auto_calibrate_mouse_workflow

Automatic mouse calibration

See docs/skills/ for detailed human-readable guides.

Key Codes Reference

Common key codes for pikvm_key and pikvm_shortcut:

  • Letters: KeyA, KeyB, ... KeyZ

  • Numbers: Digit0, Digit1, ... Digit9

  • Function keys: F1, F2, ... F12

  • Modifiers: ShiftLeft, ShiftRight, ControlLeft, ControlRight, AltLeft, AltRight, MetaLeft, MetaRight

  • Special: Enter, Escape, Backspace, Tab, Space, Delete, Insert, Home, End, PageUp, PageDown

  • Arrows: ArrowUp, ArrowDown, ArrowLeft, ArrowRight

License

GPL-3.0 - See LICENSE for details.

Available Tools

28 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
roundsNoNumber of sampling rounds (default: 5)
verifyRoundsNoNumber of verification rounds (default: 5)
moveDelayMsNoDelay in ms after each mouse move for capture to settle (default: 300). Increase if calibration fails on slow connections.
mergeRadiusNoRadius in pixels for merging nearby clusters (e.g., cursor + drop shadow). Default: 30.
minSamplesNoMinimum valid samples required for calibration to succeed. Default: 3.
maxRatioDivergenceNoMaximum allowed divergence between X and Y ratios within a single round. Rejects noisy rounds where ratios are incoherent. Default: 0.5.
verboseNoLog per-round debug data (centroid positions, accept/reject reasons). Default: false.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool moves the mouse multiple times, compares screenshots, blocks other tools, and computes calibration factors. This covers key behavioral traits, though it could mention duration or whether it writes calibration data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences are efficient and front-loaded: first states purpose, second adds advantage, third describes process and constraint. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 optional parameters with full schema coverage and no output schema, the description adequately explains the tool's purpose, process, and blocking behavior. It could mention the output (e.g., calibration factors stored), but remains reasonably complete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds minimal value beyond the schema. All parameters have descriptions in the schema, and the tool description does not provide additional semantic context. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the purpose: automatically calibrate mouse coordinates via screenshot diffing. It distinguishes from manual calibration, mentions the process (moves mouse, compares screenshots, computes factors), and uses specific verb+resource. Siblings like pikvm_calibrate are differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description notes it is more accurate than manual calibration, implying preferred usage. It also warns that other tools are blocked during calibration, providing a usage constraint. However, it does not explicitly state when not to use or list alternatives beyond the implicit comparison to manual.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description shoulders the burden. It explains the cursor movement and expected return, plus suggests verification via screenshot. Lacks details on side effects or permissions but is transparent about core action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Front-loaded with purpose, then procedural guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless calibration starter with no output schema, the description covers the key aspects: what it does, what to expect, and the next step. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. Baseline 4 applies. Description adds value by explaining the tool's purpose and output beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts mouse calibration, moves cursor to center, and returns expected position. It distinguishes from siblings like pikvm_auto_calibrate and pikvm_set_calibration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear step-by-step workflow: call this, take a screenshot, then call pikvm_set_calibration. It does not explicitly compare to alternatives but implies a manual calibration process.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_clear_calibrationA

Clear mouse calibration, reverting to uncalibrated mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must itself disclose behavioral traits. It states that the tool reverts to uncalibrated mode, indicating it is a mutation operation. However, it does not mention any potential side effects or prerequisites. The description is adequate for a simple parameterless tool but lacks detail about persistence or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundant words. It front-loads the action and outcome concisely, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema and a straightforward action, the description is complete. It conveys the essential information for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter information. The baseline score for zero parameters is 4, and the description adds value by clarifying the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Clear mouse calibration, reverting to uncalibrated mode' uses a specific verb ('Clear') and resource ('mouse calibration'), making the action immediately understandable. It clearly distinguishes from siblings like pikvm_set_calibration or pikvm_get_calibration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as pikvm_auto_calibrate or pikvm_calibrate. Given the number of calibration-related siblings, explicit usage context would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_get_calibrationA

Get current mouse calibration state. Returns null if not calibrated.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries full burden. It discloses the return behavior (null if not calibrated), but does not mention any other behavioral aspects like idempotency, side effects, or permission requirements. Minimal but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence that is front-loaded and contains every piece of information needed. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return value (calibration state, null if not calibrated). However, it does not specify the format of a non-null calibration state (e.g., an object with coordinates). Slightly incomplete but sufficient for a simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description need not add parameter info. With 0 parameters, baseline is 4. The description does not add anything beyond the schema, but that is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: getting the current mouse calibration state. It distinguishes itself from sibling calibration tools (pikvm_calibrate, pikvm_set_calibration, etc.) by implying it is a read-only retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives (e.g., when to check calibration before calibrating). No when-not-to-use or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_get_resolutionA

Get the current screen resolution of the remote machine. Useful for knowing valid coordinate ranges for mouse operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read operation with no side effects, but the description does not explicitly declare it as safe or non-destructive. It adds some context about usage but lacks explicit behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the purpose and using the second sentence for context. No fluff or redundancy; every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain the return format. It only says 'resolution' without specifying whether it is a string like '1920x1080' or an object with width and height. This gap could hinder correct downstream usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is 100%. The description does not need to explain parameters. According to instructions, baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the screen resolution, using specific verb 'Get' and resource 'screen resolution'. It is well-distinguished from sibling tools like pikvm_screenshot or pikvm_mouse_move, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at usage by noting it's 'useful for knowing valid coordinate ranges for mouse operations', but does not explicitly state when to use this tool versus alternatives, nor when not to use it. It provides context but lacks exclusions or explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_keyB

Send a key or key combination to the remote machine. Use JavaScript key codes (e.g., KeyA, Enter, ControlLeft).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey code (e.g., KeyA, Enter, Escape, F1)
modifiersNoModifier keys to hold (e.g., ["ControlLeft", "AltLeft"])
stateNoKey state: press (hold), release, or click (press+release, default)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description lacks behavioral details such as blocking behavior, prerequisites (e.g., active PiKVM session), key repeat behavior, or side effects. The description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the action and key elements. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low complexity (3 params, no output schema), the description omits important context like the need for an active session, error handling, and behavior of modifier combinations. Incomplete for a new user.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by specifying JavaScript key codes and giving examples, but does not further clarify parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends keys or key combinations to a remote machine using JavaScript key codes, with examples. It distinguishes itself from sibling tools like pikvm_type (for typing text) and pikvm_shortcut (for common shortcuts) by focusing on individual key codes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like pikvm_type or pikvm_shortcut. The description does not mention exclusion criteria or context-specific recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_mouse_clickB

Click a mouse button on the remote machine. Optionally move to a pixel position first.

ParametersJSON Schema
NameRequiredDescriptionDefault
buttonNoMouse button to click (default: left). "up" and "down" are scroll wheel buttons.
xNoX pixel coordinate to move to before clicking (optional)
yNoY pixel coordinate to move to before clicking (optional)
stateNoButton state: press (hold), release, or click (default)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It only states that the tool optionally moves before clicking, but omits details like button hold behavior, error handling, required permissions, or what happens if coordinates are invalid. The minimal info is insufficient for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded 14-word sentence that conveys the core function without any superfluous words. Every part is necessary and immediately useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool is simple, the description lacks completeness. It does not mention return values (no output schema), error conditions, or prerequisites like calibration. For a physical action tool, more context about behavior and constraints is needed to ensure correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage of parameters with descriptions. The description adds marginal value by noting 'Optionally move to a pixel position first' for x/y, but does not enrich button or state beyond the schema. Given high schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool clicks a mouse button on a remote machine, with optional movement to a pixel position. This verb+resource structure is specific and distinguishes it from siblings like pikvm_mouse_move (only move) and pikvm_mouse_scroll (scroll).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios like needing a simple click vs move operation, nor does it reference siblings or specify prerequisites (e.g., calibration). This leaves the agent with insufficient context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate in pixels (absolute) or delta pixels (relative)
yYesY coordinate in pixels (absolute) or delta pixels (relative)
relativeNoIf true, move relative to current position (delta -127 to 127). Default: false (absolute pixel position)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description adds behavioral details: absolute moves use screen pixels, relative moves clamp deltas to -127 to 127. However, it does not disclose potential side effects or limitations (e.g., out-of-bounds coordinates) beyond what the schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the primary action, second clarifies coordinate semantics. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description focuses on input behavior. It adequately covers the move operation but could mention return values or prerequisites (e.g., calibration). Given sibling richness, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by explaining that relative moves clamp deltas to -127 to 127, which is not in the schema descriptions. This extra context helps the agent select appropriate values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'move' and resource 'mouse cursor to a position on the remote machine.' It specifies absolute vs relative moves with coordinate system details, distinguishing it from sibling tools like pikvm_mouse_click and pikvm_mouse_scroll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains absolute and relative move modes but does not explicitly state when to use this tool versus alternatives like pikvm_mouse_click or pikvm_mouse_scroll. Usage context is implied but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_mouse_scrollC

Scroll the mouse wheel on the remote machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
deltaXNoHorizontal scroll amount (negative = left, positive = right)
deltaYYesVertical scroll amount (negative = up, positive = down)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It only states 'scroll the mouse wheel' and does not mention horizontal/vertical scrolling capabilities, speed, or limitations. The schema descriptions for deltaX and deltaY provide some detail, but the description adds nothing beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise but arguably too short. It is front-loaded but lacks substance that could be added without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description is minimal. It does not mention return values or confirmation of action. With many sibling tools, the description should provide more context to help the agent choose correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The tool description does not add any additional meaning to the parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scrolls the mouse wheel, but it does not distinguish itself from sibling tools like pikvm_mouse_move or skill_scroll_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as pikvm_mouse_move for moving the cursor or skill_scroll_page for scrolling. The agent must infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_screenshotA

Capture a screenshot from the PiKVM video stream. Returns the current screen as a JPEG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxWidthNoMaximum width of the screenshot in pixels (optional, for preview)
maxHeightNoMaximum height of the screenshot in pixels (optional, for preview)
qualityNoJPEG quality 1-100 (optional, default 80)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It correctly indicates the tool is read-only and returns an image, implying no destructive side effects. Could be more specific about potential delays or resolution limits, but overall adequate for a simple capture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. Front-loaded with verb and resource. Efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description properly states the return type (JPEG image). For a straightforward tool, it covers essential information. Minor omission: default quality and preview behavior are only in schema, but context is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear descriptions for all three parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('capture a screenshot'), source ('PiKVM video stream'), and output ('JPEG image'). Differentiates from calibration and mouse tools, but does not explicitly distinguish from the sibling 'skill_take_screenshot', which may be a higher-level workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like skill_take_screenshot or other PiKVM tools. The description omits context such as prerequisites (e.g., connection status) or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
factorXYesX-axis calibration factor (typically 1.0-1.5)
factorYYesY-axis calibration factor (typically 1.0-1.5)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the calculation formula and example, but lacks information on side effects (e.g., whether it overrides existing calibration, persists, or has boundaries). Since no annotations exist, the description should cover more behavioral context like persistence or safe ranges.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences plus an example. No wasted words; all information is directly relevant. Front-loaded with the action and formula.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations or output schema, the description is largely adequate for a simple calibration setter. It explains purpose, parameters, and usage scenario. Could mention how to revert or that values are applied immediately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema already describes parameters with coverage (100%), but the description adds value by explaining how to calculate the factors and providing a concrete example. This goes beyond the schema's typical range hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: setting mouse coordinate calibration factors. It uses specific verb-resource combination ('Set mouse coordinate calibration factors') and distinguishes from sibling tools that handle calibration differently (auto_calibrate, clear_calibration).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit example of when to use the calibration factors after a mismatch, but does not contrast with alternatives like pikvm_auto_calibrate. The example implies usage when auto calibration is off, but no explicit 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_shortcutA

Send a keyboard shortcut (multiple keys pressed simultaneously). Example: Ctrl+Alt+Delete

ParametersJSON Schema
NameRequiredDescriptionDefault
keysYesArray of key codes to press together (e.g., ["ControlLeft", "AltLeft", "Delete"])

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions that keys are pressed simultaneously, but does not describe key release behavior (e.g., hold vs. press-release), error handling, or whether it is a read-only or write operation. The example provides some context but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence followed by an example. Every part is informative and front-loaded. There is no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is mostly complete. It could mention valid key code formats or that it is a write operation, but the given information is sufficient for basic usage. With no annotations, a bit more context would be ideal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% as the parameter 'keys' has a description. The tool description adds an example (Ctrl+Alt+Delete) but does not provide additional meaning beyond the schema. The schema already explains the parameter, so the description adds minimal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a keyboard shortcut with multiple keys pressed simultaneously, using a specific verb and resource. It distinguishes itself from sibling tools like pikvm_key (single key) and pikvm_type (typing text) by emphasizing the simultaneous press aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an example but does not explicitly state when to use this tool versus alternatives like pikvm_key or skill_send_shortcut. The usage is implied from the name and description, but no when-not-to-use or alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pikvm_typeA

Type text on the remote machine using PiKVM. Handles special characters correctly via keymap conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to type
keymapNoKeyboard layout (default: en-us)
slowNoUse slow typing mode for compatibility
delayNoDelay between keystrokes in ms (0-200)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that special characters are handled via keymap conversion, but does not mention typing speed, application focus, or failure behavior. Adds some value beyond schema but insufficient for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no waste. Every word serves a purpose, clearly stating the function and a notable capability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks mention of return values or error conditions. No output schema exists, so the description should provide more context on what happens after typing (e.g., success indicator, duration). Adequate for a simple typing tool but incomplete for complex usage scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description's mention of 'keymap conversion' adds minor context to the keymap parameter but does not significantly enhance understanding beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (type text), the target (remote machine via PiKVM), and a key feature (handles special characters via keymap conversion). Distinguishes from siblings like pikvm_key and skill_type_text by specifying the mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as pikvm_key or skill_type_text. Lacks context for parameters like slow and delay, leaving the agent to infer usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_auto_calibrateC
Read-onlyIdempotent

Guide for automatic mouse calibration with pikvm_auto_calibrate

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, indicating safe behavior. The description adds 'Guide' context but does not explain the output or side effects. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence, concise but lacking sufficient information. It could be more informative without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, no output schema, and a vague description, the tool lacks completeness. The description does not clarify what the guide actually produces or how to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and schema coverage is 100%, so no additional parameter information is needed. The description does not add parameter semantics, but the baseline is high due to no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Guide for automatic mouse calibration with pikvm_auto_calibrate', which is ambiguous. It does not clearly state what the tool does (e.g., does it perform calibration or just provide textual guidance?). It also does not distinguish from sibling tools like pikvm_auto_calibrate or skill_auto_calibrate_mouse_workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no indication of prerequisites or context for using the guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_auto_calibrate_mouse_workflowC
Read-onlyIdempotent

Step-by-step procedure for automatic mouse calibration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not explain behavior beyond stating it's a procedure. Annotations indicate readOnlyHint=true, which contradicts the notion of calibration possibly modifying system state. The description fails to clarify this discrepancy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. However, it is under-specified but not verbose, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and a vague description, the tool lacks essential context. It does not explain what the procedure does, what it returns, or how it compares to siblings. Completeness is poor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. Per guidelines, baseline 4 applies. No additional semantic info is needed, but the description adds nothing beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Step-by-step procedure for automatic mouse calibration' gives a general idea but lacks specificity. It does not clearly state the outcome or distinguish from similar sibling tools like 'skill_auto_calibrate' and 'skill_calibrate_mouse_workflow'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With multiple calibration-related siblings, the absence of usage context makes it hard for an AI to select correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_calibrate_mouse_workflowA
Read-onlyIdempotent

Step-by-step procedure for calibrating mouse coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, destructive=false, idempotent=true. The description adds minor context (it's a step-by-step procedure), but does not elaborate on steps or effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and annotations covering safety, the description is adequate. It might benefit from specifying that it is a multi-step workflow, but it suffices for basic understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description need not explain them. Baseline of 4 is appropriate as schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calibrates mouse coordinates with 'Step-by-step procedure', indicating a workflow. However, it does not distinguish from sibling tools like pikvm_calibrate or skill_auto_calibrate_mouse_workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this workflow versus other calibration tools (e.g., pikvm_auto_calibrate). The description lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_check_resolutionC
Read-onlyIdempotent

Guide for checking screen resolution with pikvm_get_resolution

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no behavioral context—it doesn't confirm whether the tool actually calls pikvm_get_resolution or just returns instructions. It adds no value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is unclear and does not earn its place. It could be restructured to clearly state the tool's action and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description should at least explain what the tool returns or does concretely. It only references another tool ('pikvm_get_resolution') without clarifying its own behavior. The tool feels incomplete for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters, and schema description coverage is 100% (trivially). Baseline for 0 parameters is 4. The description does not need to add parameter info, but it could have explained the tool's self-contained nature. It doesn't contradict the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description calls itself a 'guide for checking screen resolution with pikvm_get_resolution', which is vague. It does not clearly state what the tool does—whether it executes the resolution check or provides instructions. The name 'skill_check_resolution' suggests an actionable workflow, but the description reads as a meta-reference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like pikvm_get_resolution or other skill_* tools. There is no mention of prerequisites, context, or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_click_elementC
Read-onlyIdempotent

Guide for clicking with pikvm_mouse_click

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description 'Guide for clicking' contradicts the annotations, which mark the tool as readOnlyHint: true and idempotentHint: true. A click typically modifies state, but annotations declare no side effects. This inconsistency misleads the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (6 words), which is concise but lacks structure. It is not a full sentence and omits critical information, making it insufficient for agent understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and the presence of many sibling tools, the description fails to explain the tool's role. It only mentions it is a guide, leaving the agent unaware of what the tool actually does or returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema description coverage. With no parameters, the baseline is 4; the description does not need to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Guide for clicking with pikvm_mouse_click' is vague and does not clearly state the tool's function. The name implies an action (click element), but the description suggests it is a guide, causing confusion and failing to distinguish from sibling tools like pikvm_mouse_click.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Sibling tools such as skill_click_ui_element_workflow or pikvm_mouse_click exist, but there is no comparison or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_click_ui_element_workflowB
Read-onlyIdempotent

Step-by-step procedure for finding and clicking a UI element

ParametersJSON Schema
NameRequiredDescriptionDefault
element_descriptionYesDescription of the UI element to click (e.g., "the Save button", "the File menu")

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds minimal behavioral context beyond stating it is a step-by-step procedure, which does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded but could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having good annotations and a complete schema, the description lacks detail about what the step-by-step procedure entails, potential side effects, or the return value. For a workflow tool, this is insufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter 'element_description', with a clear example. The description does not add any additional semantic meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a procedure for finding and clicking a UI element, which matches the name. However, it does not distinguish itself from the sibling 'skill_click_element', leaving ambiguity about whether this is a multi-step workflow or an atomic action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternative sibling tools like 'skill_click_element' or 'skill_fill_form_workflow'. The description offers no context for appropriate usage scenarios or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_fill_form_workflowC
Read-onlyIdempotent

Step-by-step procedure for filling in a form on screen

ParametersJSON Schema
NameRequiredDescriptionDefault
form_descriptionNoDescription of the form or the fields to fill in

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'filling in a form' which implies writing/mutation, but annotations declare readOnlyHint=true and idempotentHint=true, contradicting the implied behavior. This is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it may be too brief, lacking essential details. It earns a 4 for efficiency but not 5 due to insufficient informativeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a workflow tool with no output schema and complex behavior (filling forms across screens), the description lacks details on expected outcomes, prerequisites, or step-by-step behavior, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'form_description' is fully described in the schema (coverage 100%), and the description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a procedure for filling a form on screen, contrasting with sibling tools like 'skill_type_text' which are lower-level. It uses a specific verb and resource, but could be more precise about what constitutes a 'form'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or how it differs from individual input tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_move_mouseC
Read-onlyIdempotent

Guide for moving the mouse with pikvm_mouse_move

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, indicating a safe, read-only, idempotent operation. The description adds 'Guide', which aligns with read-only behavior but does not provide additional behavioral details beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and front-loaded, but it is under-specified. It is concise but lacks necessary detail, earning a middling score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and minimal description, the tool definition is incomplete. The description does not explain what the guide returns or how the agent should process the output, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter information. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Guide for moving the mouse with pikvm_mouse_move', which is vague and does not clearly state what the tool does. It implies it is a meta-tool providing guidance, but it is not specific about its function or output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like pikvm_mouse_move or other sibling tools. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_navigate_desktop_workflowC
Read-onlyIdempotent

Step-by-step procedure for navigating a desktop environment

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesWhat you want to accomplish (e.g., "open Firefox", "find and open a file")

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds minimal behavioral context, only implying a procedural output without detailing what the procedure entails or how it is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but vague. It could be more informative without adding length, e.g., specifying output format or examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should clarify what the tool returns (e.g., list of steps). It fails to explain the behavioral outcome, leaving agents uncertain whether it executes actions or provides a plan.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides description for the single 'goal' parameter, achieving 100% coverage. The tool description adds no additional semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is a 'step-by-step procedure for navigating a desktop environment,' which gives a general sense of purpose but lacks specificity. It does not distinguish this workflow from sibling tools that handle specific actions like clicking or moving the mouse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or examples of appropriate goals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_scroll_pageC
Read-onlyIdempotent

Guide for scrolling with pikvm_mouse_scroll

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations clearly indicate readOnlyHint=true and idempotentHint=true, implying no side effects. The description adds 'guide' which aligns with read-only behavior, but it does not provide additional behavioral context such as how scrolling is performed or what limits exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but at the expense of clarity. It lacks necessary detail to be useful on its own.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and a name suggesting a skill action, the description is incomplete. It does not explain what the tool does, how to use it, or its role among many similar siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% coverage, so the description need not explain parameters. However, the description fails to clarify the tool's core function, which is critical when no parameters are present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Guide for scrolling with pikvm_mouse_scroll', but the tool name 'skill_scroll_page' implies it performs an action. It is unclear whether this is a meta-tool that provides guidance or actually executes scrolling. The verb 'guide' is ambiguous and does not clearly state the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus siblings like 'pikvm_mouse_scroll' or other scroll-related skills. The description does not differentiate its purpose or specify prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_send_keyD
Read-onlyIdempotent

Guide for sending keys with pikvm_key

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, implying no mutation, but the description says 'sending keys', which is a write operation. This is a clear contradiction. No additional behavioral details are provided beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but under-specified. 'Guide for sending keys with pikvm_key' is not informative; it sacrifices clarity for brevity. Every sentence should earn its place, but this single sentence fails to convey purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fails to explain what the tool does, its return value, or prerequisites. It is completely inadequate for an agent to understand and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has zero parameters, so coverage is 100%. The description adds no parameter-specific meaning, but baseline for 0-param tools is 4. There's nothing to describe beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Guide for sending keys with pikvm_key' is vague and tautological, restating the tool name 'send_key'. It lacks a clear verb+resource, and doesn't distinguish from sibling tools like pikvm_key or skill_type_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., pikvm_key, skill_type_text). The description provides no context for appropriate usage or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_send_shortcutD
Read-onlyIdempotent

Guide for sending keyboard shortcuts with pikvm_shortcut

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and idempotentHint=true, suggesting a safe, read-only operation. However, the description implies sending keyboard shortcuts, which typically modify state. This contradiction undermines transparency. Additionally, no behaviors beyond annotations are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (6 words), which is concise but insufficient. It is front-loaded but lacks essential information, reducing its value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of parameters and output schema, the description must compensate by explaining purpose, usage, and behavior. It fails to do so, leaving the tool's function unclear and incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters and the schema coverage is 100% (empty). The description does not add meaning beyond the schema; it fails to explain what the 'guide' entails or how to use the tool effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Guide for sending keyboard shortcuts with pikvm_shortcut' but does not specify if the tool actually sends a shortcut or provides guidance. It lacks a clear verb and resource, making it vague and easily confused with siblings like 'pikvm_shortcut'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as 'pikvm_shortcut' or other keyboard-related tools. The description does not mention prerequisites, limitations, or comparative use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_setup_session_workflowB
Read-onlyIdempotent

Step-by-step procedure for initializing a PiKVM session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so safety is clear. The description adds minimal context—'initializing' could imply state changes but is not contradictory. Without annotations, more disclosure would be needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of 8 words, fully front-loaded. No fluff—every word earns its place for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but annotations cover safety. However, the description does not explain what the workflow entails (e.g., steps, expected result). Still, for a read-only, idempotent workflow, it is passable but could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'initializing a PiKVM session', which is a clear verb-resource pair, but it does not distinguish from sibling workflow tools like 'skill_auto_calibrate_mouse_workflow' or specify the scope or outcome of initialization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives. The description omits prerequisites, when not to use, or how it differs from other session-related tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_take_screenshotC
Read-onlyIdempotent

Guide for capturing screenshots with pikvm_screenshot

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only and idempotent. Description adds no behavioral details such as output format, file storage, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, immediately states purpose. Could be more informative but compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a screenshot tool, missing details on output (file, clipboard), device, or limitations. Description is minimal even with annotations present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters present, so schema coverage is complete. Description adds context that tool is a guide, which is helpful but not parameter-related. Baseline 4 per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'capturing screenshots' which indicates purpose, but the word 'Guide' introduces ambiguity whether it executes or instructs. Not fully clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance or differentiation from siblings like pikvm_screenshot. Does not specify when to use this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_type_textC
Read-onlyIdempotent

Guide for typing text with pikvm_type

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint true, destructiveHint false, idempotentHint true. The description adds no new behavioral information beyond implying non-destructive guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it is too terse and lacks essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description should explain the guide's content or format. It is too minimal to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the description does not explain what the tool's output or behavior is. It fails to add meaning about how the guide is presented or used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Guide for typing text with pikvm_type' does not specify the tool's action (e.g., 'returns a guide' or 'provides instructions'). It states a resource but lacks a verb, making the purpose unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like pikvm_type or skill_fill_form_workflow. The description does not mention prerequisites or appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 28 tool updatesv0.2.0
    • First observedpikvm_auto_calibrate
    • First observedpikvm_calibrate
    • First observedpikvm_clear_calibration
    • First observedpikvm_get_calibration
    • First observedpikvm_get_resolution
    • First observedpikvm_key
    • First observedpikvm_mouse_click
    • First observedpikvm_mouse_move
    • First observedpikvm_mouse_scroll
    • First observedpikvm_screenshot
    • First observedpikvm_set_calibration
    • First observedpikvm_shortcut
    • First observedpikvm_type
    • First observedskill_auto_calibrate
    • First observedskill_auto_calibrate_mouse_workflow
    • First observedskill_calibrate_mouse_workflow
    • First observedskill_check_resolution
    • First observedskill_click_element
    • First observedskill_click_ui_element_workflow
    • First observedskill_fill_form_workflow
    • First observedskill_move_mouse
    • First observedskill_navigate_desktop_workflow
    • First observedskill_scroll_page
    • First observedskill_send_key
    • First observedskill_send_shortcut
    • First observedskill_setup_session_workflow
    • First observedskill_take_screenshot
    • First observedskill_type_text

TDQS

C2.7/5.0
Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count3/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents human-like control over Windows via visual perception and simulated mouse and keyboard input, enabling automation of any application without APIs.
    31
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI to see and control a physical computer via a JetKVM device for screen viewing, mouse/keyboard input, media mounting, and power management.
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives AI agents smart hands for physical machines, controlling them via IP-KVM, BMC, and SSH with visual boot-phase classification and operator-gated actions.
    34
    5
    Apache 2.0

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