Skip to main content

Inkscape MCP

inkscape-mcp — drive Inkscape from an AI agent

Let your AI agent design, edit, and analyze vector graphics through Inkscape — live alongside a running Inkscape window, or headless from the command line.

PyPI Python versions PyPI downloads CI License

MCP FastMCP Inkscape Platform: Linux | Windows Ruff pre-commit

With Inkscape MCP, your coding agent can do everything a designer does in Inkscape — sketch and reshape paths, apply effects and filters, render LaTeX equations, generate barcodes and QR codes, convert between formats, query and rewrite document structure — through plain conversation instead of menu clicks.

Pair it with a running Inkscape window and the agent works alongside you — it sees what you have selected, opens property dialogs on your behalf, applies edits that appear on the canvas in real time (each one a normal undo entry you can roll back), and rasterizes its own work to inspect and refine the result. Or run it headlessly to batch-convert artwork, automate exports, and build pipelines around vector assets — no GUI required. The full Inkscape feature surface, including its hundreds of bundled extensions, is reachable as tool calls.

How it works

  1. The agent calls one of eight portmanteau tools — inkscape_file, inkscape_vector, inkscape_analysis, inkscape_system, inkscape_extension, inkscape_gradient, inkscape_metadata, or inkscape_live — with an operation string that picks the actual behavior.
  2. For headless work the server dispatches through InkscapeCliWrapper, which builds and runs an inkscape --actions=... (or --export-...) command. For live-canvas work it talks to a running Inkscape window over D-Bus and stages SVG fragments through the clipboard.
  3. Inkscape reads your input file (or the open document), runs the operation, and writes the output.
  4. The server returns dimensions, file paths, validation results, or whatever the operation produces — typed and trimmed for the agent's context window.

No external network. Just the Inkscape binary, an optional running Inkscape window, and your local files.

Getting started

Tested with Inkscape 1.4.4 on Ubuntu 24.04.

# 1. Install Inkscape + system headers for pycairo / pygobject
sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape libcairo2-dev libgirepository-2.0-dev libgirepository1.0-dev \
pkg-config python3-dev xclip
# xclip stages SVG fragments for clipboard-based insert into the canvas.
# On Wayland substitute wl-clipboard for xclip — clipboard ops auto-detect.

# 2. Register with Claude Code (uvx fetches inkscape-mcp from PyPI on first run)
claude mcp add inkscape_mcp -s user -- uvx inkscape_mcp
claude mcp list | grep inkscape_mcp   # → ✓ Connected

# 3. (Re)start Inkscape so it picks up the bundled extensions
# The MCP server auto-installs its inkex extensions to
# ~/.config/inkscape/extensions/inkscape_mcp/ on first boot. Inkscape only
# scans the extensions dir at startup, so close + reopen Inkscape once.
# Verify via:
#   inkscape_system(operation="diagnostics")  → bridge.needs_restart should be false

That's it. Ask the agent to convert an SVG, query an object's bounding box, run a boolean union — it'll pick the right tool.

Alternative install paths

# Plain pip into a venv
pip install inkscape-mcp

# uv into a project
uv add inkscape-mcp

The PyPI name is inkscape-mcp (hyphen). The Python import name is inkscape_mcp (underscore — PEP 8 / valid identifier). Both pip install inkscape-mcp and pip install inkscape_mcp resolve to the same project (PEP 503 name normalization).

Windows

The headless tools install and run exactly as above. The live bridge (inkscape_live) needs one extra piece: a Windows dbus-daemon, which isn't part of a stock Windows install. The simplest source is MSYS2 — install it, then:

pacman -S mingw-w64-x86_64-dbus   # provides dbus-daemon.exe; MCP auto-discovers it

