Add pdfcraft-mcp, figcraft-mcp and vectorcraft-mcp 0.1.0.

This commit is contained in:
Dominic Gundel committed 2026-10-19 23:56:50 +02:00
1 parent 694de7d1d7
commit ad0ea86adc
43 files changed
+1962 -31

No files matched your search

@@ -0,0 +1,182 @@
{
"manifest_version": "0.3",
"name": "vectorcraft-mcp",
"display_name": "VectorCraft for Claude",
"version": "0.1.0",
"description": "Vektorgrafiken zeichnen – Typenschilder, Schilder, Piktogramme – und als SVG/PDF/DXF exportieren. Getestet mit VectorCraft 0.13.1. Benötigt VectorCraft aus dem ArtCraft-Launcher unter C:\\Program Files\\VectorCraft\\.",
"author": {
"name": "Dominic Gundel"
},
"repository": {
"type": "git",
"url": "https://git.gundel.dev/dg/claude-skills.git"
},
"homepage": "https://git.gundel.dev/dg/claude-skills",
"license": "MIT",
"icon": "icon.png",
"compatibility": {
"platforms": [
"win32"
]
},
"server": {
"type": "binary",
"entry_point": "server/README.txt",
"mcp_config": {
"command": "C:\\Program Files\\VectorCraft\\vectorcraft-cli.exe",
"args": [
"mcp",
"--automation-read-root",
"${user_config.read_root}",
"--automation-write-root",
"${user_config.write_root}"
]
}
},
"tools": [
{
"name": "command_list",
"description": "Discover command ids, labels, parameter descriptions and enabled state."
},
{
"name": "command_run",
"description": "Run an engine command by id with its JSON params."
},
{
"name": "command_batch",
"description": "Run steps in order; each edit is its own undo step, or with atomic:true the whole batch is one (named `label`, else after its first edit)."
},
{
"name": "doc_inspect",
"description": "Summary of the active document, including artboards, layer tree, selection and history."
},
{
"name": "render_preview",
"description": "Render an artboard (default the first) as inline PNG without changing the document."
},
{
"name": "ui_inspect",
"description": "Inspect the connected desktop interface; returns a tool error in headless mode."
},
{
"name": "ui_screenshot",
"description": "Capture the connected desktop window as inline PNG; requires a running desktop app."
},
{
"name": "list_commands",
"description": "List VectorCraft commands (id, label, menu path, shortcut, parameter description, enabled state)."
},
{
"name": "run_command",
"description": "Execute any VectorCraft command by id with JSON params (see list_commands for ids and params)."
},
{
"name": "inspect_document",
"description": "Summary of the active document: artboards, layer tree (ids, names, kinds, bounds, fill/stroke), selection, undo history, current tool and default paint."
},
{
"name": "inspect_ui",
"description": "UI state of the running desktop app: tool and options, panels, dialogs, view (zoom/center), window, documents, perf."
},
{
"name": "select_tool",
"description": "Switch the active tool (as clicking it in the Tools panel)."
},
{
"name": "pointer_gesture",
"description": "Drive the active tool with mouse events in document coordinates, exactly like the mouse would (e.g."
},
{
"name": "draw_path",
"description": "Create a path from points ([[x,y],…] or [{x,y,in?:[x,y],out?:[x,y]},…] with Bézier handles) or SVG path data `d`, then apply optional paint, stroke dash/cap/join, opacity, name and live effects."
},
{
"name": "draw_shape",
"description": "Create a live shape and apply optional paint."
},
{
"name": "set_paint",
"description": "Set fill, stroke and/or stroke weight on the selection (or `ids`) and as the default for new art."
},
{
"name": "press_key",
"description": "Send a key press with modifiers, e.g."
},
{
"name": "type_text",
"description": "Type text into the focused widget (text tool, dialog field)."
},
{
"name": "invoke_menu",
"description": "Invoke a menu item by its command id (same ids as list_commands, including UI-only commands like view.zoomIn or window.* in the desktop app)."
},
{
"name": "open_panel",
"description": "Open a panel in the desktop app's dock by id (layers, swatches, stroke, align, pathfinder, transform, …; case-insensitive, display labels like \"Layers\" work too)."
},
{
"name": "screenshot",
"description": "Render the active artboard to PNG and return it as an image (optionally also saving it to `path`)."
},
{
"name": "open_file",
"description": "Open a file as a new, active document: .vectorcraft, .drawcraft, .svg, .svgz, .pdf, .ai, .ait, .png, .jpg, .jpeg, .gif, .webp, .tif, .tiff, .bmp, .tga, .vda, .icb, .vst, .psd, .psb, .vctemplate, .dxf, .emf, .wmf, .eps, ."
},
{
"name": "save_file",
"description": "Save the active document with the engine's document.save: by default to its own file in its own format (native .vectorcraft unless it was opened from or saved as SVG, PDF or a restorable .ai)."
},
{
"name": "export",
"description": "Export the active document with the engine's document.export (the same bytes in the app and headless), in any format of the `format` enum: vectors (svg/svgz with the artboard as viewBox, eps, dxf, emf, wmf), pdf and ai ("
},
{
"name": "add_text",
"description": "Create point type at (x, y) (the first baseline), area type when width/height are given (`fit` autoHeight grows the frame to the text, shrinkText scales the text down to fit), or type in/on an existing path (`path` id + "
},
{
"name": "apply_effect",
"description": "Append a live effect (Effect menu) to the selection or `ids`."
},
{
"name": "pathfinder",
"description": "Combine the selected (or `ids`) objects destructively, back to front: unite, minusFront, intersect, exclude, divide, trim, merge, crop, outline, minusBack."
},
{
"name": "transform",
"description": "Move, rotate, scale, reflect or shear the selection (or `ids`); several may be combined and run in that order."
},
{
"name": "create_graph",
"description": "Create a graph (graph tools) in the plot rectangle."
},
{
"name": "text_wrap",
"description": "Make the selected (or `ids`) objects wrap objects: area type below them in the same layer flows around them (offset in pt, invert = flow inside)."
},
{
"name": "undo",
"description": "Undo the last change (Edit → Undo)."
},
{
"name": "redo",
"description": "Redo the last undone change (Edit → Redo)."
}
],
"user_config": {
"read_root": {
"type": "directory",
"title": "Lese-Ordner",
"description": "Hier darf Claude Dateien lesen. Ruhig weit fassen (z. B. Dokumente); der Schreib-Ordner sollte darin liegen, damit Ergebnisse wieder geöffnet werden können.",
"required": true,
"default": "${HOME}/Documents"
},
"write_root": {
"type": "directory",
"title": "Schreib-Ordner",
"description": "Nur hier darf Claude speichern. Eng fassen, eigener Ordner, z. B. Dokumente\\Claude.",
"required": true,
"default": "${HOME}/Documents/Claude"
}
}
}