{ "manifest_version": "0.3", "name": "figcraft-mcp", "display_name": "FigCraft for Claude", "version": "0.1.0", "description": "Bedienoberflächen und Screens (z. B. HMI-Masken) entwerfen und als PNG/PDF/SVG exportieren. Frühe Alpha, getestet mit FigCraft 0.7.0. Benötigt FigCraft aus dem ArtCraft-Launcher unter C:\\Program Files\\FigCraft\\.", "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\\FigCraft\\figcraft-cli.exe", "args": [ "mcp", "--automation-read-root", "${user_config.read_root}", "--automation-write-root", "${user_config.write_root}" ] } }, "tools": [ { "name": "list_commands", "description": "List FigCraft commands: id, label, menu path, shortcut, whether it is undoable, and a parameter description." }, { "name": "run_command", "description": "Execute one FigCraft command by id with JSON params (ids and params from list_commands)." }, { "name": "batch", "description": "Run several commands in order as ONE undo step (engine `command.batch`)." }, { "name": "create_node", "description": "Create a layer (engine `node.create`) and return its id and inspected properties." }, { "name": "set_properties", "description": "Set properties on one or more layers as one undo step (engine `node.set`)." }, { "name": "inspect_document", "description": "The active document as JSON: name, path, dirty flag, current page, selection, the current page's layer tree (id, name, type, x/y relative to the parent frame (groups don't count), width, height, absoluteBounds in page co" }, { "name": "get_node", "description": "One layer as JSON (same fields as inspect_document) with its children to `depth`." }, { "name": "select", "description": "Replace the selection with `ids` (switching to their page)." }, { "name": "export", "description": "Export layers (default: the selection, else every top-level layer of the current page) as png, jpg, svg, webp or pdf at `scale`, or the whole file as `fig` (experimental: written from public format knowledge, with `warni" }, { "name": "screenshot", "description": "Look at the design: renders the given layers (or the whole current page, with its background) to PNG and returns it as image content, plus its size and the scale used." }, { "name": "open_file", "description": "Open a .figcraft or .json document (FigCraft or REST API file JSON), a .fig file (best effort, with `warnings` for what wasn't imported), an .svg (becomes vectors) or an image (becomes an image layer) as the active docum" }, { "name": "save_file", "description": "Save the active document as a .figcraft file." }, { "name": "undo", "description": "Undo the last change (one command, batch or gesture)." }, { "name": "redo", "description": "Redo the last undone change." }, { "name": "pointer", "description": "Drive the canvas with the mouse in page coordinates, exactly as a user would with the current tool: click to select, drag to move/resize/marquee, or draw with a shape tool (set `tool` first, e.g." }, { "name": "key", "description": "Press a key or shortcut as if typed on the canvas: a menu shortcut (e.g." }, { "name": "type_text", "description": "Type into a text layer." }, { "name": "inspect_ui", "description": "UI state: current tool, view (zoom, centre), status, panels, timings and the app's windows (`windows`: id, title, files) when attached to the app; headless reports the session status." } ], "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" } } }