Skip to main content
Glama
code-and-crypto

inkscape-mcp-server

document_edit

Edit Inkscape document structure headlessly: manage layers, gradients, pages, node paths, fonts, and canvas geometry. Automate SVG changes without opening the GUI.

Instructions

Document structure. area: layers | gradient | pages | nodes | fonts | canvas. Layers, gradients (linear/radial/MESH), multi-page, node-level path editing, font enumeration, and canvas geometry (info, fit-to-drawing, resize, set-viewbox, set-units). Inkscape's 24 layer-* actions are all window-scoped, so this is the only headless route.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoX coordinate.
yNoY coordinate.
areaNoWhich sub-area of the document to work on.
colsNoNumber of columns.
rowsNoNumber of rows.
indexNoZero-based index.
labelNoHuman-readable label.
limitNoMaximum number of results.
queryNoSearch string.
ratioNoPosition along a segment, 0..1.
stopsNoGradient stops.
unitsNopx | pt | pc | mm | cm | in.
widthNoWidth.
colorsNoList of colours.
heightNoHeight.
lockedNoWhether the layer is locked.
marginNoExtra space added around the result.
new_idNoid to give the object this tool creates.
opacityNoOpacity, 0..1.
visibleNoWhether the layer is visible.
apply_toNofill or stroke.
layer_idNoLayer id to act on.
positionNoPosition in the stacking order.
object_idNoA single SVG element id.
operationNoWhich operation to run. See the tool summary for valid values.
input_pathNoSource file to read.
object_idsNoSVG element ids to act on. Explicit ids always win over select_all.
output_pathNoFile to write. Overwritten if it exists.
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses a genuine context fact (this is the 'only headless route' vs window-scoped layer actions) but reveals nothing about per-operation side effects, whether operations mutate the input file or require output_path, reversibility of node-level edits and canvas resizing, or what the tool returns. For a mutation-capable tool covering operations like 'resize' and 'set-viewbox', this is a significant transparency gap.

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?

Three sentences, dense with information, with the core scope front-loaded ('Document structure. area: ...') and each sentence earning its place: scope, domain enumeration with operation examples, and the key routing fact about headless vs window-scoped actions. No filler or repetition beyond an acceptable restatement of scope.

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?

For a tool with 28 parameters, 6 sub-areas, no annotations, and no output schema, the description is a solid overview but not complete enough for reliable invocation. It does not map operations to their required parameters (e.g., resize needs width/height, set-viewbox needs coordinates), does not enumerate the full operation set, and gives no hint about return values even though the tool performs 'font enumeration' and 'canvas geometry (info)' queries that presumably return data. An agent would still need significant trial and error to call this correctly.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real value on top: it enumerates the valid values for 'area' (layers | gradient | pages | nodes | fonts | canvas) that the schema leaves open, lists example operations for 'operation' (info, fit-to-drawing, resize, set-viewbox, set-units), and clarifies gradient types (linear/radial/MESH). It still fails to enumerate the 24 layer-* operation values referenced by the operation parameter, so it does not fully compensate for the schema's open-ended operation field.

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 opens with a clear resource domain ('Document structure') and enumerates the specific sub-areas and operations it covers: 'area: layers | gradient | pages | nodes | fonts | canvas', plus concrete canvas operations like 'fit-to-drawing', 'resize', 'set-viewbox', and 'set-units'. It distinguishes itself from the object_*, path_*, and export_* sibling groups by scope, and the 'only headless route' note differentiates it from Inkscape's action layer-*. It is a broad multi-operation dispatcher rather than a single verb+resource, which prevents 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 Guidelines4/5

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

The description gives explicit routing context: 'Inkscape's 24 layer-* actions are all window-scoped, so this is the only headless route.' This tells an agent exactly when to reach for this tool for layer operations in a headless context. It does not, however, name sibling tools (object_transform, path_boolean, etc.) as explicit alternatives, so the boundary with object- and path-level tools is left implied rather than stated.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/code-and-crypto/inkscape-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server