Skip to main content
Glama

Why

Vector Magic Desktop Edition is one of the best automatic tracers, but it has no command line and no API — only a wizard GUI. This Model Context Protocol server drives that GUI for you, so you can ask Claude things like:

"Vectorize D:\logos\client.png as an EPS with low detail." "Convert every image in D:\scans to SVG with unlimited colours and put them in D:\scans\vector."

It was inspired by ie3jp/illustrator-mcp-server; the result opens directly in Illustrator, Inkscape, CorelDRAW, AutoCAD, etc.

Related MCP server: illustrator-mcp

Features

Input

png, jpg, jpeg, bmp, tif, tiff, gif, psd, jp2, pcx, ppm, pnm, pgm, pbm, tga, jng, mng, xpm

Vector output

svg, ai, eps, pdf, dxf, emf

Bitmap output

png, jpg, bmp, tif — re-rendered from the vector result at 1×, 2× or 4×

Options

level of detail, colour mode, shape layering, strokes, DXF curve mode

Batch

a list of files or a whole folder in one call

Feedback

a preview image of the vector result + what Vector Magic detected (image type, detail, colours)

Safe

never overwrites files, never touches Vector Magic windows you have open, restores your Vector Magic settings after every run, works offline

Requirements

  • Windows 10/11

  • Vector Magic Desktop Edition (tested with 1.15), licensed and activated

  • Node.js ≥ 20 (bundled with Claude Desktop for .mcpb installs)

Installation

  1. Download vectormagic-mcp-server.mcpb from the latest release.

  2. Double-click it (or drag it onto Claude Desktop → Settings → Extensions) and click Install.

  3. Optional: if Vector Magic is not in C:\Program Files (x86)\Vector Magic, set the path to vmde.exe in the extension settings.

Claude Code / other MCP clients

git clone https://github.com/jhonsu01/VectorMagic-mcp-server.git
cd VectorMagic-mcp-server
npm install
npm run build
claude mcp add vectormagic -- node "%CD%\dist\bundle.cjs"

Generic MCP config:

{
  "mcpServers": {
    "vectormagic": {
      "command": "node",
      "args": ["C:\\path\\to\\VectorMagic-mcp-server\\dist\\bundle.cjs"],
      "env": { "VECTOR_MAGIC_EXE": "C:\\Program Files (x86)\\Vector Magic\\vmde.exe" }
    }
  }
}

Tools

vectorize_image

Parameter

Default

Description

input_path

—

Absolute path of the image

output_path

next to the input

Absolute output path; the extension must match format

format

svg

svg ai eps pdf dxf emf · bitmap: png jpg bmp tif

detail

auto

auto · high · medium · low

colors

auto

auto (reduced palette, logos) · unlimited (photos, gradients)

shape_mode

stacked

stacked (easiest to edit) · adjoining · adjoining_grouped (grouped by colour)

stroke_shapes

false

Outline each shape with a stroke of its colour

dxf_mode

splines

splines · few_lines · many_lines (for CAD/CNC without spline support)

bitmap_scale

1

1 · 2 · 4 (bitmap formats only)

overwrite

false

Replace an existing output file

preview

true

Return a PNG preview of the result

show_window

false

Keep the Vector Magic window on screen (debugging)

Returns the output path, size, elapsed time, a vector_magic_summary such as 400x400 (0.2 megapixel) Basic: Smooth artwork, Medium, 6 colors, and the preview.

vectorize_batch

Same options, plus input_paths (list) or input_dir (non-recursive), and output_dir. One result per image; a failure does not stop the batch.

get_vector_magic_status

Installation path, version, open Vector Magic windows, supported formats and timeouts.

How it works

Claude ──MCP──▶ Node server ──▶ PowerShell engine ──▶ Vector Magic (its own window, off-screen)
                                  │ posted mouse messages (your cursor is never moved)
                                  │ UI Automation (widget names) to know which wizard page is open
                                  │ Windows OCR of the status bar to confirm the settings
                                  └ registry: export options in, your settings restored afterwards
  1. Copies the image to a temporary folder and backs up Vector Magic's settings (HKCU\Software\Vector Magic).

  2. Writes the export options, starts a new vmde.exe and moves its window off-screen.

  3. Runs Fully Automatic, applies the requested detail / colours on the review page, and uses Quick Save (no file dialogs).

  4. Copies the result to the destination, closes its Vector Magic window and restores your settings.

Runs are queued one at a time (Vector Magic keeps a single settings key). A typical logo takes 10–20 s.

Configuration

Variable

Default

VECTOR_MAGIC_EXE

C:\Program Files (x86)\Vector Magic\vmde.exe

Path to vmde.exe or to its folder

VECTOR_MAGIC_LOAD_TIMEOUT

90

Seconds to open the image

VECTOR_MAGIC_VECTORIZE_TIMEOUT

300

Seconds per vectorization pass

VECTOR_MAGIC_SAVE_TIMEOUT

120

Seconds to write the file

Troubleshooting

  • "Vector Magic (vmde.exe) not found" — set VECTOR_MAGIC_EXE (or the extension setting).

  • "Unexpected dialog" — Vector Magic showed a message (activation, very large image…). The error includes a debug_snapshot PNG in %TEMP%\vectormagic-mcp-debug. Open Vector Magic once by hand to clear it.

  • Timeouts with huge photos — raise VECTOR_MAGIC_VECTORIZE_TIMEOUT.

  • The vector_magic_summary is read by OCR and may miss a letter (e.g. Medo); it is informative only.

Limitations

  • Windows only; tested with Vector Magic Desktop Edition 1.15 with the Spanish UI. Page detection uses widget names and is language-independent; the OCR check of the detail level knows Spanish, English, German, French and Italian words.

  • Uses the Fully Automatic pipeline; the Basic/Advanced wizards and manual segmentation editing are not automated (yet).

  • One conversion at a time.

Privacy

Everything runs locally. The server makes no network requests and sends no telemetry. Images are copied to a temporary folder that is deleted after each run.

Development

npm install
npm run build      # tsc + copy PowerShell engine + esbuild bundle
npm test           # unit tests (no Vector Magic needed)
npm run test:e2e   # real MCP end-to-end test (needs Vector Magic)
npm run pack:mcpb  # builds vectormagic-mcp-server.mcpb

The PowerShell engine (src/ps/) must stay pure ASCII: Windows PowerShell 5.1 reads BOM-less scripts in the ANSI code page (a unit test enforces it).

License

MIT. Vector Magic is a trademark of Vector Magic, Inc. This project is not affiliated with or endorsed by Vector Magic, Inc. — you need your own licensed copy of Vector Magic Desktop Edition.

Available Tools

3 tools
get_vector_magic_statusVector Magic statusA
Read-onlyIdempotent

Check that Vector Magic Desktop Edition is installed and usable: executable path, version, Vector Magic windows already open (the connector never touches them; it starts its own), supported input/output formats and timeouts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely useful context beyond that: it clarifies the connector never touches user windows and starts its own, and that timeouts/formats are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence whose colon-separated list precisely enumerates the checked items; no filler. It is slightly dense as one long clause, but every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating what the status check reports, which is exactly what an agent needs. It does not say how a negative result is signaled (error vs. field), a minor gap for a diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is empty, so there is nothing to document. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Check) plus the resource and the exact things verified: executable path, version, running windows, formats, timeouts. This clearly distinguishes it from the sibling vectorize_image/vectorize_batch tools, which do the actual conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is strongly implied — you would run this to verify the desktop app is available before vectorizing — but the description never states when to use it versus the siblings or as a prerequisite/preflight step. No explicit exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vectorize_batchVectorize several imagesA

Vectorize many images in one call with the same options (one Vector Magic run per image, sequentially). Give either input_paths or input_dir (non-recursive; only supported image types are picked). Outputs go to output_dir, or next to each input. Returns one result per image; a failure does not stop the batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorsNoauto = Vector Magic picks a reduced palette (best for logos and flat artwork). unlimited = keep every colour (photos, gradients).auto
detailNoLevel of detail. auto = what Vector Magic picks (usually high). low gives simpler shapes and smoother curves; high keeps small details.auto
formatNoOutput format. Editable vector: svg, ai, eps, pdf, dxf, emf. Bitmap rendered from the vector result: png, jpg, bmp, tif. Default svg.svg
dxf_modeNoDXF only. splines: lines + bicubic splines (smallest, most faithful). few_lines / many_lines: curves flattened into straight segments for CAD/CNC software that does not read splines.splines
input_dirNoAbsolute folder: every supported image directly inside it is vectorized.
overwriteNoReplace an existing output file. Without it, files are never overwritten.
output_dirNoAbsolute folder for the results (created if missing). Default: next to each input.
shape_modeNoHow shapes are arranged. stacked: shapes sit on top of each other (easiest to edit, no gaps). adjoining: shapes fit into cut-outs of the shapes below. adjoining_grouped: adjoining and grouped by colour.stacked
input_pathsNoAbsolute paths of the images.
show_windowNoKeep the Vector Magic window on screen while it works (debugging). By default it runs off-screen.
bitmap_scaleNoBitmap formats only: render at 1x, 2x or 4x the original pixel size.
stroke_shapesNoOutline every shape boundary with a stroke of its own colour (hides hairline gaps in some viewers).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description only needs to add operational context. It usefully discloses sequential execution, output placement, and that one failure does not stop the batch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact sentences, front-loaded with the batch behavior and followed by input/output rules. No filler, and each sentence adds operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 fully documented parameters and no output schema, the description still covers the important batch semantics: input selection, output destinations, return shape, and failure isolation. An agent has enough context to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful constraints beyond the schema: input_paths and input_dir are mutually exclusive, directory scans are non-recursive, and outputs default to sitting next to each input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: vectorizing many images in one call. The phrase 'one Vector Magic run per image, sequentially' clearly differentiates it from the single-image sibling vectorize_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains how to choose inputs ('Give either input_paths or input_dir'), that the directory scan is non-recursive, and that only supported image types are picked. It does not explicitly say when to use this versus vectorize_image, but the batch context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vectorize_imageVectorize imageA

