Skip to main content
Glama

Screenrove: UI Design Reference & Screenshots (free Mobbin alternative)

Get one screen

get_screen
Read-only

Get everything recorded about one screen: notes on what it does and how it's laid out, product, captured date, page url, source URL, dimensions, observed actions and where they lead, and page sections for long marketing pages. The notes are not the screen: call get_screen_image with the same id to see it before building something similar.

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": {
      "screenId": "<screenId>"
    },
    "name": "get_screen"
  }
}

Input Schema

NameRequiredDescriptionDefault
screenIdYesScreen id from search_screens or get_product, e.g. linear-signup.

Output Schema

NameRequiredDescriptionDefault
idNo
urlNo
kindNo
nextNo
tagsNo
notesNo
scopeNo
styleNo
titleNo
widthNo
branchNo
heightNo
sourceNo
actionsNo
productNo
capturedNo
imageUrlNo
sectionsNo
variantsNo
previewUrlNo
productNameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • changedInput schema / properties / screenId / description
      Previous value: -"Screen id from searchScreens or getProduct, e.g. linear-signup."New value: +"Screen id from search_screens or get_product, e.g. linear-signup."
    • removedOutput schema / properties / actions / items
      Removed value: -{
      -  "properties": {
      -    "label": {
      -      "type": "string"
      -    },
      -    "region": {
      -      "description": "Hotspot position as percentages of the image.",
      -      "properties": {
      -        "height": {
      -          "type": "number"
      -        },
      -        "width": {
      -          "type": "number"
      -        },
      -        "x": {
      -          "type": "number"
      -        },
      -        "y": {
      -          "type": "number"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "to": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / captured / format
      Removed value: -"date"
    • removedOutput schema / properties / kind / description
      Removed value: -"flow is an onboarding step, marketing a public web page, product an in-app screen."
    • removedOutput schema / properties / kind / enum
      Removed value: -[
      -  "flow",
      -  "marketing",
      -  "product"
      -]
    • addedOutput schema / properties / next
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / productName / description
      Removed value: -"Present on pick options and related screens."
    • removedOutput schema / properties / scope / description
      Removed value: -"What was captured. marketing: logged-out marketing pages only. public-demo: logged out, but real\nproduct surfaces or public demos were used. task-incomplete: signed in, but the journey stops before\nits result. signed-in: signed in, and the journey reaches its result.\n"
    • removedOutput schema / properties / scope / enum
      Removed value: -[
      -  "marketing",
      -  "public-demo",
      -  "task-incomplete",
      -  "signed-in"
      -]
    • removedOutput schema / properties / sections / items
      Removed value: -{
      -  "properties": {
      -    "title": {
      -      "type": "string"
      -    },
      -    "y": {
      -      "type": "integer"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / style / description
      Removed value: -"What the screen looks like, judged from its first viewport (tags/style-spec.md). Searchable through q."
    • removedOutput schema / properties / style / properties
      Removed value: -{
      -  "accentHue": {
      -    "description": "The accent hue of buttons and highlights, or none.",
      -    "type": "string"
      -  },
      -  "aesthetic": {
      -    "description": "One or two of minimal, editorial, playful, technical, glassy, bold, warm, data-dense, retro, corporate.",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "caption": {
      -    "description": "What makes the screen look the way it does.",
      -    "type": "string"
      -  },
      -  "colorMode": {
      -    "enum": [
      -      "monochrome",
      -      "single-accent",
      -      "multi-color",
      -      "pastel",
      -      "vivid-gradient"
      -    ],
      -    "type": "string"
      -  },
      -  "density": {
      -    "enum": [
      -      "airy",
      -      "balanced",
      -      "dense"
      -    ],
      -    "type": "string"
      -  },
      -  "headingFont": {
      -    "enum": [
      -      "sans",
      -      "serif",
      -      "mono",
      -      "rounded",
      -      "display"
      -    ],
      -    "type": "string"
      -  },
      -  "imagery": {
      -    "description": "One or two of none, product-ui, photography, illustration, 3d, icons-only, charts.",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "theme": {
      -    "enum": [
      -      "light",
      -      "dark",
      -      "mixed"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / tags / description
      Removed value: -"Design-problem tags. The first pattern is the primary one. See listTags."
    • removedOutput schema / properties / tags / properties
      Removed value: -{
      -  "component": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "pattern": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "state": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "task": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  }
      -}
    • addedOutput schema / properties / url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / variants
      Added value: +{
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / style
      Added value: +{
      +  "description": "What the screen looks like, judged from its first viewport (tags/style-spec.md). Searchable through q.",
      +  "properties": {
      +    "accentHue": {
      +      "description": "The accent hue of buttons and highlights, or none.",
      +      "type": "string"
      +    },
      +    "aesthetic": {
      +      "description": "One or two of minimal, editorial, playful, technical, glassy, bold, warm, data-dense, retro, corporate.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "caption": {
      +      "description": "What makes the screen look the way it does.",
      +      "type": "string"
      +    },
      +    "colorMode": {
      +      "enum": [
      +        "monochrome",
      +        "single-accent",
      +        "multi-color",
      +        "pastel",
      +        "vivid-gradient"
      +      ],
      +      "type": "string"
      +    },
      +    "density": {
      +      "enum": [
      +        "airy",
      +        "balanced",
      +        "dense"
      +      ],
      +      "type": "string"
      +    },
      +    "headingFont": {
      +      "enum": [
      +        "sans",
      +        "serif",
      +        "mono",
      +        "rounded",
      +        "display"
      +      ],
      +      "type": "string"
      +    },
      +    "imagery": {
      +      "description": "One or two of none, product-ui, photography, illustration, 3d, icons-only, charts.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "theme": {
      +      "enum": [
      +        "light",
      +        "dark",
      +        "mixed"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed3 schema fields changed
    • changedOutput schema / properties / productName / description
      Previous value: -"Present on pick options."New value: +"Present on pick options and related screens."
    • addedOutput schema / properties / scope
      Added value: +{
      +  "description": "What was captured. marketing: logged-out marketing pages only. public-demo: logged out, but real\nproduct surfaces or public demos were used. task-incomplete: signed in, but the journey stops before\nits result. signed-in: signed in, and the journey reaches its result.\n",
      +  "enum": [
      +    "marketing",
      +    "public-demo",
      +    "task-incomplete",
      +    "signed-in"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / tags
      Added value: +{
      +  "description": "Design-problem tags. The first pattern is the primary one. See listTags.",
      +  "properties": {
      +    "component": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "pattern": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "state": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "task": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "actions": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "region": {
      +            "description": "Hotspot position as percentages of the image.",
      +            "properties": {
      +              "height": {
      +                "type": "number"
      +              },
      +              "width": {
      +                "type": "number"
      +              },
      +              "x": {
      +                "type": "number"
      +              },
      +              "y": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "to": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "branch": {
      +      "type": "boolean"
      +    },
      +    "captured": {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    "height": {
      +      "type": "integer"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "imageUrl": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
      +      "enum": [
      +        "flow",
      +        "marketing",
      +        "product"
      +      ],
      +      "type": "string"
      +    },
      +    "notes": {
      +      "type": "string"
      +    },
      +    "previewUrl": {
      +      "type": "string"
      +    },
      +    "product": {
      +      "type": "string"
      +    },
      +    "productName": {
      +      "description": "Present on pick options.",
      +      "type": "string"
      +    },
      +    "sections": {
      +      "items": {
      +        "properties": {
      +          "title": {
      +            "type": "string"
      +          },
      +          "y": {
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "width": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the description does not need to re-establish safety. It adds real value beyond them by warning that the notes are a textual description rather than the visual asset, and by naming the categories of observed actions and long-page sections, which the annotations say nothing about.

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?

Two sentences, front-loaded with the verb and the returned content, with the get_screen_image caveat held for the end where it reads as a next-step pointer. The enumeration in sentence one is dense but each item is a distinct field an agent would otherwise have to infer, so it earns its length.

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?

With an output schema present, the description correctly avoids explaining return structure and instead conveys semantic content (what the notes are, what 'observed actions' mean). Nothing an agent needs to call it is missing, though it is silent on result size or truncation for very long pages.

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?

There is a single required parameter and schema coverage is 100%, including an example value and the instruction to source it from search_screens or get_product. The description only refers back to 'the same id', adding nothing beyond the schema, so the baseline of 3 applies.

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?

States a specific verb and resource and then enumerates exactly what is returned: notes, product, captured date, page URL, source URL, dimensions, observed actions with destinations, and page sections. It also explicitly distinguishes itself from the closest sibling, get_screen_image, so an agent can route between them without opening either schema.

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

Usage Guidelines4/5

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

Gives a clear condition and the exact alternative: if you need to actually see the screen before building something similar, call get_screen_image with the same id. The schema also points at search_screens and get_product as the id sources. It does not address other plausible siblings (compare_screens, get_design, get_flow), so the routing guidance is clear but not exhaustive.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources