Skip to main content
Glama

android_vlm_log

Trace local-model calls made by Android agent tools, showing which tool triggered each call and what the model saw and said. Review recent or full call logs to debug vision-model interactions.

Instructions

Show which local-model (LM Studio) calls were made, by which tool, and what the model saw and said.

Every call from any host (Cursor, Claude Code) or run is recorded in ~/.android-agent/vlm-calls.jsonl, and the exact images sent to the model are saved next to it. Only android_screenshot(analyze=...), android_assert, android_record_stop and android_analyze use the local model - nothing else does.

Args: last: How many of the most recent calls to show. call: Show one call in full, by id ("v3") or "run/id" ("run-20260922-173012/v3"). full: Show full prompts and answers instead of the first lines.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
callNo
fullNo
lastNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It explains that calls are recorded in a specific file (~/.android-agent/vlm-calls.jsonl) and that images are saved next to it, which is useful context. However, it does not describe the return format or pagination behavior, and it doesn't mention any side effects or limitations. The description gives some insight into behavior but is not comprehensive.

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 well-structured with a clear opening sentence, followed by a paragraph on storage details, and a list of arguments. It is front-loaded with the main purpose. However, the storage details are a bit verbose and might not be essential for the user's immediate understanding of how to use the tool. The argument list is efficient, but the overall length could be trimmed without losing value.

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

Completeness4/5

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

Given the tool's moderate complexity (3 parameters, no output schema), the description covers the main aspects: purpose, storage location, and parameter meanings. It also mentions which tools use the local model, which is helpful for context. However, it lacks details on the return format or how to interpret the output, which could be important for an agent deciding how to use the tool. But overall, it's fairly complete for the tool's scope.

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

Parameters3/5

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

The input schema has 0% description coverage, meaning the schema provides no descriptions for the parameters. The description does help by explaining what 'last' means (how many recent calls to show) and what 'call' accepts (an id or run/id combination). However, it doesn't clarify the 'full' parameter's effect (it says 'Show full prompts and answers' but doesn't detail the format). The description partially compensates for the lack of schema descriptions but could be more detailed.

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

Purpose5/5

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

The description clearly states the tool's purpose: showing local-model (LM Studio) calls made by which tool, and what the model saw and said. It uses a specific verb ('Show') and a specific resource ('local-model calls'), and it distinguishes itself from siblings by focusing on VLM log details. It names which tools use the local model (android_screenshot, android_assert, android_record_stop, android_analyze), making its scope explicit.

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

Usage Guidelines3/5

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

The description provides clear context on what the tool does and mentions the tools that use the local model, but it does not explicitly state when to use this tool versus other logging or inspection tools (like android_logcat). There is no alternative mentioned or guidance on when not to use it. The use case is implied (debugging VLM calls) but not contrasted with siblings.

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