Ink/Stitch MCP Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INKSTITCH_MCP_REPO | No | Override the path to the Ink/Stitch submodule. | |
| INKSTITCH_MCP_ROOT | No | Override the root directory of the InkStitchMCP repository. | |
| INKSTITCH_MCP_TRACE | No | Set to '1' to enable stderr tracing of subprocess calls. | |
| INKSTITCH_MCP_OUTPUT | No | Override the output directory for generated files. | |
| INKSTITCH_MCP_PYTHON | No | Override the path to the Python interpreter for Ink/Stitch. | |
| INKSTITCH_MCP_TIMEOUT | No | Timeout in seconds for normal operations. | |
| INKSTITCH_MCP_SLOW_TIMEOUT | No | Timeout in seconds for slow operations (e.g., exports). |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| health_checkA | Verify the Ink/Stitch toolchain is ready (venv, checkout, fonts, pystitch). With run_smoke_test=True, also exports a tiny test design to DST end-to-end (takes a few seconds). |
| list_formatsA | List machine-embroidery file formats Ink/Stitch can read and write (dst, pes, jef, exp, vp3, ...). |
| list_fontsA | List embroidery lettering fonts available to generate_lettering (name, scale limits, description). |
| list_known_paramsA | List every legal Ink/Stitch per-element parameter name usable with set_element_params. |
| list_elementsB | Inventory embroiderable elements in an SVG: ids, labels, inferred stitch type (fill/stroke/satin), and existing Ink/Stitch params. |
| get_element_paramsC | Read Ink/Stitch parameters from SVG elements (all parameterized elements, or only the given ids). |
| set_element_paramsA | Set or remove Ink/Stitch stitch parameters on SVG elements. updates maps element id -> {param_name: value}; value null removes the param. Param names must come from list_known_params (e.g. angle, row_spacing_mm, running_stitch_length_mm, satin_column, fill_underlay). Booleans are written as true/false; *_mm values are millimeters. Overwrites the input SVG unless output_svg_path is given. |
| export_embroideryA | Compile an SVG design into a machine embroidery file (format from the output extension: .dst, .pes, .jef, .exp, .vp3, ...). Returns stitch statistics. Defaults to /.dst when output_path is omitted. |
| import_embroideryA | Convert a machine embroidery file (dst/pes/jef/exp/vp3/hus/...) into an SVG of its stitch plan, editable in Inkscape. |
| export_zipA | Export an SVG design to several formats at once as a ZIP (e.g. ["dst","pes","svg","threadlist"]). x/y_repeats panelize copies with the given spacing (mm). |
| design_statsB | Stitch statistics for a machine embroidery file: stitch/jump/trim counts, color changes, threads, size in mm. |
| convert_machine_formatB | Convert one machine embroidery file to another format directly (e.g. mydesign.dst -> mydesign.pes). Format taken from the output extension. |
| render_png_previewA | Render a PNG preview of a design's stitches. Accepts a machine file (dst/pes/...) or an SVG (which is compiled first). Returns the image. |
| thread_listB | Plain-text thread/color report for an SVG design: design size, stitch counts, thread order. |
| troubleshootB | Validate a design's embroidery elements; returns structured errors/warnings with positions and suggested fixes. |
| density_mapC | Annotate an SVG with a stitch-density heat map layer (red/yellow/green markers per stitch). |
| preview_stitch_planC | Add a rendered stitch-plan layer to an SVG (what will actually be sewn). mode: 'simple' or 'realistic-vector'. |
| cleanup_documentB | Remove tiny/empty objects that would cause thread breaks. dry_run=True (default) only reports what would be removed. |
| transform_elementsB | Apply an Ink/Stitch conversion to SVG elements and save the result. operation: stroke_to_satin (center-line pair -> satin column), auto_satin (route satins optimally), auto_run (route strokes into one running stitch), fill_to_stroke (fill -> centerline), jump_to_stroke (connect jumps with strokes, whole document), break_apart (split multi-part fill paths), outline (fill -> outline stroke). ids selects target elements (required for all but jump_to_stroke; get them from list_elements). options overrides operation-specific flags, e.g. {"threshold_mm": 5}. |
| remove_embroidery_settingsC | Strip Ink/Stitch parameters and/or command symbols from an SVG, returning it to a plain vector design. |
| generate_letteringA | Create machine-embroidered text using Ink/Stitch's digitized fonts. font is the font name from list_fonts (e.g. "Amitaclo"). formats defaults to ["dst", "svg"]. scale_percent is clamped to the font's supported range. NOTE: each newline-separated line of text becomes a SEPARATE design (own file set) — that is the batch semantics of the underlying extension. trim: off/line/word/glyph. color_sort: off/all/line/word. text_align: left/center/right/block/letterspacing. Extracted files land in output_dir (default: /lettering_). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Each tool targets a distinct operation: import, list resources, health check, export, transform, validate, generate lettering, etc. No two tools have overlapping purposes; even similar tools like preview_stitch_plan and render_png_preview are clearly differentiated by output (SVG layer vs PNG image).
All tool names follow a consistent snake_case verb_noun or verb_noun_noun pattern, with clear action and target. Examples: import_embroidery, list_fonts, set_element_params, etc. No mix of conventions.
With 21 tools, the server covers a broad range of embroidery design workflows. While slightly above the typical 3-15 range, each tool serves a distinct purpose and the count feels justified for the domain.
The tool set covers the full lifecycle of embroidery design: importing, inspecting, modifying, generating, validating, previewing, exporting, and housekeeping. Obvious gaps like creating elements from scratch are handled by the SVG-first workflow.