inkscape-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INKSCAPE_BIN | No | Path to the Inkscape binary. Optional; the server checks PATH and usual install locations if not set. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| path_booleanA | Boolean path ops: union, difference, intersection, exclusion, division, cut. Uses the correct path-* action names, inserts object-to-path automatically (booleans silently no-op on / without it), and chains pairwise for more than two objects (Inkscape only combines two at a time). |
| path_convertC | Convert paths and shapes: object-to-path, stroke-to-path, text-to-path, combine, break-apart, simplify, flatten, fracture, to-guides, to-marker, to-pattern. Set with kind. |
| path_geometryA | Computed path geometry: offset/inset (Inkscape's one real headless gap), fillet, chamfer, powerstroke, taper, mirror, radial-repeat. Semantics read from Inkscape's own source so results match the GUI. |
| path_effectB | The 8 live path effects with no other headless route: sketch, rough_hatches, spiro, bspline, dynastroke, lattice, knot, vonkoch. Parameters and defaults taken from Inkscape's lpe-*.cpp. operation: list | apply. |
| object_transformB | Move, scale, rotate, grow and flip objects. Real geometry, headless. |
| object_styleA | Set ANY XML attribute or CSS property on a selection (object-set-attribute / object-set-property). No other Inkscape MCP server exposes this. |
| object_arrangeC | Align, distribute, remove overlaps, and raise/lower in the stacking order. |
| object_cloneB | Tiled clones as real links (like Inkscape's own), and duplicate. Neither exists as an Inkscape action at all. |
| object_filterC | Inkscape's 212 PRESET FILTERS - the whole Filters menu: bevels, metal, jelly, glass, textures, shadows, glows, distortion. operation: list | menus | apply. |
| object_composeC | Compose objects: text on path, flow text into a shape, clones, clip and mask (including Power Clip), group/ungroup, trace bitmap, fill-between-paths. |
| object_queryA | Real bounding boxes for every object, via Inkscape's --query-all. Use this to discover the object ids in a document before acting on them. |
| document_editA | 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. |
| svg_optimizeA | REAL SVG optimisation: prune unreferenced defs, strip inkscape:/sodipodi:/RDF cruft, drop empty groups, round coordinates, remove default style properties, minify. Done in Python because Inkscape's own vacuum-defs is a VERIFIED silent no-op headlessly and document-cleanup is window-scoped. Reports bytes saved. |
| svg_validateA | SVG quality assurance. operation: validate | viewbox | stroke_fill | size_limits | audit_web | audit_pack (a whole directory). Paint detection reads style= AND presentation attributes AND inherited paint, so Inkscape-authored files are not falsely reported as empty. |
| svg_analyzeB | Document analysis. operation: statistics | structure | dimensions | quality | full. The quality score runs 11 weighted checks and explains every deduction with the tool call that fixes it. |
| svg_animateB | SMIL and CSS animation applied to objects ALREADY IN THE DOCUMENT, by id. operation: list_presets | apply_preset | animate | transform | motion | color | css. 12 presets, 7 easing curves, motion along any path in the document. Inkscape has no animation action of any kind. |
| export_fileA | Export to PNG, SVG, PDF, PS or EPS with full control: dpi, size, margin, area, background, text-to-path, compression. Verifies the output exists and is non-empty, because Inkscape exits 0 on an empty export. |
| export_batchA | Batch export. operation='layers-to-files' writes every Inkscape layer to its own file; operation='multi-dpi' writes one document at several DPIs. Reports per-item success so one bad layer does not hide the rest. |
| export_previewA | Render to PNG and RETURN THE IMAGE, so the calling model sees its own work. A chain that 'succeeds' and produces a blank canvas is obvious in a picture and invisible in a JSON payload. |
| action_runA | Run any raw Inkscape action chain. Checks scope first and explains precisely why an action failed: window-scoped, a dead registry entry, or a genuine typo. |
| action_findA | Search the action registry extracted from the Inkscape source: name, scope (app = headless, win = GUI only), source file, parameter type. 348 actions, of which 130 are window-scoped and can never work headlessly. |
| extension_runA | Run any of the 157 bundled Inkscape EXTENSIONS headlessly - Pattern along Path, Envelope, Perspective, Jitter Nodes, gears, QR codes, isometric grids, Hershey text. operation: list | describe | run. Calling these as Inkscape actions silently does nothing; this runs the .inx scripts properly. |
| server_infoA | Server health and self-check. operation: status | version | config | diagnostics | selftest | help. selftest round-trips a real document through both Inkscape and the pure-Python path. Run this FIRST when anything behaves oddly. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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