Skip to main content
Glama

vm_observe

Capture VMware guest console screenshots to inspect current state; skip redundant images and return metadata when a known capture is unchanged.

Instructions

Fresh native image by default. Set known_image=true only if the latest delivered full image is still known, or supply its since_capture_id. Identical pixels then return fresh metadata only; changed screens still return an image. After resume/compaction/uncertainty omit both. learning.review_due identifies missing outcome checks. Cannot erase chat images.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "session": "<session>",
      "owner_thread_id": "<owner_thread_id>"
    },
    "name": "vm_observe"
  }
}

Input Schema

NameRequiredDescriptionDefault
regionNo
sessionYes
known_imageNo
owner_thread_idYes
since_capture_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose real behavior beyond the schema: identical pixels return fresh metadata only, changed screens still return an image, capture IDs survive across calls, and it cannot erase chat images. It still omits whether a session must be connected, whether the call has side effects, and the shape of the returned metadata.

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

Conciseness3/5

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

It is compact and front-loads the default behavior, but several sentences are telegraphic and under-specified, e.g. 'learning.review_due identifies missing outcome checks' dangles with no explanation of what the agent should do with it. Density here costs clarity rather than saving it.

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

Completeness2/5

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

For a 5-parameter tool with no annotations, no output schema, and zero schema descriptions, the definition should explain what is fundamentally returned and what region and owner_thread_id mean. It covers the caching protocol but leaves the primary return contract and two parameters undocumented.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It explains known_image and since_capture_id well and implies session/state preconditions, but leaves 'region' and 'owner_thread_id' entirely unexplained — an agent cannot tell what region's array-of-integers means or why the thread ID is required.

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

Purpose2/5

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

The description never states the core action — nothing says this captures/observes a VM screen and returns an image. It leads with a caching default ('Fresh native image by default') and only obliquely reveals the purpose via references to 'pixels', 'screens' and 'image'. An agent must infer the verb+resource from the tool name rather than from the text.

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

Usage Guidelines3/5

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

It gives concrete conditional guidance for the caching parameters: set known_image=true only if the latest full image is still known, or supply since_capture_id, and omit both after resume/compaction/uncertainty. However, it offers no guidance on when to choose vm_observe over siblings such as vm_status, vm_list, or vm_exec.

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