gdbus.exe itself already ships with Inkscape, and the daemon's dependency DLLs are covered by Inkscape's, so MSYS2 is only the delivery vehicle for that one dbus-daemon.exe. If you already have one elsewhere, point INKSCAPE_MCP_DBUS_DAEMON at it (and INKSCAPE_MCP_GDBUS if gdbus.exe isn't found automatically).

On Windows the live bridge launches and manages its own Inkscape instance — a hand-launched Inkscape isn't on the bus, so have the agent open_file a document to work on it. Tested on Inkscape 1.4.x.

Configuration

The Claude Code entry the install command above creates looks like:

{
  "mcpServers": {
    "inkscape_mcp": {
      "command": "uvx",
      "args": ["inkscape_mcp"]
    }
  }
}

Pin a non-default Inkscape with INKSCAPE_BIN=/path/to/inkscape in the server env. Inspect from the agent via inkscape_system(operation="diagnostics") — it reports which value came from which source (env var, config file, default).

Try asking your agent to…

Editing the file you have open

  • "Recolor everything blue to red"
  • "Open document properties — I can't find the DPI setting"
  • "Select the pen tool so I can draw a curve"
  • "Show me the XML editor"
  • "Hide the snap controls bar"
  • "Add a drop shadow to all the rectangles"
  • "Convert this monogram to a single compound path"
  • "Run a boolean union on the two selected shapes"

Generating SVG content

  • "Drop in an isometric grid into this document"
  • "Generate a calendar for the current month and paste it here"
  • "Make me a 24×24 settings cog icon — currentColor stroke, round caps"

Inspection & format conversion

  • "Export this to a 4× PNG and a print-ready PDF"
  • "What's the bounding box of #logo-mark?"
  • "Optimize this SVG — strip Inkscape namespace cruft"
  • "List every object in the file with its type and size"

Live-canvas workflows (Inkscape running)

  • "Read what I have selected"
  • "Align these three icons horizontally with equal spacing"
  • "Swap the whole palette to a warmer earth-tone scheme"
  • "Add a 3-stop gradient to the rect with id hero"

The agent picks the right tool. It can drive 1,073 of Inkscape's actions over D-Bus, fall back to headless CLI when the GUI isn't running, and run inkex extensions for things D-Bus doesn't cover.

Available tools

  • inkscape_file — load, save, convert (PDF/PNG/EPS/PS/…), validate, batch convert.
  • inkscape_vector — 47 ops covering boolean, tracing, path simplification, optimization, layer export, geometry mutation, barcodes, LPE chains, tile clones.
  • inkscape_analysis — quality scoring, statistics, object lists, layer structure.
  • inkscape_system — server status, diagnostics, extension discovery and execution.
  • inkscape_extension — discover and invoke any installed inkex extension (headless or on the live canvas).
  • inkscape_gradient — gradient-stop manipulation; linear↔radial conversion.
  • inkscape_metadata — read/write Dublin-Core RDF metadata.
  • inkscape_live — drive the running GUI over D-Bus: live edits, paste-in-place, XML edits, rasterize so the agent can see the canvas (preserves undo).

Full operation list in docs/TOOLS.md.

Learn more

Star history

Star History Chart

Support

If you like my work and found this useful, feel free to support me at buymeacoffee.com/aravindev.

Buy me a coffee QR code

License

MIT — see LICENSE. This project is a fork of upstream MIT-licensed work; attribution and lineage details are in NOTICE.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inkscape_mcp-1.1.3.tar.gz (940.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inkscape_mcp-1.1.3-py3-none-any.whl (125.3 kB view details)

Uploaded Python 3

File details

Details for the file inkscape_mcp-1.1.3.tar.gz.

File metadata

  • Download URL: inkscape_mcp-1.1.3.tar.gz
  • Upload date:
  • Size: 940.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for inkscape_mcp-1.1.3.tar.gz
Algorithm Hash digest
SHA256 f227db5cb336acade73be89bc667619c1aca5184ba2fcafc613bcf8160c9733b
MD5 1d86e4e6803ed537b6eb8d39f9928291
BLAKE2b-256 8d225191047297dff842460b5ee7c5d5071ef65a9795651f555f856f92fe5319

See more details on using hashes here.

Provenance

The following attestation bundles were made for inkscape_mcp-1.1.3.tar.gz:

Publisher: publish.yml on aravindev/inkscape_mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file inkscape_mcp-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: inkscape_mcp-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 125.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for inkscape_mcp-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 60efd4b699c6251fba00bad83866843502157183f041e0197633f9d73e6a3388
MD5 be30e458ec347ee63170b65f81e73269
BLAKE2b-256 76d31b5ba74ff3d9fbfc88ad52e99fdfcfef381fd7fde43b0b0e460d8747ba6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for inkscape_mcp-1.1.3-py3-none-any.whl:

Publisher: publish.yml on aravindev/inkscape_mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

This release

1.1.3 This release

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page