Repository navigation
First public release. Round-2 build from ten field reports, editing of files made elsewhere, and release packaging:
24 tools, 160 tests against the real Inkscape.
Added
- 2026-09-28 — Release packaging: MIT license, PyPI metadata (
uvx inksmcp),server.jsonfor the MCP Registry, CI on Linux, Windows and macOS, a tag-triggered release workflow (PyPI trusted publishing, GitHub release, registry), user docs (getting started, recipes, a tool reference generated from the server), contributing and security notes. Development docs moved todocs/development/. - 2026-09-28 — Editing files made elsewhere (D-030, experiment e30):
document_opennormalises page geometry (%, mismatched or offset viewBoxes, stretched pages) and root paint without changing the rendering, and says so innotes;.svgzopen/save;inspectshows computed fill/stroke,usetargets, flowed text and symbols, andfindlists matches by type, colour, text, href or id prefix;useelement type (library.svg#symbolcopies a symbol in once); deleting elements removes defs only they used. 6 new tests (140 total). - 2026-09-28 — Round-2 step 3 (D-028):
repeatcell(rows placed by their own column/row numbers) and thesplittool (a region divided into named cell rects by column ratios, height ratios and gutters). Tables are a documentedsplit+repeatrecipe. Experiment e28. 3 new tests (132 total). - 2026-09-28 — Round-2 step 2 (D-027): automatic overlap warnings in editing responses (text on text, text across a shape edge, un-haloed text crossed by a line; stacked elements reported once);
placekey (stored below/above/left_of/right_of + gap + align, re-applied withfit_toin one dependency order, also after align/layout moves of the reference);layoutitems with ananchor. Experiment e27. 6 new tests (129 total). - 2026-09-28 — Round-2 step 1, files in (D-026):
imageelement (linked or embedded, natural size,object_fit),import_filetool (SVG as one scaled group with renamed ids and fixed references; images),add_elementselements_pathandrepeatrows_path(JSON/CSV). Experiments e25, e26; findings F33, F34. 4 new tests (123 total). - 2026-09-28 — Round-2 step 0 (D-025):
clipkey on any element (element id or rect; clipped bbox; follows the element), texthalo/halo_width, connectorstart_gap/end_gap, connectors placed in their ends' layer or a "Connectors" layer withlayersandlabelsin the response,repeatorder: "column", shortened id runs inrepeatresponses,id_prefixclash error, clearerrepeat/align/ element descriptions. Experiment e24; findings F32, S11. 6 new tests (119 total). - 2026-09-28 —
path_operationreturnsresult: the ids holding the outcome (combine keeps the top id, the other boolean ops the bottom one; E22, F30). - 2026-09-28 —
gridlog axes:labels: "decades" | "paper"; decade labels followstartby default when it is given (D-023). - 2026-09-27 — rect
fit_to/fit_padding/fit: a box sized around other elements after wrapping, re-fitted when they are edited, chained in dependency order, usable inrepeattemplates. Decision D-020. 4 new tests (103 total). - 2026-09-27 —
repeattool: stamp a template per data row (placeholders, local ids, step/columns, alternate mirroring that reflects shapes and moves texts/groups as blocks, off-page warnings, all or nothing). Experiment e21; finding F29; decision D-019. E20 timeline: 37 % less request text. 3 new tests (99 total).
Fixed
- 2026-09-28 — Windows: with Inkscape installed through Chocolatey (and other package managers whose shims start the GUI build), the server picked the shim on PATH and silently loaded nothing. The locator now prefers
inkscape.comon PATH, then the install folders, and refuses a GUI-only build with a message (F39). - 2026-09-28 — From field report 12 (re-run on 0.3.0) and the first CI run: text wrapped with
widthcould overflow by up to 2.3 % in fonts other than Arial (lines are now measured, F38);useignored width/height for symbols without a viewBox and drew library icons in the wrong units;run_actionsextensions silently changed the whole drawing whenselectwas given (now refused, F37); saved files reopened with a rounding "normalisation";find textmissed flowed text past 160 characters.document_savereports bytes, PNG exports their pixel size. 9 new tests (159 total); locator test (160). - 2026-09-28 — From field report 11 (editing Inkscape's own sample files):
.svgzcould not be opened and unexpected errors reached the agent as an empty "Error executing tool"; pages whose viewBox didn't match their size were measured wrongly andpage_fitwrote a non-uniform scale;import_filedropped the source root's fill/stroke, could stretch, and numbered id-less elements differently fromdocument_open;placereported the move instead of the box;sodipodi:docnamekept a temp name; thedefaultserror blamed every key whentypewas the problem;find-style lookups skipped elements at random (unstable proxy ids). - 2026-09-28 — Overlap warnings no longer flag shapes hidden under a text's opaque balloon or caption box (comic page 2: 15 false warnings → 0), and findings are grouped per text (D-029, experiment e29). 2 new tests (134 total).
- 2026-09-28 — A crash of the Inkscape shell part-way through a tool left the document half-changed (e.g. elements written but not wrapped/fitted). Every tool now restores the document on failure, and a dead shell is retried once (E23, D-022). Errors name the exit code and command. 10 new tests (113 total).
- 2026-09-28 —
gridsilently dropped major lines and labels whenmajorwas a rounded multiple ofminor(11.6667 / 2.3333); spacings that don't nest are now an error (D-023).plotno longer warns about edge points a hair outside. - 2026-09-28 —
path_operationdescribed combine's surviving id wrongly. - 2026-09-27 — The element help in the
add_elementsdescription showed a garbled em dash (—). - 2026-09-27 —
vertical_anchorplaced texts inside transformed groups or layers wrongly: it compared the localywith document-space measurements.