inkscape-mcp-server
Provides tools for driving Inkscape headlessly, including path operations, object transforms, filters, document editing, SVG optimization/validation/animation, and PNG export, with verification that Inkscape actions actually succeeded.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@inkscape-mcp-serverOptimize icon.svg and export as PNG at 300 DPI."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
inkscape-mcp-server
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 --checkWhy 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 $?
0Any wrapper that trusts the exit code reports a successful operation that never
happened. The existing Inkscape MCP server calls file-vacuum-defs and file-cleanup —
neither 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 |
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 |
|
object |
|
document |
|
svg |
|
export |
|
escape hatches |
|
server |
|
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
Start here. Ten traps, with reproductions | |
All 23 tools and their parameters | |
The layers, and how to replace one | |
Feature matrix against the existing server | |
Adding tools, conventions, testing | |
What changed in each version |
Roadmap
Tracked in Issues — comments and ideas welcome.
Persistent shell mode — reuse one Inkscape process instead of spawning per call | |
Document creation — every tool currently needs an existing SVG to start from | |
Path-data rewriting in | |
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.
Maintenance
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
- AlicenseAqualityAmaintenanceMCP 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.316721MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that lets AI agents drive Inkscape — interactively alongside the GUI or headlessly from the CLI55MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to control Inkscape for vector graphics editing via MCP tools.39MIT
- AlicenseAqualityBmaintenanceEnables AI agents to inspect, edit, validate, render, and export SVG/Inkscape documents safely with reversible operations and risk-classed tools.872MIT
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.
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