Skip to main content
Glama

read_pixels

Read a frame or layer as an editable character map with a color legend, then send the rows back to write pixel changes in a single round trip.

Instructions

Pixels as a character map: {"legend": {char: colour}, "rows": [...]} ('.' = transparent). Edit the rows and send them back with the map op: a read-edit-write round trip. Without layer it reads the flattened frame. Region capped at 128x128.

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": {
      "path": "<path>"
    },
    "name": "read_pixels"
  }
}

Input Schema

NameRequiredDescriptionDefault
pathYes
frameNo
layerNo
regionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the return shape, the '.' = transparent convention, that omitting `layer` yields the flattened frame, and that the region is capped at 128x128. It does not state whether the call itself is side-effect free or what happens if the region exceeds the cap.

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?

Three tight sentences with no filler, and the size cap is stated compactly. The opening fragment ('Pixels as a character map: {...}') prioritizes return format over purpose, which is mildly awkward as a lead but still efficient.

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

Completeness4/5

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

For a 4-parameter read tool with no output schema, the description compensates by inlining the exact return structure and the transparency convention, which is the key missing piece. The remaining gap is `frame` semantics for multi-frame sprites, which matters given siblings like `check_animation` and `tween_poses`.

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 and only partly does: it explains `layer` (flattened frame when absent) and `region` (128x128 cap), but `frame` (default 1) and `path` are never given meaning, format, or numbering conventions. Two of four parameters remain purely schema-derived.

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

Purpose4/5

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

The description conveys a specific operation on a specific resource: reading pixels and returning them as a character map, with the flattened-frame behavior when `layer` is omitted. It is distinguishable from write-oriented siblings (`apply`, `pixelize`) and from `map`-op writes, though the verb 'read' only appears mid-sentence rather than being front-loaded.

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 sketches a concrete workflow ('edit the rows and send them back with the map op: a read-edit-write round trip'), which tells the agent how the output is meant to be consumed. However, it never compares against the many sibling inspection tools (`view`, `sprite_info`, `compare`, `export`) or states when not to use this instead.

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