Skip to main content
Glama

figma_compare_screen

Compare a saved Figma screen with a local PNG or base64 Android/web/iOS screenshot to detect visual differences; set optional pixel regions when OS bars differ and dimensions must match.

Instructions

Compare a saved Figma screen against a local PNG/base64 from droid, web or iOS. Optional referenceRegion/actualRegion select explicit pixel rectangles for app content when OS bars differ; compared dimensions must match. Reports every crop; no automatic scaling.

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": {
      "snapshotId": "<snapshotId>",
      "nodeId": "<nodeId>"
    },
    "name": "figma_compare_screen"
  }
}

Input Schema

NameRequiredDescriptionDefault
nodeIdYes
thresholdNo
actualPathNo
snapshotIdYes
actualRegionNo
maxDiffRatioNo
actualPngBase64No
referenceRegionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is already supplied. The description adds genuinely useful behavior beyond that: compared dimensions must match, every crop is reported, and there is no automatic scaling — key facts for interpreting pixel-diff results. It still omits what the returned diff report contains.

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 dense sentences with the core action front-loaded and no filler. The region/scaling caveats follow in a logical order. Slightly telegraphic phrasing ('Reports every crop') costs a little readability but not much space.

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 an 8-parameter tool with nested region objects and no output schema, the description covers the headline operation and the region semantics but leaves half the parameters and the result shape unexplained. It is adequate to start a call but not sufficient to predict thresholds or diff output.

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

Parameters2/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 carry parameter meaning. It explains referenceRegion/actualRegion as explicit pixel rectangles for app content and names the two image-source options (PNG vs base64), but says nothing about snapshotId, nodeId, threshold versus maxDiffRatio, actualPath, or whether the two image inputs are mutually exclusive.

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 gives a specific verb-and-resource pair: compare a saved Figma screen against a local PNG/base64 across droid, web or iOS. This clearly distinguishes it from sibling retrieval tools such as figma_get_screenshot, get_screenshot, or download_assets. It stops short of naming a sibling outright, which keeps it from a 5.

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?

Usage is implied by the phrase 'saved Figma screen' versus a local capture, and the region parameters are given an explicit condition of use (when OS bars differ). There is no statement of when not to use it or which sibling to prefer for alternative flows, so the guidance is only partially explicit.

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