Skip to main content
Glama

Read the reference

docs
Read-onlyIdempotent

SVG Lab's reference: start-here, each tool's full details, design guides and the illustration routine. docs {fonts} lists the type catalog; docs {components} lists the components, icons and layout node types.

Input Schema

NameRequiredDescriptionDefault
toolNoOne tool's full reference.
fontsNotrue, or {role, category, query, family}: the curated type catalog, each family's role, personality, pairings and weights. Read on its own.
guideNoGuide id, e.g. start-here or drawing-from-references.
queryNo
skillNoDesigner skill id.
toolsNo
guidesNoUp to 8 guide ids, read whole in one call.
lessonNoNot used in SVG Lab Draw: returns the illustration routine.
lessonsNoNot used in SVG Lab Draw: returns the illustration routine.
referenceNoWith skill: a linked document.
componentsNotrue: the components, their props and defaults, the icon names and the layout node types. Read on its own.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / components
      Added value: +{
      +  "const": true,
      +  "description": "true: the components, their props and defaults, the icon names and the layout node types. Read on its own.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / fonts
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    {
      +      "properties": {
      +        "category": {
      +          "enum": [
      +            "sans",
      +            "serif",
      +            "slab",
      +            "mono",
      +            "display",
      +            "script",
      +            "handwriting"
      +          ],
      +          "type": "string"
      +        },
      +        "family": {
      +          "type": "string"
      +        },
      +        "query": {
      +          "type": "string"
      +        },
      +        "role": {
      +          "enum": [
      +            "display",
      +            "text",
      +            "both",
      +            "mono",
      +            "accent"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  ],
      +  "description": "true, or {role, category, query, family}: the curated type catalog, each family's role, personality, pairings and weights. Read on its own."
      +}
    • changedInput schema / properties / guide / description
      Previous value: -"One guide's id from the index, e.g. typography-direction."New value: +"Guide id, e.g. start-here or drawing-from-references."
    • removedInput schema / properties / guide / maxLength
      Removed value: -64
    • addedInput schema / properties / guides
      Added value: +{
      +  "description": "Up to 8 guide ids, read whole in one call.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / lesson
      Added value: +{
      +  "description": "Not used in SVG Lab Draw: returns the illustration routine.",
      +  "type": "string"
      +}
    • addedInput schema / properties / lessons
      Added value: +{
      +  "description": "Not used in SVG Lab Draw: returns the illustration routine.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / op
      Removed value: -{
      -  "description": "One operation's name, e.g. create_layout.",
      -  "maxLength": 64,
      -  "type": "string"
      -}
    • removedInput schema / properties / ops
      Removed value: -{
      -  "description": "Several operation names, returned together in request order.",
      -  "items": {
      -    "maxLength": 64,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "maxItems": 25,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / query / description
      Removed value: -"Words to search for, e.g. \"gradient\" or \"draw a hand\"."
    • removedInput schema / properties / query / maxLength
      Removed value: -200
    • removedInput schema / properties / recipe
      Removed value: -{
      -  "enum": [
      -    "assembly",
      -    "chunking",
      -    "recovery",
      -    "layout-patches",
      -    "helpers"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / reference
      Added value: +{
      +  "description": "With skill: a linked document.",
      +  "type": "string"
      +}
    • addedInput schema / properties / skill
      Added value: +{
      +  "description": "Designer skill id.",
      +  "type": "string"
      +}
    • addedInput schema / properties / tool
      Added value: +{
      +  "description": "One tool's full reference.",
      +  "type": "string"
      +}
    • addedInput schema / properties / tools
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is fully covered. The description adds the 'Read on its own' independence for fonts/components, but nothing about what the reference contains or how mode combinations behave.

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 resource and purpose, no wasted verbiage. The '{fonts}/{components}' bracket syntax is compact but slightly ambiguous.

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?

With 11 optional params, no required params, and no output schema, the description explains only a few modes. An agent can invoke it but must infer how the many parameter families (lesson vs lessons, guide vs guides, skill+reference) interact.

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 82%, so the schema largely documents the params. The description adds usage syntax for fonts and components modes and identifies 'start-here' as a guide id, but leaves tool/tools, guide/guides, skill/reference, and lesson/lessons undocumented at the description level.

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+resource — a reference/docs reader returning start-here guides, per-tool details, fonts, and components — which clearly distinguishes it from the editing siblings (draw_svg, add_artboard, etc.). It is clear what the tool fetches, though the '{fonts}' shorthand is slightly cryptic.

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?

'start-here' implies a recommended entry point and 'Read on its own' signals that fonts/components can be fetched standalone. However, there is no explicit when-to-use-vs-alternatives guidance or explanation of how the 11 modes relate.

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.