Skip to main content
Glama
code-and-crypto

inkscape-mcp-server

inkscape-mcp-server

CI Python 3.9+ License: MIT Dependencies: none

A dependency-free MCP server that drives Inkscape — and tells you the truth about what happened.

23 tools. ~5,900 lines of Python. Zero dependencies — standard library only. Nothing to resolve, no lockfile, nothing to break when Inkscape updates.

# clone and run -- no install step
git clone https://github.com/code-and-crypto/inkscape-mcp-server
python inkscape-mcp-server/server.py --check     # 6/6 checks passed

# or install it
pip install git+https://github.com/code-and-crypto/inkscape-mcp-server
inkscape-mcp-server --check

Why this exists

Inkscape exits 0 when an action does not exist.

$ inkscape drawing.svg --actions="file-vacuum-defs;export-filename:out.svg;export-do"
InkscapeApplication::parse_actions: could not find action for: file-vacuum-defs
$ echo $?
0

Any wrapper that trusts the exit code reports a successful operation that never happened. The existing Inkscape MCP server calls file-vacuum-defs and file-cleanupneither action exists. Its "optimize" and "scour" tools have never optimized anything.

This server verifies. Every Inkscape call goes through one function that scans stderr for rejected actions, then checks the output file exists, is non-empty, and has a fresh mtime — because a stale file from a previous run makes a failed export look fine.

Every capability here was confirmed by running it and looking at the output. The receipts are in the repo.

Related MCP server: inkscape_mcp

What you get

157 bundled Inkscape extensions, headlessly

Pattern along Path, Envelope, Perspective, gears, QR, Hershey text

212 preset filters

the entire Filters menu — bevels, metal, jelly, glass, shadows

8 live path effects

defaults read out of Inkscape's own lpe-*.cpp

348-action registry with scope

knows which 130 actions are GUI-only and says so

Returns the rendered PNG

the model sees its own output, so blank canvases are obvious

Real SVG optimisation

in Python, because Inkscape cannot do it headlessly

SMIL + CSS animation

on your objects, by id — Inkscape has no animation action

Things Inkscape genuinely cannot do headlessly, done anyway

Offset/inset · fillet/chamfer · powerstroke · taper · radial repeat · tiled clones as real <use> links · mesh gradients · multipage · node-level path editing · layer management · SVG optimisation · animation.

Install

Needs Python 3.9+ and Inkscape 1.2+. Nothing else — dependencies = [] is not an oversight, it is the point.

{
  "mcpServers": {
    "inkscape-mcp-server": {
      "type": "stdio",
      "command": "python",
      "args": ["/path/to/inkscape-mcp-server/server.py"],
      "env": { "INKSCAPE_BIN": "/path/to/inkscape" }
    }
  }
}

INKSCAPE_BIN is optional — the server checks PATH and the usual install locations. Confirm what it found, and that everything works, with one call:

python server.py --check

self-test: 6/6 checks passed

The 23 tools

Named <group>_<action>, so the list is scannable and mirrors the source layout.

Group

Tools

path

path_boolean path_convert path_geometry path_effect

object

object_transform object_style object_arrange object_clone object_filter object_compose object_query

document

document_edit — layers · gradients · pages · nodes · fonts · canvas

svg

svg_optimize svg_validate svg_analyze svg_animate

export

export_file export_batch export_preview

escape hatches

action_run action_find extension_run

server

server_info

Full parameters: docs/tool-reference.md

Errors that teach

The caller is a model that will act on the message, so every failure names the cause and the next call:

'p1' is <rect> with no 'd'. Run path_convert kind='object-to-path' on it first —
Inkscape's own inset/outset refuses non-paths too.
'fit-canvas-to-drawing' IS in the action registry extracted from the Inkscape source,
but this Inkscape build does not expose it at runtime (it is absent from --action-list).
The registry tracks the source, not your binary. Run action_find to search for a
working equivalent.

That second one is real. fit-canvas-to-drawing is a registry entry that lies — the working route is page-fit-to-selection, and this server uses it.

Documentation

Verified Inkscape findings

Start here. Ten traps, with reproductions

Tool reference

All 23 tools and their parameters

Architecture

The layers, and how to replace one

Comparison

Feature matrix against the existing server

Development

Adding tools, conventions, testing

Changelog

What changed in each version

Roadmap

Tracked in Issues — comments and ideas welcome.

#1

Persistent shell mode — reuse one Inkscape process instead of spawning per call

#3

Document creation — every tool currently needs an existing SVG to start from

#2

Path-data rewriting in svg_optimize — another 10–20% on path-heavy files

#4

Colour operations — palette extraction, recolour, contrast checks

Status

Verified against Inkscape 1.4.2 (f4327f4).

CI runs the self-test on Linux, macOS and Windows across Python 3.9–3.13, then again with a real Inkscape installed on Linux and Windows, and finally builds the wheel and installs it into a clean environment. The badge above is the current state.

macOS has no Inkscape-backed job — installing it on hosted macOS runners is slow and flaky — so the pure-Python half is verified there and the action-backed half is not. Reports welcome.

License

MIT — see LICENSE.

A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server that turns AI into an SVG artist. One rendering engine with a rich JSON schema, AI controls all design parameters. Renders animated SVGs with CSS @keyframes and SMIL animations. Supports 16+ element types, parametric curves, pattern groups, gradient/filter/clip/mask definitions, and PNG preview. No external dependencies, runs locally via npx.
    3
    167
    21
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to inspect, edit, validate, render, and export SVG/Inkscape documents safely with reversible operations and risk-classed tools.
    87
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Tinify image optimization — one tool, max optimization

  • MCP server for Hailuo (MiniMax) AI video generation

  • MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.

View all MCP Connectors

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