Skip to main content
Glama
Berrio
by Berrio

document_inspect

Read-only

Inspect SVG documents to read settings and a bounded, redacted design inventory without altering the original file.

Instructions

Reads SVG settings and a bounded, redacted design inventory from an authorized document without mutating it.

Input Schema

NameRequiredDescriptionDefault
pathYes
levelNostandard
workspaceIdYes
inventoryKindsNo
inventoryLimitNo
inventoryOffsetNo
expectedRevisionNo
includeVisualBoundsNo

Output Schema

NameRequiredDescriptionDefault
pagesYes
widthYes
heightYes
viewBoxYes
revisionYes
warningsYes
inventoryNo
resourcesYes
widthUnitYes
heightUnitYes
visualBoundsNo
normalizationYes
inspectionLevelYes
ambiguousViewportYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changedv0.1.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / includeVisualBounds
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / inventoryKinds
      Added value: +{
      +  "items": {
      +    "pattern": "^[A-Za-z][A-Za-z0-9-]{0,127}$",
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "type": "array"
      +}
    • addedInput schema / properties / inventoryLimit
      Added value: +{
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / inventoryOffset
      Added value: +{
      +  "default": 0,
      +  "maximum": 100000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / ambiguousViewport
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / inventory / properties / definitions
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "filters": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          },
      +          "primitiveCount": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "primitiveCount"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "gradients": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "enum": [
      +              "linear",
      +              "radial"
      +            ],
      +            "type": "string"
      +          },
      +          "stopCount": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "kind",
      +          "stopCount"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "patterns": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "height": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "width": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "filters",
      +    "gradients",
      +    "patterns"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / inventory / properties / fontWarnings
      Added value: +{
      +  "prefixItems": [
      +    {
      +      "const": "FONT_RESOLUTION_UNAVAILABLE",
      +      "type": "string"
      +    }
      +  ],
      +  "type": "array"
      +}
    • addedOutput schema / properties / inventory / properties / images / items / properties / display
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "height": {
      +      "type": "string"
      +    },
      +    "width": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / inventory / properties / images / items / properties / intrinsic
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "height": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    },
      +    "status": {
      +      "enum": [
      +        "available",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    },
      +    "width": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / inventory / properties / images / items / required
      Previous value: -[
      -  "kind"
      -]New value: +[
      +  "display",
      +  "intrinsic",
      +  "kind"
      +]
    • addedOutput schema / properties / inventory / properties / nextOffset
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / inventory / properties / offset
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / inventory / properties / totalElementCount
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / inventory / required
      Previous value: -[
      -  "duplicateIds",
      -  "elementCount",
      -  "externalResourceCount",
      -  "fontFamilies",
      -  "fontResolution",
      -  "images",
      -  "ids",
      -  "layers",
      -  "namespaces",
      -  "paintUsage",
      -  "typeCounts",
      -  "truncated",
      -  "unknownNamespaces",
      -  "unresolvedReferences"
      -]New value: +[
      +  "definitions",
      +  "duplicateIds",
      +  "elementCount",
      +  "externalResourceCount",
      +  "fontFamilies",
      +  "fontWarnings",
      +  "fontResolution",
      +  "images",
      +  "ids",
      +  "layers",
      +  "namespaces",
      +  "offset",
      +  "paintUsage",
      +  "totalElementCount",
      +  "typeCounts",
      +  "truncated",
      +  "unknownNamespaces",
      +  "unresolvedReferences"
      +]
    • addedOutput schema / properties / normalization
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "height": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "raw": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "enum": [
      +            "defaulted",
      +            "explicit",
      +            "percentage_fallback"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    "viewBox": {
      +      "enum": [
      +        "explicit",
      +        "inferred_from_viewport"
      +      ],
      +      "type": "string"
      +    },
      +    "width": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "raw": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "enum": [
      +            "defaulted",
      +            "explicit",
      +            "percentage_fallback"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "source"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "height",
      +    "viewBox",
      +    "width"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / resources
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "id": {
      +      "pattern": "^doc_[a-f0-9]{32}$",
      +      "type": "string"
      +    },
      +    "metadataUri": {
      +      "pattern": "^inkscape:\\/\\/document\\/doc_[a-f0-9]{32}\\/metadata$",
      +      "type": "string"
      +    },
      +    "summaryUri": {
      +      "pattern": "^inkscape:\\/\\/document\\/doc_[a-f0-9]{32}\\/summary$",
      +      "type": "string"
      +    },
      +    "svgUri": {
      +      "pattern": "^inkscape:\\/\\/document\\/doc_[a-f0-9]{32}\\/svg$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "metadataUri",
      +    "summaryUri",
      +    "svgUri"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / visualBounds
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "fidelity": {
      +      "const": "partial",
      +      "type": "string"
      +    },
      +    "global": {
      +      "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"
      +    },
      +    "limitations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "pages": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "bounds": {
      +            "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"
      +          },
      +          "id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "const": "inkscape-query-all",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "fidelity",
      +    "limitations",
      +    "pages",
      +    "source"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / warnings
      Added value: +{
      +  "items": {
      +    "enum": [
      +      "VIEWBOX_MISSING_INFERRED_FROM_VIEWPORT",
      +      "VIEWPORT_HEIGHT_DEFAULTED",
      +      "VIEWPORT_HEIGHT_PERCENTAGE_UNRESOLVED",
      +      "VIEWPORT_HEIGHT_UNITLESS_NORMALIZED",
      +      "VIEWPORT_WIDTH_DEFAULTED",
      +      "VIEWPORT_WIDTH_PERCENTAGE_UNRESOLVED",
      +      "VIEWPORT_WIDTH_UNITLESS_NORMALIZED"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "height",
      -  "heightUnit",
      -  "inspectionLevel",
      -  "pages",
      -  "revision",
      -  "viewBox",
      -  "width",
      -  "widthUnit"
      -]New value: +[
      +  "ambiguousViewport",
      +  "height",
      +  "heightUnit",
      +  "inspectionLevel",
      +  "normalization",
      +  "pages",
      +  "revision",
      +  "resources",
      +  "viewBox",
      +  "width",
      +  "widthUnit",
      +  "warnings"
      +]
  2. First observedv0.0.0

TDQS

B3.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, and the description adds real context beyond that: the document must be authorized, the inventory is bounded and redacted, and the operation is non-mutating. Redaction and bounding are behaviorally meaningful and not derivable from the annotations. It does not, however, say what authorization means or what the bounds are.

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?

A single well-formed sentence with the verb and scope front-loaded and no filler. It is dense but not padded; the only nit is that it compresses several ideas into one clause chain rather than separating them.

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

Completeness2/5

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

An output schema exists, so return values are covered, but an 8-parameter tool with a constrained enum, regex-validated ids, and an optimistic-concurrency field (expectedRevision) is under-described. The description communicates the spirit of the operation without the detail needed to invoke it correctly on the first attempt.

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 8 parameters, so the description carries the full burden and mostly fails it. "Bounded" loosely gestures at inventoryLimit/inventoryOffset and "redacted" at inventoryKinds, but the level enum (summary/standard/deep), expectedRevision, and includeVisualBounds are never explained, and none of the required path/workspaceId constraints are surfaced.

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 ("Reads") and a concrete resource pair ("SVG settings and a bounded, redacted design inventory"), plus a scope qualifier ("authorized document without mutating it"). An agent can tell this is an inspection tool rather than a mutation tool, though it never names a sibling to contrast with.

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?

There is no explicit when-to-use statement and no mention of alternatives such as document_snapshot, document_settings, or accessibility_inspect, which are plausible near-neighbors in the sibling list. The read-only framing implies inspection but leaves routing entirely to inference.

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