Skip to main content
Glama

photoshop_compare_landmarks

Compares two caller-supplied named landmark sets in their own semantic frames, returning per-point normalized error plus mean, RMSE, and max error for geometry validation.

Instructions

Compare two caller-supplied named landmark sets in their own semantic frames. Returns per-point normalized error plus mean/RMSE/max error. Pure geometry: does not inspect Photoshop or detect landmarks.

Input Schema

NameRequiredDescriptionDefault
candidate_frameYes
reference_frameYes
candidate_pointsYes
reference_pointsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.8.0-preview.1

TDQS

A3.5/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 behavioral burden and does disclose key traits: it is a pure computation that does not touch Photoshop, and it returns per-point normalized error plus mean/RMSE/max. It leaves out edge-case behavior, such as what happens when point names do not match or how normalization is defined, which matters for a comparison tool.

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

Conciseness5/5

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

Three sentences, front-loaded with the core action and return values, followed by a useful scope constraint. Every sentence earns its place and there is no repetition or filler.

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

Completeness3/5

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

For a tool with nested objects, four required parameters, no annotations, and no output schema, the description covers purpose, return shape, and purity of computation. It is not complete enough to reliably guide invocation because matching semantics, normalization basis, and frame-coordinate handling are absent.

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 description coverage is 0%, so the description must compensate. It does map the four parameters conceptually: two named point sets, each with its own semantic frame. But it adds no detail on the frame coordinate meaning, x/y units, or the significance of point names beyond 'named landmark sets', leaving meaningful parameter semantics underspecified.

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 states a specific verb ('Compare') and resource ('two caller-supplied named landmark sets'), and the 'Pure geometry: does not inspect Photoshop or detect landmarks' line separates it from sibling tools that read Photoshop state or detect points. It does not explicitly name the closest alternative, photoshop_transform_landmarks, so it is clear but not fully sibling-differentiated.

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 implies when to use the tool (you have two landmark sets and want an error comparison) and gives a useful when-not signal ('does not inspect Photoshop or detect landmarks'). However, it never names an alternative tool or states an explicit decision rule such as using this instead of photoshop_transform_landmarks.

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