Skip to main content
Glama

vm_send_text

Type text into a QEMU VM console by sending each character as a keypress, handling shift and Enter, to automate input of credentials or commands.

Instructions

Type a text string into a QEMU VM's console, character by character.

Each character is sent as an individual keypress. Use this to type
login credentials, commands, or other text into the VM console.
Combine with vm_screenshot to verify the result.

Supports printable ASCII characters. Newlines ('

') are sent as Enter. Note: characters requiring Shift (uppercase, symbols like '!', '@') are sent with shift automatically.

Args:
    vmid: The numeric ID of the QEMU VM.
    text: Text string to type into the VM console (e.g. 'administrator

admin '). delay: Delay between keypresses in seconds (default 0.05). confirm: Must be true to type the text into the VM console.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYes
vmidYes
delayNo
confirmNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.3

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully discloses behaviors: each character is sent as an individual keypress, newlines map to Enter, Shift is handled automatically for uppercase and symbols, and the confirm parameter must be true for the action to execute. This gives the agent a complete safety and execution model.

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 detailed but each section earns its place: purpose, usage, behavior notes, and parameter documentation. It is front-loaded with the core action. Slightly verbose in the shift note, but not bloated; a compact rewrite could tighten it without losing content.

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?

Given the tool's complexity (4 params, no annotations) and the presence of an output schema, the description covers everything an agent needs to call it correctly: purpose, usage context, behavioral nuances, parameter semantics, and the required confirm flag. No critical information is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must document all parameters, and it does. It explains vmid as the numeric VM ID, provides an example for text, notes delay's default of 0.05 seconds, and stresses that confirm must be true. This adds significant meaning beyond the raw 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 states a specific action (type text), a specific target (QEMU VM console), and the method (character by character). It clearly distinguishes from vm_send_key (individual keypresses) and exec_command (command execution) by its focus on text entry, and even references vm_screenshot for verification.

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?

It explicitly says to use this for typing login credentials, commands, or other text into the VM console, and suggests pairing with vm_screenshot to verify results. It does not explicitly contrast with alternative tools like vm_send_key, but the use case is clear and no misleading guidance is given.

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