Skip to main content
Glama
Berrio
by Berrio

document_resize

Destructive

Change an SVG page size while keeping element geometry intact, with content-scaling modes and a safe dry run. Requires the current revision to return a bounded diff.

Instructions

Changes the SVG page size with page_only semantics while preserving element geometry, returning a bounded semantic diff. Requires the current document revision.

Input Schema

NameRequiredDescriptionDefault
modeNopage_only
pathYes
unitYes
widthYes
anchorNo
dryRunNo
heightYes
workspaceIdYes
expectedRevisionYes

Output Schema

NameRequiredDescriptionDefault
diffYes
dryRunYes
revisionYes
warningsYes
predictedNo
backupCreatedYes
contentFidelityYes
contentLimitationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.1.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / dryRun
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / contentFidelity
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "not_applicable"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / contentLimitations
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / diff
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "addedIds": {
      +      "items": {
      +        "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "afterElementCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "ambiguousIds": {
      +      "items": {
      +        "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "beforeElementCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "changedIds": {
      +      "items": {
      +        "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "removedIds": {
      +      "items": {
      +        "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "addedIds",
      +    "afterElementCount",
      +    "ambiguousIds",
      +    "beforeElementCount",
      +    "changedIds",
      +    "removedIds"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / dryRun
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / predicted
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "diff": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "addedIds": {
      +          "items": {
      +            "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "afterElementCount": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "ambiguousIds": {
      +          "items": {
      +            "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "beforeElementCount": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "changedIds": {
      +          "items": {
      +            "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "removedIds": {
      +          "items": {
      +            "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$",
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "addedIds",
      +        "afterElementCount",
      +        "ambiguousIds",
      +        "beforeElementCount",
      +        "changedIds",
      +        "removedIds"
      +      ],
      +      "type": "object"
      +    },
      +    "page": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "height": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "enum": [
      +                "mm",
      +                "cm",
      +                "in",
      +                "pt",
      +                "pc",
      +                "q",
      +                "px"
      +              ],
      +              "type": "string"
      +            },
      +            "value": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "unit",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        "viewBox": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "height": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "width": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "x": {
      +              "type": "number"
      +            },
      +            "y": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "height",
      +            "width",
      +            "x",
      +            "y"
      +          ],
      +          "type": "object"
      +        },
      +        "width": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "enum": [
      +                "mm",
      +                "cm",
      +                "in",
      +                "pt",
      +                "pc",
      +                "q",
      +                "px"
      +              ],
      +              "type": "string"
      +            },
      +            "value": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "unit",
      +            "value"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "height",
      +        "viewBox",
      +        "width"
      +      ],
      +      "type": "object"
      +    },
      +    "transform": {
      +      "prefixItems": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "type": "array"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "diff",
      +    "page",
      +    "warnings"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "backupCreated",
      -  "revision",
      -  "warnings"
      -]New value: +[
      +  "backupCreated",
      +  "contentFidelity",
      +  "contentLimitations",
      +  "diff",
      +  "dryRun",
      +  "revision",
      +  "warnings"
      +]
  2. First observedv0.0.0

TDQS

B3.3/5.0
Behavior4/5

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

With only destructiveHint=true provided, the description usefully adds that element geometry is preserved, that the return is a bounded semantic diff, and that the current revision is required. That said, it doesn't explain what is actually destroyed or how the destructive mode variants behave, so it stops short of full disclosure.

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?

Two dense sentences with the core operation, its semantics, and its prerequisite front-loaded. No filler or redundancy.

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?

The output schema covers the semantic diff, so return values needn't be re-explained, but with 9 parameters at 0% coverage and no sibling differentiation, the description is thin for a complex mutation tool. Key parameters (unit, anchor, dryRun) remain unexplained.

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% across 9 parameters, so the description must carry the load, but it only clarifies mode ('page_only') and alludes to revision. It says nothing about unit, anchor, dryRun, path, or workspaceId, leaving most parameters undocumented.

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?

States a specific verb+resource (changes the SVG page size) with a scoping qualifier (page_only semantics) and the preservation guarantee. However, it does not distinguish itself from plausible siblings like document_page_adjust or document_fit_page, leaving the agent to open schemas to disambiguate.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance, and no alternative tool is named despite several page-related siblings. The only conditional information is the prerequisite (requires current revision), which is implied rather than framed as selection criteria.

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

Deploy Server

Other Tools