Convert a bitmap image (PNG, JPG, GIF, BMP, TIFF, PSD, TGA...) into an editable vector file with Vector Magic Desktop Edition. Uses Vector Magic's fully automatic mode, then optionally changes the level of detail and colour mode, and writes SVG, AI, EPS, PDF, DXF or EMF (or a re-rendered PNG/JPG/BMP/TIF). Returns the output path, a summary of what Vector Magic detected (image type, detail, number of colours) and a preview image of the vector result. Takes ~10-30 s per image; large photos take longer. Files are never overwritten unless overwrite is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorsNoauto = Vector Magic picks a reduced palette (best for logos and flat artwork). unlimited = keep every colour (photos, gradients).auto
detailNoLevel of detail. auto = what Vector Magic picks (usually high). low gives simpler shapes and smoother curves; high keeps small details.auto
formatNoOutput format. Editable vector: svg, ai, eps, pdf, dxf, emf. Bitmap rendered from the vector result: png, jpg, bmp, tif. Default svg.svg
previewNoReturn a PNG preview of the vector result (as shown by Vector Magic).
dxf_modeNoDXF only. splines: lines + bicubic splines (smallest, most faithful). few_lines / many_lines: curves flattened into straight segments for CAD/CNC software that does not read splines.splines
overwriteNoReplace an existing output file. Without it, files are never overwritten.
input_pathYesAbsolute path of the image to vectorize.
shape_modeNoHow shapes are arranged. stacked: shapes sit on top of each other (easiest to edit, no gaps). adjoining: shapes fit into cut-outs of the shapes below. adjoining_grouped: adjoining and grouped by colour.stacked
output_pathNoAbsolute output path. Default: next to the input with the format extension (adds _2, _3... instead of overwriting).
show_windowNoKeep the Vector Magic window on screen while it works (debugging). By default it runs off-screen.
bitmap_scaleNoBitmap formats only: render at 1x, 2x or 4x the original pixel size.
stroke_shapesNoOutline every shape boundary with a stroke of its own colour (hides hairline gaps in some viewers).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond annotations: per-image runtime (~10-30 s, longer for photos), the non-overwrite guarantee unless 'overwrite' is true, and what the response contains (output path, detected-image summary, preview). It does not cover error/permission behaviors, but the annotations already set the safety profile (non-destructive, non-idempotent) and the description is consistent with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then layers in behavior and constraints. Dense but every sentence carries information; the format enumeration is the only slightly redundant run-on given the schema already lists formats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 12-parameter tool with no output schema, the description supplies the missing pieces an agent needs: return payload contents, runtime expectations, and overwrite semantics. Error handling and batch-vs-single routing are the only unaddressed gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 12 parameters are already documented with enums and defaults in the schema. The description only gestures at 'level of detail and colour mode' and output formats, adding no syntax or semantics beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Convert a bitmap image into an editable vector file'), names the backing engine (Vector Magic Desktop Edition), and enumerates accepted inputs and outputs. It does not explicitly distinguish itself from the sibling vectorize_batch, so sibling differentiation is left to the singular 'image' vs 'batch' inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the described workflow (automatic mode, then optional detail/colour adjustments), which is adequate for a single-purpose conversion tool. However, there is no explicit when-to-use guidance, no mention of when to prefer vectorize_batch, and no prerequisites or failure conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.1
    • First observedget_vector_magic_status
    • First observedvectorize_batch
    • First observedvectorize_image

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

The three tools target clearly distinct operations: single-image conversion, batch conversion, and environment/health status. There is no overlap or plausible misselection between vectorize_image and vectorize_batch since the scope difference (one vs many) is explicit.

Naming Consistency5/5

All names use snake_case with a verb_noun pattern (vectorize_image, vectorize_batch, get_vector_magic_status). The verbs differ meaningfully but the convention is uniform and predictable.

Tool Count4/5

Three tools is a tight, well-scoped surface for an image-to-vector conversion service: one for a single file, one for batches, one for environment checks. It is slightly lean but each tool clearly earns its place.

Completeness4/5

The core lifecycle of vectorizing images (single, batch) plus a status/preflight check is covered, and format support is reported via status. Minor gaps like querying or re-rendering prior results without re-running are acceptable workarounds.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers