PiKVM MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PiKVM MCP Servertake a screenshot of the desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PiKVM MCP Server
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:
Moves the cursor a known distance across multiple randomized screen positions
Diffs screenshot pairs to isolate the cursor via connected-component analysis
Computes correction factors from detected vs commanded movement using median aggregation
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.

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.

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 buildConfiguration
Copy .env.example to .env and configure:
cp .env.example .envEdit .env:
PIKVM_HOST=https://<your-pikvm-ip>
PIKVM_USERNAME=admin
PIKVM_PASSWORD=your_password
PIKVM_VERIFY_SSL=false
PIKVM_DEFAULT_KEYMAP=en-usUsage with Claude Code
Requires Node.js 18+. This server uses ES modules. If
node --versionshows 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 verificationpikvm_set_calibration- Apply correction factors calculated from calibration (required: factorX, factorY)pikvm_get_calibration- Get current calibration statepikvm_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 Prompts —
prompts/list/prompts/getfor clients that support the Prompts capability.Skill Tools —
tools/list/tools/callasskill_*read-only tools, ensuring visibility in marketplaces (e.g. LobeHub) that index tools only.
Tool Guides
Prompt Name | Skill Tool | Description |
|
| Capturing screenshots with pikvm_screenshot |
|
| Checking screen resolution with pikvm_get_resolution |
|
| Typing text with pikvm_type |
|
| Sending keys with pikvm_key |
|
| Sending keyboard shortcuts with pikvm_shortcut |
|
| Moving the mouse with pikvm_mouse_move |
|
| Clicking with pikvm_mouse_click |
|
| Scrolling with pikvm_mouse_scroll |
|
| Automatic mouse calibration with pikvm_auto_calibrate |
Workflow Recipes
Prompt Name | Skill Tool | Arguments | Description |
|
| — | Initialize a PiKVM session |
|
| — | Calibrate mouse coordinates |
|
|
| Find and click a UI element |
|
|
| Fill in a form on screen |
|
|
| Navigate a desktop environment |
|
| — | 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, ...KeyZNumbers:
Digit0,Digit1, ...Digit9Function keys:
F1,F2, ...F12Modifiers:
ShiftLeft,ShiftRight,ControlLeft,ControlRight,AltLeft,AltRight,MetaLeft,MetaRightSpecial:
Enter,Escape,Backspace,Tab,Space,Delete,Insert,Home,End,PageUp,PageDownArrows:
ArrowUp,ArrowDown,ArrowLeft,ArrowRight
License
GPL-3.0 - See LICENSE for details.
Available Tools
28 toolspikvm_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.
| Name | Required | Description | Default |
|---|---|---|---|
| rounds | No | Number of sampling rounds (default: 5) | |
| verifyRounds | No | Number of verification rounds (default: 5) | |
| moveDelayMs | No | Delay in ms after each mouse move for capture to settle (default: 300). Increase if calibration fails on slow connections. | |
| mergeRadius | No | Radius in pixels for merging nearby clusters (e.g., cursor + drop shadow). Default: 30. | |
| minSamples | No | Minimum valid samples required for calibration to succeed. Default: 3. | |
| maxRatioDivergence | No | Maximum allowed divergence between X and Y ratios within a single round. Rejects noisy rounds where ratios are incoherent. Default: 0.5. | |
| verbose | No | Log per-round debug data (centroid positions, accept/reject reasons). Default: false. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key code (e.g., KeyA, Enter, Escape, F1) | |
| modifiers | No | Modifier keys to hold (e.g., ["ControlLeft", "AltLeft"]) | |
| state | No | Key state: press (hold), release, or click (press+release, default) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| button | No | Mouse button to click (default: left). "up" and "down" are scroll wheel buttons. | |
| x | No | X pixel coordinate to move to before clicking (optional) | |
| y | No | Y pixel coordinate to move to before clicking (optional) | |
| state | No | Button state: press (hold), release, or click (default) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate in pixels (absolute) or delta pixels (relative) | |
| y | Yes | Y coordinate in pixels (absolute) or delta pixels (relative) | |
| relative | No | If true, move relative to current position (delta -127 to 127). Default: false (absolute pixel position) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| deltaX | No | Horizontal scroll amount (negative = left, positive = right) | |
| deltaY | Yes | Vertical scroll amount (negative = up, positive = down) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| maxWidth | No | Maximum width of the screenshot in pixels (optional, for preview) | |
| maxHeight | No | Maximum height of the screenshot in pixels (optional, for preview) | |
| quality | No | JPEG quality 1-100 (optional, default 80) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| factorX | Yes | X-axis calibration factor (typically 1.0-1.5) | |
| factorY | Yes | Y-axis calibration factor (typically 1.0-1.5) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Array of key codes to press together (e.g., ["ControlLeft", "AltLeft", "Delete"]) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to type | |
| keymap | No | Keyboard layout (default: en-us) | |
| slow | No | Use slow typing mode for compatibility | |
| delay | No | Delay between keystrokes in ms (0-200) |
TDQS
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.
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.
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.
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.
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.
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_calibrateCRead-onlyIdempotent
Guide for automatic mouse calibration with pikvm_auto_calibrate
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_workflowCRead-onlyIdempotent
Step-by-step procedure for automatic mouse calibration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_workflowARead-onlyIdempotent
Step-by-step procedure for calibrating mouse coordinates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_resolutionCRead-onlyIdempotent
Guide for checking screen resolution with pikvm_get_resolution
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_elementCRead-onlyIdempotent
Guide for clicking with pikvm_mouse_click
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_workflowBRead-onlyIdempotent
Step-by-step procedure for finding and clicking a UI element
| Name | Required | Description | Default |
|---|---|---|---|
| element_description | Yes | Description of the UI element to click (e.g., "the Save button", "the File menu") |
TDQS
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.
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.
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.
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.
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.
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_workflowCRead-onlyIdempotent
Step-by-step procedure for filling in a form on screen
| Name | Required | Description | Default |
|---|---|---|---|
| form_description | No | Description of the form or the fields to fill in |
TDQS
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.
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.
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.
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.
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.
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_mouseCRead-onlyIdempotent
Guide for moving the mouse with pikvm_mouse_move
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_scroll_pageCRead-onlyIdempotent
Guide for scrolling with pikvm_mouse_scroll
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_keyDRead-onlyIdempotent
Guide for sending keys with pikvm_key
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_shortcutDRead-onlyIdempotent
Guide for sending keyboard shortcuts with pikvm_shortcut
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_workflowBRead-onlyIdempotent
Step-by-step procedure for initializing a PiKVM session
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_screenshotCRead-onlyIdempotent
Guide for capturing screenshots with pikvm_screenshot
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_textCRead-onlyIdempotent
Guide for typing text with pikvm_type
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
28 tool updates
v0.2.0- First observed
pikvm_auto_calibrate - First observed
pikvm_calibrate - First observed
pikvm_clear_calibration - First observed
pikvm_get_calibration - First observed
pikvm_get_resolution - First observed
pikvm_key - First observed
pikvm_mouse_click - First observed
pikvm_mouse_move - First observed
pikvm_mouse_scroll - First observed
pikvm_screenshot - First observed
pikvm_set_calibration - First observed
pikvm_shortcut - First observed
pikvm_type - First observed
skill_auto_calibrate - First observed
skill_auto_calibrate_mouse_workflow - First observed
skill_calibrate_mouse_workflow - First observed
skill_check_resolution - First observed
skill_click_element - First observed
skill_click_ui_element_workflow - First observed
skill_fill_form_workflow - First observed
skill_move_mouse - First observed
skill_navigate_desktop_workflow - First observed
skill_scroll_page - First observed
skill_send_key - First observed
skill_send_shortcut - First observed
skill_setup_session_workflow - First observed
skill_take_screenshot - First observed
skill_type_text
TDQS
Many skill_ tools directly duplicate the functionality of pikvm_ tools (e.g., skill_auto_calibrate vs pikvm_auto_calibrate), causing ambiguity. Also, skill tools like 'skill_click_element' and 'skill_click_ui_element_workflow' overlap, making it hard to distinguish between documentation and actual actions.
Two distinct naming prefixes exist: pikvm_ (consistent verb_noun) and skill_ (inconsistent mix of 'guide', 'workflow', and action descriptions). While each prefix is internally consistent, the mix creates confusion and breaks a unified pattern.
28 tools is somewhat high for the domain. The actual action tools are about 12, and the remaining 16 are skill guides that could be consolidated into tool descriptions or fewer workflow tools. The count feels inflated.
Core actions for remote mouse, keyboard, screenshots, and calibration are covered. However, missing essential PiKVM features like power control, video settings, or media mounting leave some gaps. The skill tools provide workflow guidance but don't add functional breadth.
Maintenance
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
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for AI dialogue using various LLM models via AceDataCloud
One connector for 15,000+ MCP servers plus your team's private MCPs, from any AI client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn 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.312MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents direct control over QEMU virtual machines.281MIT
- AlicenseNot gradedqualityDmaintenanceMCP 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.4MIT
- AlicenseAqualityBmaintenanceAn 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.345Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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