genart-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_workspaceB | Create a new .genart-workspace file with optional initial sketches |
| open_workspaceA | Open an existing .genart-workspace file and load all referenced sketches |
| add_sketch_to_workspaceB | Add an existing .genart sketch file to the active workspace |
| remove_sketch_from_workspaceC | Remove a sketch from the active workspace (optionally delete the file) |
| list_workspace_sketchesB | List all sketches in the active workspace with metadata |
| create_sketchA | Create a new .genart sketch file from metadata, parameters, and algorithm. Saves to disk, auto-creates an in-memory workspace, and opens an interactive browser preview with sliders/pickers/seed controls. Save sketches to ~/.genart/sketches/.genart (directory auto-created). Do NOT present the .genart file to the user — it has no OS file association. IMPORTANT: Do not embed common utilities (PRNG, noise, easing, color math, vector ops) inline in the algorithm. Instead, declare them as components: { "prng": "^1.0.0", "noise-2d": "^1.0.0" }. Then use the exported functions directly in your algorithm (e.g., mulberry32, fbm2D). Use list_components to see all available components for the current renderer. |
| open_sketchA | Open a sketch by ID to view and edit it (sets selection) |
| update_sketchC | Update metadata, parameters, colors, or canvas of an existing sketch |
| update_algorithmA | Replace the algorithm source code of a sketch. If adding/changing components, pass them in the components field alongside the algorithm. After updating, use preview_sketch to open an interactive preview in the browser. Algorithm data bridge: Algorithms can publish data for design layers by setting window.__genart_data properties:
|
| save_sketchB | Persist the current in-memory state of a sketch to disk |
| fork_sketchC | Create a variant of an existing sketch with a new ID and optional modifications |
| delete_sketchB | Delete a sketch file from disk and remove it from the workspace |
| list_componentsA | List available reusable components from the registry, filtered by renderer and/or category. Components provide common utilities (PRNG, noise, easing, color math, etc.) that can be declared as dependencies instead of inlining code in the algorithm. |
| add_componentA | Add a component dependency to an existing sketch. Resolves the component and any transitive dependencies from the registry, validates renderer compatibility, and writes the resolved form to the sketch file. |
| remove_componentA | Remove a component dependency from a sketch. Checks for dependent components and warns if the algorithm references the component's exports. |
| get_selectionB | Return full context for the currently selected sketch(es) on the canvas |
| select_sketchC | Set the canvas selection to one or more sketches by ID |
| get_editor_stateC | Return a full snapshot of the MCP server's current state |
| set_working_directoryA | Set the working directory for file operations. All paths are resolved relative to this directory. Supports ~ for home directory. Creates the directory if it doesn't exist. |
| set_parametersC | Update the runtime parameter values of a sketch's current state |
| set_colorsB | Update the runtime color palette values of a sketch's current state |
| set_seedB | Set the random seed of a sketch, optionally generating a random value |
| set_canvas_sizeB | Change the canvas dimensions of a sketch using a preset or explicit width/height |
| randomize_parametersA | Generate random values for all or specific parameters within their defined ranges |
| arrange_sketchesB | Move specific sketches to explicit positions on the canvas |
| auto_arrangeC | Automatically lay out all or selected sketches using a configurable layout algorithm |
| group_sketchesC | Create or update a named group of sketches in the workspace |
| list_sketchesB | Scan the workspace directory for all .genart files with metadata summaries |
| search_sketchesB | Search loaded sketches by title, renderer, parameters, canvas size, or skills |
| merge_sketchesC | Combine parameters, colors, and algorithm from 2+ source sketches into a new sketch |
| snapshot_layoutC | Return a structural summary of the workspace layout for AI spatial reasoning |
| list_skillsC | List all available design knowledge skills (Phase 5) |
| load_skillC | Load a specific design knowledge skill with full content (Phase 5) |
| get_guidelinesB | Return design guidelines and best practices for a topic (Phase 5) |
| suggest_skillsB | Recommend relevant design skills based on sketch context and/or free-text description |
| design_add_layerA | Add a new design layer of a given type to the active sketch. Layer types come from registered plugins (e.g. 'typography:text', 'filter:grain', 'shapes:rect', 'guides:thirds'). Painting layers with algorithm stroke paths: Type 'painting:stroke' can render algorithm-published paths when properties include:
|
| design_remove_layerC | Remove a design layer from the active sketch |
| design_list_layersB | List all design layers in the active sketch with their types, visibility, and key properties |
| design_get_layerB | Get full details of a single design layer including all properties and transform |
| design_update_layerB | Update properties on a design layer (e.g. text content, filter intensity, shape fill color). For painting:stroke layers, updatable properties include: pathSource, pathBrushId, pathColor, depthMapping (JSON string). |
| design_set_transformC | Set the position, size, rotation, and scale of a design layer |
| design_set_blendC | Set blend mode and/or opacity on a design layer |
| design_reorder_layersC | Move a design layer to a new position in the z-order stack |
| design_duplicate_layerA | Clone a design layer with a new ID, inserted directly above the source |
| design_toggle_visibilityB | Show or hide a design layer |
| design_lock_layerA | Lock or unlock a design layer to prevent accidental edits |
| design_capture_compositeA | Get info about the design layer composite for a sketch. For full visual capture use capture_screenshot. |
| capture_screenshotA | Capture a screenshot of a sketch. Returns an inline JPEG image + metadata as text. In local mode, also writes a full-res PNG to snapshots/--preview.png (path in savedPreviewTo). When a previewUrl is present in the metadata, the full-res image is available at that URL for sharing (30-min TTL). In MCP Apps-capable clients, the captured image renders inline in the conversation. IMPORTANT TIMING: The capture waits only 500ms after page load. For animated p5 sketches that accumulate particles/lines over many frames, the screenshot may appear mostly empty. This is NORMAL — it does NOT mean the algorithm is broken. To verify animated sketches, use |
| capture_batchA | Capture screenshots of multiple sketches in parallel. Returns inline JPEG images + per-sketch metadata. In local mode, writes full-res PNGs to snapshots/. |
| critique_sketchB | Capture a sketch screenshot and return a structured self-critique framework (questions, principles, pitfalls) per aspect. Severity calibrates to compositionLevel. |
| compare_sketchesC | Side-by-side capture of 2-4 sketches with a structured comparison framework across specified aspects. |
| create_seriesB | Create a new curated series of sketches with narrative, intent, and studio workflow stages |
| develop_conceptA | Generate a structured concept development plan with mood, palette, composition, skills, and series structure recommendations |
| series_summaryC | Capture all sketches in a series with narrative context for holistic evaluation |
| promote_sketchA | Promote a sketch to the next studio workflow stage — fork, upscale canvas, update compositionLevel, and add to series |
| add_referenceB | Import an image as a reference for inspiration. Copies the image to the workspace references/ directory and attaches it to a series or sketch. |
| analyze_referenceB | Return a structured analysis framework for a reference image, with the image for visual inspection. The agent fills in the analysis using the framework prompts. |
| update_reference_analysisA | Save a structured analysis (composition, palette, rhythm, mood, technique) back to a reference after studying it with analyze_reference. |
| extract_paletteC | Return a reference image for color palette extraction, with guidelines for identifying dominant colors. The agent extracts hex colors visually. |
| export_sketchB | Export a sketch as standalone HTML, PNG, SVG, raw algorithm, or bundled ZIP |
| preview_sketchA | Open an interactive HTML preview of a sketch in the browser with parameter sliders, color pickers, and seed controls. Call this after update_algorithm to let the user explore changes interactively. Preview already opens automatically on create_sketch — only call this for re-previewing after updates. In MCP Apps-capable clients (Claude Desktop, claude.ai), the preview renders inline in the conversation. |
| _get_sketch_dataC | Get full sketch definition for rendering in the preview app |
| list_librariesA | List all curated external library presets available for use with create_sketch. Each entry shows the library name, version, compatible renderers, license, and description. Pass a library name in the |
| design_set_textA | Add a text layer or update the text content of an existing text layer. If layerId is provided, updates that layer; otherwise creates a new text layer. |
| design_apply_text_styleC | Apply styling to an existing text layer: font, size, weight (100–900), color, stroke, shadow, letter-spacing, tracking, kerning mode, optical alignment, and render mode. |
| design_list_fontsA | List all available fonts (built-in system fonts and registered custom fonts) with their weights, categories, and metrics when available. |
| design_set_text_shadowC | Enable or configure a drop shadow on a text layer. |
| design_set_type_scaleB | Generate a modular type scale and optionally apply sizes to text layers. Given a base size and ratio, computes a harmonious progression of font sizes. |
| design_get_font_metricsB | Return detailed metrics for a registered font: ascender, descender, xHeight, capHeight, available weights, and kerning pair count. |
| design_analyze_text_spacingB | Analyze kerning quality of a text layer. Reports per-pair spacing, flags problem pairs, and suggests adjustments. |
| design_convert_text_to_pathsA | Convert a text layer to SVG path data for font-independent rendering. Returns the path data without modifying the layer. |
| design_load_custom_fontA | Load a custom font from a sketch asset (OTF/TTF/WOFF2). Registers it for use in text layers and MCP tools. |
| design_apply_grainB | Add a film grain filter layer over the canvas. |
| design_apply_vignetteC | Add a vignette filter layer that darkens the edges of the canvas. |
| design_apply_duotoneC | Add a duotone color mapping filter layer. |
| design_apply_blurB | Add a Gaussian blur filter layer. |
| design_apply_chromatic_aberrationB | Add a chromatic aberration (RGB split) filter layer. |
| design_apply_halftoneC | Add a halftone filter layer (dot, line, or diamond pattern). |
| design_apply_posterizeC | Add a posterize filter layer that reduces the number of color levels. |
| design_apply_ditherB | Add a dither filter layer (Floyd-Steinberg, ordered/Bayer, or random). |
| design_apply_sharpenC | Add an unsharp mask sharpening filter layer. |
| design_apply_thresholdB | Add a threshold filter layer that converts to binary black/white (or custom colors). |
| design_list_filtersA | List all available filter types and their configurable properties. |
| design_add_shapeC | Add a shape layer (rect, ellipse, polygon, star, or arc) to the canvas. |
| design_set_shape_styleC | Update fill and stroke styles of an existing shape layer. |
| design_set_polygonB | Update polygon-specific properties (sides, rotation). |
| design_add_lineC | Add a line layer from (x1, y1) to (x2, y2). |
| design_add_pathB | Add a custom path shape layer using SVG path data (M, L, C, Q, Z commands). |
| design_list_shapesB | List all available shape types and their properties. |
| design_blend_shapesC | Create a shape blend layer: two shapes interpolated along a spine (color transitions, shape morphing, contour shading, neon glows). |
| design_update_blendC | Modify properties on an existing shapes:blend layer. |
| design_add_guideB | Add a layout guide layer. Available types: grid, thirds, golden-ratio, diagonal. |
| design_add_custom_guideB | Add a custom horizontal or vertical guide line at a specific position. |
| design_toggle_guidesB | Toggle visibility of all guide layers. |
| design_clear_guidesB | Remove all guide layers from the layer stack. |
| design_paint_layerC | Add a painting layer driven by a 2D vector field. Supports watercolor, oil, gouache, ink, pastel, and charcoal media. |
| design_get_paint_fieldA | Return the VectorField JSON for a painting layer, for inspection or editing. |
| design_update_paint_fieldB | Replace the vector field on an existing painting layer. Accepts shorthand strings, VectorField JSON, or "algorithm:channelName" to read from the algorithm data bridge. |
| design_generate_field_from_pointsA | Generate a VectorField from agent-specified control points using RBF interpolation. Each control point defines a flow direction and magnitude at a canvas position. Returns the VectorField as a JSON string suitable for use as a painting layer's 'field' property. |
| design_brush_strokeA | Create brush strokes on a painting:stroke layer. If layerId is provided, appends strokes to that layer; otherwise creates a new painting:stroke layer. Supports all 11 built-in brush presets or inline custom brushes. |
| design_list_brushesA | List all available brush presets and any custom brushes defined on a specific painting:stroke layer. |
| design_create_brushA | Add a custom brush definition to a painting:stroke layer's brushes array. The brush can then be referenced by its id in brush_stroke calls. |
| design_erase_strokesB | Remove strokes from a painting:stroke layer by index range. Indices are 0-based. If 'end' is omitted, removes only the stroke at 'start'. |
| design_fill_regionB | Create a painting:fill layer that procedurally generates marks (hatch, crosshatch, stipple, scumble, or contour) within a bounded region, with optional spatial shading. Use preset names as shorthand: hatch-light, hatch-medium, hatch-dense, crosshatch-light, crosshatch-dense, stipple-light, stipple-dense, scumble, contour. |
| design_update_fillB | Modify individual properties on an existing painting:fill layer without replacing everything. Partial strategy updates are merged with the existing strategy. |
| design_list_fill_presetsA | List all built-in fill presets with their strategy parameters. |
| design_add_mark_fieldC | Add a mark-field layer — fills regions with short directional marks following a vector field. Creates hatching/cross-hatching effects that follow flow direction. |
| design_add_flow_linesB | Add a flow-lines layer — thousands of streamlines traced through a vector field. Creates engraving, topographic, and Schwere See-style effects. |
| design_add_bristle_dabC | Add a bristle-dab layer — impressionist short dabs grid-placed over a vector field. Creates stippled, hatched, and painterly impasto effects. |
| design_add_bristle_strokeB | Add a bristle-stroke layer — oil-paint long strokes following a vector field. Creates expressive brushed paint and impasto effects. |
| design_add_paper_textureB | Add a watercolor paper texture layer (cold-press, rough, smooth, hot-press). Place at the bottom of the stack under painting layers. |
| design_add_canvas_textureC | Add a woven canvas/linen texture layer. |
| design_add_washi_textureB | Add a Japanese washi (rice paper) texture layer with visible fibers. |
| design_add_noise_textureC | Add a procedural noise texture layer (value, fractal, or ridged). |
| design_add_linen_textureC | Add a fine linen/fabric weave texture layer with regular thread structure. |
| design_add_parchment_textureC | Add an aged parchment/vellum texture with foxing spots, staining, and edge darkening. |
| design_add_concrete_textureB | Add a concrete/stone surface texture with coarse aggregate, pitting, and mineral flecks. |
| design_create_timelineB | Add an animation timeline to the sketch (sets global duration, fps, and loop). |
| design_set_keyframeC | Add or replace a keyframe on a layer property. |
| design_remove_keyframeC | Remove a specific keyframe from a layer property. |
| design_clear_keyframesB | Remove all keyframes from a layer property (or all properties if property omitted). |
| design_list_keyframesC | List all keyframes on a layer. |
| design_preview_atC | Set the current animation time for preview. Returns the time that was set. |
| design_export_gifB | Export the animation as a GIF. Returns metadata about the export. |
| design_export_framesC | Export individual frames as PNG/JPEG. Returns frame metadata. |
| design_create_motion_pathC | Create a motion path guide layer that animates a target layer along a series of points. |
| design_adjust_hslC | Create or update an HSL adjustment layer. |
| design_adjust_levelsC | Create or update a levels adjustment layer. |
| design_adjust_curvesC | Create or update a curves adjustment layer. |
| design_auto_levelsB | Automatically normalize the tonal range of the current composite by computing and applying histogram-based levels. |
| design_adjust_color_balanceB | Create a color balance adjustment layer with shadow/midtone/highlight tinting. |
| design_apply_gradient_mapC | Create a gradient map layer that remaps luminance to a color gradient. |
| design_add_solidC | Add a solid color fill layer to the canvas. |
| design_add_gradientC | Add a gradient fill layer (linear, radial, angular, or diamond). |
| design_import_imageC | Import a base64-encoded image into the sketch and create a composite:image layer. |
| design_create_groupC | Create a group layer, optionally moving existing layers into it. |
| design_set_maskA | Apply a mask to a design layer. The mask source layer clips the target layer. Modifier-path layers (painting:, adjust:, filter:*) cannot be masked. |
| design_clear_maskA | Remove the mask from a design layer, restoring full unmasked rendering. |
| design_list_assetsA | List all image assets embedded in the current sketch. |
| design_add_drop_shadowC | Add a drop shadow effect layer. |
| design_add_inner_glowC | Add an inner glow effect layer. |
| design_list_blend_modesA | List all available blend modes with descriptions and usage guidance. |
| design_set_blend_modeC | Set the blend mode of an existing layer. |
| design_add_construction_formB | Add a 3D construction form guide layer. Form types: box, cylinder, sphere, cone, wedge, egg. |
| design_add_construction_sceneC | Add multiple 3D construction forms arranged as a scene. |
| design_add_cross_contoursB | Add cross-contour lines over an outline + axis path, revealing surface direction on any organic shape. |
| design_add_value_studyC | Add a light/shadow value study overlay with terminator, cast shadow, and value zones. |
| design_add_envelopeC | Add a straight-line envelope block-in with angle and measurement annotations. |
| design_add_form_intersectionB | Add intersection lines between two or more overlapping 3D forms. |
| design_generate_construction_exerciseB | Generate a random construction exercise with forms at varying difficulty. |
| design_clear_construction_guidesB | Remove all construction:* layers from the layer stack. |
| design_distribute_pointsB | Generate a spatial distribution of points using a named algorithm (poisson-disk, phyllotaxis, hex-grid, jittered-grid, and more). Returns the point array and count. |
| design_pack_circlesC | Pack non-overlapping circles within a region using trial-and-reject sampling. Returns (x, y, radius) tuples and coverage percentage. |
| design_pack_rectsB | Pack rectangles into a bin using the guillotine algorithm. Returns placements with x, y, width, height, and rotated flag. |
| design_preview_distributionC | Generate a distribution and add a distribution:preview guide layer to visualize it non-destructively. |
| design_clear_distribution_previewB | Remove distribution:preview or distribution:voronoi guide layers from the document. |
| design_grow_patternC | Run a growth algorithm (DLA, differential-growth, substrate) and return the resulting point set and/or paths. |
| design_tile_regionC | Tile a region using Wave Function Collapse. Returns a 2D grid of tile IDs. |
| design_distribute_along_pathC | Distribute points along a polyline using arc-length parameterization. |
| design_add_figure_mannequinC | Add a figure mannequin layer. Methods: stick, bean, blocks, loomis, anatomy. Optional preset pose: standing, seated, t-pose, walking. |
| design_set_figure_poseC | Update joint positions and tilt/twist on an existing mannequin layer. |
| design_add_proportion_gridB | Add a proportion grid with head-height divisions and anatomical landmark labels. |
| design_add_gesture_lineB | Add a gesture line (line of action + optional Reilly rhythm curves). Points are normalized 0–1. |
| design_add_head_constructionC | Add a head construction overlay (Loomis ball+plane method with tilt/rotation controls). |
| design_add_figure_landmarksB | Add anatomical landmark annotations. Provide keypoints directly or reference a mannequin layer. |
| design_generate_figure_from_descriptionA | Generate mannequin keypoints from a text description (e.g., 'standing with arms raised', 'seated cross-legged'). Uses template matching with pose presets. |
| design_clear_figure_guidesA | Remove all figure:* layers from the layer stack. |
| design_add_composition_guideC | Add a composition guide layer. Types: golden-spiral, golden-triangle, armature, rabatment, safe-margins, flow-path, musical-ratios, dynamic-symmetry, phi-grid, diagonal-grid. |
| design_suggest_focal_pointsC | Return focal point coordinates for the current canvas based on a composition system. |
| design_suggest_flow_pathC | Return flow path waypoints and suggested element placement for the current canvas. |
| design_clear_composition_guidesB | Remove all composition guide layers from the layer stack. |
| design_add_perspective_gridC | Add a perspective grid guide layer. Types: one-point, two-point, three-point, isometric. |
| design_add_perspective_floorB | Add a perspective floor plane (shape layer, included in exports). |
| design_set_vanishing_pointA | Update a vanishing point on an existing perspective layer. Coordinates are normalized (0-1 is canvas bounds, values outside are allowed). |
| design_clear_perspective_guidesA | Remove all perspective:* layers from the layer stack. |
| design_add_atmosphereA | Add an atmospheric perspective post-process layer. Applies depth-aware value compression, saturation reduction, and color temperature shift. Place near the top of the layer stack. Presets: hazy, clear, golden-hour, overcast. |
| design_set_cameraB | Set the scene camera position, target, and field of view. Creates a perspective:camera layer if none exists. Position and target are in world units (1 unit = 1 meter). +X = right, +Y = up, +Z = into the scene. |
| design_set_camera_presetA | Apply a named camera preset. Creates a camera layer if none exists. Presets: landscape (standing eye-height, 60° FOV), aerial (200m altitude, 45° down, 50° FOV), street (eye-height, natural 55° FOV), worm-eye (low position, 75° dramatic FOV), isometric (orthographic, 30° angle). |
| design_orbit_cameraB | Orbit the camera around a center point by a horizontal and/or vertical angle. Requires an existing camera layer. |
| design_dolly_cameraA | Move the camera forward or backward along its look direction. Positive = toward target, negative = away. Requires an existing camera layer. |
| design_pan_cameraA | Shift the camera left/right and up/down without changing the look direction. Requires an existing camera layer. |
| design_add_pose_skeletonB | Add a pose skeleton overlay. Use a preset ID, category name for a random pose from that category, or custom keypoints. |
| design_set_pose_keypointsC | Update keypoints on an existing pose skeleton layer. |
| design_create_practice_sessionB | Create a timed pose practice session. Creates both a timer layer and a skeleton layer. |
| design_advance_poseC | Move to the next pose in a practice session. |
| design_annotate_poseA | Add study annotations to a pose skeleton (landmarks, angles, distances, action lines). |
| design_analyze_poseA | Analyze a pose skeleton — returns joint angles, proportions, center of gravity, symmetry score. |
| design_randomize_poseC | Generate a random anatomically-plausible pose or pick a random preset. |
| design_clear_pose_layersB | Remove all poses:* layers from the layer stack. |
| design_search_stylesB | Search art movements, artist profiles, and media types by keyword, era, region, or tags. |
| design_get_styleB | Get full details for a specific art movement, artist, or media type by ID. |
| design_list_recipesA | List available style recipes, optionally filtered by movement/artist/media or tags. |
| design_get_recipeB | Get full details for a specific style recipe including layers, palette, and agent guidance. |
| design_suggest_styleC | Given a natural language description of desired aesthetic, suggest matching art styles and recipes. |
| design_get_style_paletteA | Get the color palette(s) for a style movement or specific recipe. |
| design_get_style_timelineA | Get a chronological timeline of art movements, optionally filtered by year range. |
| design_apply_styleB | Apply a style recipe by adding a styles:reference guide layer to the current sketch with palette and guidance. |
| design_search_symbolsA | Search the symbol registry by keyword, category, and/or style. Returns symbols with their IDs, tags, and available styles. |
| design_list_symbol_categoriesA | List all symbol categories with symbol counts. Use this to browse the symbol library before searching. |
| design_add_symbolB | Add a symbol from the registry to a sketch. Resolves the symbol's SVG path data and caches it in the sketch file. Automatically adds the symbol-draw component if not already present. |
| design_remove_symbolB | Remove a symbol from a sketch. Warns if the algorithm references the symbol ID. |
| design_create_symbolB | Create a custom AI-generated symbol with SVG path data. Validates path syntax and enforces a 10KB size limit. Caches it in the sketch file for use with drawSymbol(). |
| design_fetch_symbolA | Search Iconify for professional icons (275k+ from Phosphor, Lucide, Tabler, MDI, etc.) or embed one into a sketch. Two modes: (1) Search — provide query to get a list of iconifyIds; (2) Embed — provide iconifyId (e.g. 'ph:cat') to fetch SVG, parse paths, and embed as a SketchSymbolDef. Approved prefixes: ph, lucide, tabler, heroicons, bi, mdi, ri, carbon, fluent. |
| design_place_symbolB | Place a symbol as a design layer on the canvas. Creates a symbols:symbol layer with embedded SVG path data for visual composition. |
| design_trace_edgesA | Detect edges in the current canvas or a reference image using Canny edge detection. Returns edge map statistics and optionally creates a trace:reference layer. |
| design_trace_linesB | Detect straight line segments using Hough transform. Runs edge detection first, then finds lines. |
| design_trace_contoursC | Extract simplified contour paths from edges using Ramer-Douglas-Peucker simplification. |
| design_trace_regionsA | Segment the image into color regions using k-means clustering. Returns dominant colors and region masks. |
| design_trace_valuesB | Generate a value (lightness) map from the image. Useful for tonal studies. |
| design_trace_shapesC | Detect geometric shapes (circles, rectangles, triangles, polygons) from contours. |
| design_trace_to_layersB | Run full image analysis and create multiple trace layers (edges, contours, regions, values). Combines multiple trace types into a layered reference structure. |
| design_trace_splinesB | Fit smooth cubic Bezier splines to traced contours. Produces vector-quality curves from edge data. Supports threshold presets (sketch, photograph, line-art, watercolor, detail) and vectorization quality controls. |
| design_trace_stippleA | Convert image to stipple dots or hatching lines based on value (darkness). Stipple mode places dots of varying size/density; hatching draws parallel lines of varying weight. |
| design_list_trace_presetsA | List available threshold presets for image tracing. Each preset configures edge detection, contour extraction, and spline fitting for a specific source material type. |
| design_create_lockupC | Create an identity lockup layer composing a mark (SVG icon) and wordmark (text). Generates a horizontal lockup by default. |
| design_set_lockup_variantA | Switch a lockup layer between horizontal, stacked, icon-only, or wordmark-only variants. |
| design_generate_color_variantsA | Generate full, reversed, grayscale, and mono color variants of a lockup layer. Creates 4 separate layers arranged on the canvas. |
| design_create_swatchC | Create a color swatch layer showing a palette of colors with labels. |
| design_test_at_sizesB | Create a scale test layer showing an SVG at multiple sizes. Returns observations about legibility at each size. |
| design_create_gridC | Add a construction grid overlay to the canvas for identity mark design. |
| design_check_contrastA | Check WCAG contrast ratio between two colors. Returns ratio, AA/AAA pass status, and suggestions if failing. |
| design_check_palette_contrastA | Check all pairwise contrasts in a color palette. Flags pairs below threshold. |
| design_score_identityB | Run quality scoring on the current identity work. Checks contrast, variants, color count, scalability, simplicity, fonts, vector-only, and color independence. Returns structured score report. |
| design_suggest_accessible_colorB | Suggest a foreground color that meets WCAG contrast against a given background, preserving target hue. |
| design_add_plantA | Add a plant layer to the sketch. Choose from 110 botanical presets across 9 categories. Use list_plant_presets or search_plants to discover available presets. Each preset encodes species-accurate branching angles, contraction ratios, and growth patterns from botanical references. |
| design_list_plant_presetsB | List all 110 plant presets, optionally filtered by category, tags, complexity, or engine type. |
| design_search_plantsA | Full-text search across plant preset names, scientific names, descriptions, and tags. |
| design_set_plant_grammarB | Edit L-system grammar on a plant layer. Change axiom, productions, or iterations to create custom growth patterns. |
| design_set_plant_tropismB | Configure tropism forces on a plant layer. Positive gravity = upward growth (phototropism), negative = drooping (gravitropism). Wind adds lateral bias. |
| design_set_plant_seasonB | Switch a plant layer's color palette to a seasonal variant. Affects leaf, branch, and flower colors. |
| design_grow_plantB | Step the growth of an L-system plant by changing its iteration count. Use to simulate growth from sapling to mature tree. |
| design_create_gardenA | Compose a garden by adding multiple plant layers at once. Each plant gets a random position, seed, and optional scale. |
| design_randomize_plantB | Add a random plant layer. Optionally constrain by category or engine type. |
| design_analyze_phyllotaxisB | Analyze phyllotaxis patterns: compute parastichy numbers (Fibonacci spiral families), divergence angle, and packing efficiency for a preset or custom config. |
| design_explain_grammarB | Get a human-readable explanation of a plant preset's L-system grammar: axiom, productions, turtle interpretation, and growth behavior. |
| design_create_inflorescenceB | Create a flower cluster composition by combining multiple flower presets in arrangements like bouquets, wreaths, or scattered meadows. |
| design_set_plant_styleA | Set drawing style and detail level on a plant layer. Styles: precise (clean vectors), ink-sketch (gestural), silhouette (filled outline). Detail levels: minimal, sketch, standard, detailed, botanical-plate. |
| design_suggest_plant_styleB | Get ranked drawing style recommendations for a plant preset. Returns the top styles with reasons based on what works well visually for each species/category. |
| design_set_plant_growthB | Set continuous growth time and 3D camera angle on a plant layer. growthTime 0 = seed, 1 = full maturity (smooth interpolation, not discrete steps). elevation/azimuth enable 3D turtle projection for volumetric canopy rendering. |
| design_advance_plant_growthA | Advance a plant layer's growth time by a step amount. Useful for creating growth animation frames — call repeatedly with capture_screenshot between each step to produce a time-lapse. |
| design_set_plant_windB | Configure wind dynamics on a plant layer. Wind bends branches in a direction with optional gusts and spatial turbulence. Works with all plant layer types. Use windTime with capture_screenshot for animation frames. |
| design_create_ecosystemA | Create an ecosystem scene with multiple plants arranged in depth, atmospheric perspective, and optional ground plane. Plants render back-to-front with depth-based scaling and color shifting. Use arrangement presets (scatter/row/grove/border/terraced) for auto-layout or specify explicit positions. |
| design_export_plant_pathsA | Export a plant preset as ADR 072 AlgorithmStrokePath[] for consumption by plugin-painting brush layers. Segments become stroke paths with width/depth/pressure, leaves/flowers/polygons become closed filled-region paths with group tags. Returns JSON array of path objects. |
| design_list_pattern_presetsA | List all available pattern presets grouped by category, with descriptions. Use this to discover presets before adding a pattern layer. |
| design_add_patternC | Add a pattern layer to the sketch. Specify a layer type and either a preset name or manual properties. Layer types: patterns:fill, patterns:stripe, patterns:dot, patterns:checker, patterns:wave, patterns:crosshatch-geo, patterns:herringbone, patterns:tile, patterns:custom. |
| design_update_patternC | Update properties of an existing pattern layer by layer ID. |
| design_set_pattern_regionC | Set the clip region for a pattern layer. Supports bounds (full layer), rect, ellipse, and polygon regions. |
| design_set_pattern_shadingB | Set value-based shading on a patterns:fill layer. Shading varies opacity/density/weight spatially using uniform, linear, radial, noise, or algorithm-driven functions. |
| design_tile_patternB | Configure seamless tiling for a patterns:tile layer — set tile shape, size, gap, rotation, and colors. |
| design_create_patternA | Create a custom repeating pattern from drawing commands. The pattern is stored in the sketch and can be used by a patterns:custom layer via its patternId. Commands: line, circle, rect, arc, path, polygon. Max 200 commands, 10KB limit. Coordinates are in unit-cell space (0 to width/height). |
| design_add_skyA | Add a sky gradient layer to the sketch. Choose a time-of-day preset (dawn, noon, golden-hour, dusk, night) or set custom zenith/horizon/haze colors. Sky layers should be at the bottom of the layer stack. |
| design_add_terrain_profileB | Add terrain ridgeline silhouettes to the sketch. Choose from presets: alpine-range, rolling-hills, mesa-plateau, coastal-cliffs, sand-dunes, foothills. Renders back-to-front layered noise ridges with depth-aware coloring. |
| design_add_cloudsB | Add a cloud layer to the sketch. Choose from presets: fair-weather, overcast, wispy-high, storm-clouds, scattered. Renders noise-driven cloud formations via ImageData buffer. |
| design_add_water_surfaceB | Add a water surface layer to the sketch. Choose from presets: still-lake, choppy-sea, mountain-stream, river, pond. Renders gradient fill with wave lines and shimmer highlights. |
| design_add_riverB | Add a perspective river/stream layer. The river flows from background toward foreground with width narrowing toward the horizon. Choose a preset or customize path shape, bank style, and ripple intensity. Presets: gentle-stream, wide-river, mountain-creek, lazy-oxbow, forest-brook, delta-channels, waterfall-stream, tidal-estuary. |
| design_add_shoreA | Add a shore/coastline transition layer between water and land. Renders the strip where water meets ground with foam lines, debris, and wet/dry gradients. Position it at the same waterline as your water layer. Presets: sandy-beach, rocky-shore, muddy-riverbank, grassy-bank, tidal-flat, cliff-base. |
| design_add_fieldB | Add a vegetation field layer with depth-receding marks. Renders grass, wheat, or wildflower marks that diminish in size toward the horizon. Supports wind direction and seasonal tinting. Presets: meadow-grass, wheat-field, wildflower-meadow, lavender-rows, dry-savanna, rice-paddy, autumn-stubble, snow-covered. |
| design_add_rockB | Add a natural rock form layer. Renders a depth-aware rock with silhouette, shadow, and texture. Supports 4 rock types (boulder, outcrop, pinnacle, shelf) and 4 texture modes (speckled, striated, cun-fa for Chinese ink style, cracked). Presets: granite-boulder, sandstone-outcrop, shan-shui-rock, mossy-rock, slate-shelf, volcanic-basalt. |
| design_add_treelineA | Add a treeline silhouette band layer. Renders a dense canopy mass (not individual trees) with an irregular top edge profile. Treelines are visual impressions of forest edges, distinct from plugin-plants which renders individual specimens. Supports deciduous, conifer, palm, and bare winter styles. Presets: deciduous-canopy, conifer-ridge, autumn-treeline, misty-forest, palm-fringe, winter-bare. |
| design_add_celestialA | Add a celestial body layer (sun, moon, or star) with glow and optional light path on water. Renders a radial gradient glow, a body disk, and an optional vertical shimmer band below. Presets: noon-sun, golden-hour-sun, harvest-moon, crescent-moon, blood-moon, polar-star. |
| design_add_fog_layerB | Add an occluding fog layer for depth separation (shan-shui 'three distances' effect). Fog layers cover elements behind them, unlike mist particles which are additive. Renders a noise-modulated horizontal band with soft edges and wisps. Presets: morning-mist, mountain-veil, valley-fog, shan-shui-cloud-band, coastal-haar. |
| design_add_starfieldB | Add a star field layer for night sky scenes. Renders magnitude-based stars with optional Milky Way band and constellation hint lines. Stars vary in size, brightness, and color temperature. Presets: clear-night, dense-starfield, milky-way, sparse-stars, twilight-stars. |
| design_add_cliff_faceB | Add a vertical cliff face/rock wall layer. Renders a textured cliff silhouette with ledge shadows. Supports 4 texture modes (sandstone, granite, basalt, limestone). Presets: granite-cliff, sandstone-wall, basalt-columns, limestone-face, shale-cliff. |
| design_add_snowfieldB | Add a snow-covered ground layer with drift patterns, shadow tinting, and sparkle highlights. Presets: fresh-powder, wind-swept, sun-crust, deep-snow. |
| design_add_buildingA | Add a simple architectural silhouette layer. Renders farmhouses, churches, towers, or village clusters as filled shapes. Buildings are intentionally simple — silhouette impressions, not detailed architecture. Presets: farmhouse, church-steeple, tower-ruin, village-cluster, temple, lighthouse. |
| design_add_bridgeA | Add a bridge silhouette layer spanning between terrain elements. Supports arch, suspension, footbridge, and flat crossing styles. Presets: stone-arch, wooden-footbridge, suspension-bridge, flat-crossing. |
| design_add_reflectionB | Add a water surface reflection layer. Renders a simplified mirror of sky/terrain colors below the waterline with darkening and ripple distortion. Not an actual scene mirror — uses solid color bands that simulate reflected sky and terrain tones. Presets: calm-lake, rippled-reflection, dark-water, golden-reflection. |
| design_add_hazeA | Add a subtle atmospheric haze layer. Lighter and more additive than fog-layer — haze softens distant elements without fully obscuring them. Supports directional gradients and noise modulation. Presets: light-haze, golden-haze, cool-mist, heat-haze. |
| design_add_fenceB | Add a fence or wall silhouette layer. Renders picket fences, stone walls, ranch rails, or wire fences as foreground elements. Presets: white-picket, stone-wall, ranch-rail, wire-fence. |
| design_add_boatC | Add a boat or ship silhouette layer on water. Renders sailboats, rowboats, fishing boats, or cargo ships. Presets: sailboat, rowboat, fishing-boat, cargo-ship. |
| design_create_landscapeA | Create a complete landscape scene by adding sky + terrain profile + optional clouds + optional water in correct layer order. Each layer is auto-assigned an appropriate depth lane. Set atmosphericMode to 'western' or 'ink-wash' for automatic atmospheric perspective on terrain ridges. Returns all created layer IDs. |
| design_create_mountain_valleyC | Create a mountain valley scene: sky + alpine ridges + valley fog + treeline + meadow field + haze. |
| design_create_river_sceneC | Create a river scene: sky + rolling hills + river + shore + treeline + reflection. |
| design_create_coastal_moonlightC | Create a moonlit coastal scene: night sky + starfield + moon + water + rocky shore + dark reflection. |
| design_create_park_riversideB | Create a park riverside scene: overcast sky + gentle hills + river + path + treeline + meadow + building. |
| design_create_shan_shuiB | Create a Chinese shan-shui (mountain-water) landscape: misty sky + sharp peaks + mountain mist + rock + calm water + haze. |
| design_create_pastoralC | Create a pastoral countryside scene: golden-hour sky + rolling hills + wheat field + country lane + picket fence + farmhouse + golden haze. |
| design_create_forest_clearingB | Create a forest clearing scene: overcast sky + treeline + overhanging branches + fern carpet + ground fog + woodland trail. |
| design_create_alpine_lakeB | Create an alpine lake scene: noon sky + alpine range + snow field + calm water + lake reflection + granite cliff + cool mist. |
| design_create_japanese_gardenB | Create a Japanese garden scene: misty sky + calm water + stone bridge + decorative rock + treeline + lake reflection + light haze. |
| design_create_desert_expanseB | Create a desert expanse scene: noon sky + mesa plateau + sandstone cliff + dry scrub field + heat haze + wind erosion. |
| design_create_winter_woodlandB | Create a winter woodland scene: overcast sky + gentle hills + deep snow + conifer treeline + pine canopy vignette + morning mist. |
| design_create_tropical_coastB | Create a tropical coast scene: golden-hour sky + calm sea + sandy beach + sailboat + golden reflection + leaf frame vignette + golden haze. |
| design_set_time_of_dayB | Update an existing sky layer to a time-of-day preset, changing zenith, horizon, and haze colors. |
| design_list_terrain_presetsB | List all 114 terrain presets, optionally filtered by category (sky, profile, clouds, water, river, path, shore, field, rock, treeline, celestial, fog, starfield, cliff-face, snowfield, building, bridge, reflection, haze, fence, boat). |
| design_set_terrain_depthC | Adjust depth properties on a terrain profile layer: ridge count, depth easing, elevation range, and color shift. |
| design_set_depth_laneA | Set the depth lane on any terrain layer. Depth lanes define named depth slots that all plugins understand: sky, far-background, background, midground, foreground, ground-plane, overlay. Append -1 (back), -2 (mid), or -3 (front) for sub-level control within a lane (e.g. 'background-1'). Optionally set the atmospheric depth mode on terrain:profile layers. |
| design_add_particlesA | Add a particle layer by preset name. Auto-resolves to the correct layer type (falling, floating, scatter, mist, trailing, flow, mark-field) from the preset category. 46 presets available across all categories. |
| design_list_particle_presetsA | List all 46 particle presets, optionally filtered by category (falling, floating, scatter, mist, trailing, flow, mark-field). |
| design_set_particle_depthC | Configure depth properties on a particle layer: horizonY, depthEasing, depthDistribution, depthBandMin/Max. |
| design_set_particle_motionC | Configure motion properties on a particle layer: windAngle, windStrength, fallProgress, driftRange, driftPhase, driftX. |
| design_set_particle_styleC | Configure visual style on a particle layer: color, colorVariation, opacity, glow, glowColor, sizeMin, sizeMax. |
| design_create_atmosphereA | Create a multi-layer atmospheric scene from a named recipe. Recipes: winter-storm (snow + fog + haze), autumn-forest (leaves falling + ground + mist), misty-morning (mist + dust), firefly-night (fireflies + fog), spring-meadow (petals + pollen + wildflowers), dusty-ruins (dust + pebbles + steam). |
| design_randomize_particlesC | Add a random particle layer, optionally constrained by category (falling, floating, scatter, mist, trailing, flow, mark-field). |
| design_set_mist_bandC | Configure mist band properties: bandTop, bandBottom, edgeSoftness, density, noiseScale, layerCount. |
| design_add_fogB | Add a fog layer to the design. Ground-level fog with terrain masking support. Types: radiation (calm morning), advection (sea fog), upslope (mountain), valley. Presets: morning-valley-fog, sea-fog, mountain-fog, dense-fog, patchy-fog. v0.2.0: fogLayers (1-5) for depth stacking, wispDensity (0-1) for edge tendrils. |
| design_add_mistB | Add a mist layer to the design. Mid-level haze bands with parallax stacking. Multiple semi-transparent noise layers create depth separation between terrain ridges. Presets: morning-mist, mountain-haze, thick-mist, layered-mist. v0.2.0: skyColor + colorShift for atmospheric color tint on back layers. |
| design_list_atmosphere_presetsB | List available atmosphere presets. Filter by category (fog, mist, clouds, haze) or search by keyword. |
| design_set_atmosphere_lightingB | Set sun angle and elevation across all atmosphere:clouds layers in the design for consistent lighting. |
| design_design_add_water_surfaceA | Add a water surface layer. Supports 3 algorithms: calm (stripe compositing for lakes/ponds), ocean (Gerstner waves for seas), flow (flow-field ripples for rivers/streams). 11 presets: still-lake, pond, misty-lake, moonlit-water, choppy-sea, ocean-swell, stormy-ocean, tropical-shallows, coastal-surf, mountain-stream, river. |
| design_design_add_water_reflectionB | Add a water reflection layer that mirrors terrain and sky below the waterline. Features Fresnel-based strength (stronger at glancing angles). 4 presets: calm-lake-reflection, rippled-reflection, dark-water-reflection, golden-reflection. |
| design_design_add_water_foamC | Add a foam and whitecaps layer. Renders whitecap patches on wave crests, foam trails, Langmuir circulation streaks, and bubble rafts. 4 presets: ocean-whitecaps, surf-foam, gentle-foam, storm-foam. |
| design_design_add_water_shorelineC | Add a shoreline interaction layer. Renders the water-land transition with foam lines, wave break styles (spilling/plunging/surging), and debris. 7 presets: sandy-beach, rocky-shore, muddy-riverbank, grassy-bank, tidal-flat, cliff-base, marsh-edge. |
| design_design_add_water_causticsA | Add underwater caustic light patterns. Visible only in clear water (clarity > 0.3). 3 presets: shallow-caustics, deep-pool-caustics, tropical-caustics. |
| design_design_add_water_iceC | Add a frozen water surface layer with ice texture, cracks, frost patterns, and optional snow cover. 4 presets: frozen-lake, thin-ice, pack-ice, frost-glass. |
| design_list_water_presetsA | List available water presets, optionally filtered by category (surface, reflection, foam, shoreline, caustics, ice). |
| design_design_set_water_conditionsA | Set coordinated water conditions across multiple water layers. Creates a complete water scene with surface + reflection + optional foam/shoreline. Conditions: calm (still-lake + calm-lake-reflection), choppy (choppy-sea + rippled-reflection + ocean-whitecaps), stormy (stormy-ocean + dark-water-reflection + storm-foam), frozen (frozen-lake ice). |
| design_set_building_styleC | Change the architectural style of an existing building layer. Available styles: classical, roman, romanesque, gothic, islamic, chinese, japanese, tudor, renaissance, baroque, georgian, art-nouveau, art-deco, vernacular, modernist, brutalist, high-tech, deconstructivist, parametric, futuristic, sculptural, metabolist, organic, fantasy. |
| design_list_architecture_stylesB | List all available architectural styles with their character descriptions. |
| design_list_architecture_elementsA | List all registered construction element types (columns, arches, windows, roofs, etc.). |
| design_set_construction_stateA | Set the construction state of a building: 0 = foundation only, 0.25 = structure, 0.5 = complete, 0.75 = aged, 1.0 = ruin. Intermediate values produce partial states. |
| design_set_render_modeA | Set the illustration render mode of a building layer. Modes: filled (classic solid), pencil (graphite sketch), ink (confident lines), technical (precise architectural), engraving (crosshatch), woodcut (bold gouged). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-generative-art | Create a new piece of generative art with algorithmic philosophy, structured parameters, and interactive preview |
| explore-variations | Explore parameter and seed variations of an existing sketch |
| apply-design-theory | Apply design theory concepts to improve or evolve a generative art sketch |
| critique-and-iterate | Capture a sketch, self-critique it, identify improvements, fork, apply changes, compare, and document the iteration |
| develop-artistic-concept | Develop an artistic concept through a full studio workflow: concept planning, studies, development, critique, iteration, and documentation |
| study-reference | Study a reference image: analyze it, identify key qualities, create a generative study sketch inspired by it, and document learnings |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| skills | List available design knowledge skills with id, name, category, complexity, and description. |
| canvas-presets | List all built-in canvas dimension presets with id, label, category, width, and height. |
| gallery | List all loaded sketches in the active workspace with metadata summaries. |
| renderers | List all available renderer types with display name, algorithm language, and runtime dependencies. |
| Sketch Preview | Interactive sketch preview rendered inside the conversation. Supports all 5 renderers (p5, Three.js, GLSL, Canvas 2D, SVG) with parameter sliders, color pickers, seed controls, and theme switching. |
TDQS
Scored across 312 tools
The set contains literal near-duplicates: design_add_water_surface vs design_design_add_water_surface, design_add_reflection vs design_design_add_water_reflection, design_add_shore vs design_design_add_water_shoreline, and three separate fog/mist/haze layers (design_add_fog, design_add_fog_layer, design_add_mist, design_add_haze). Many families also blur together (design_set_blend vs design_set_blend_mode, design_add_pattern vs design_create_pattern, design_add_plant vs design_randomize_plant vs design_create_garden). With 312 tools an agent must disambiguate between near-identical layer constructors, which is a real misselection risk.
Most tools use a snake_case design_* prefix, but a large block uses a doubled prefix (design_design_add_water_*), a whole sketch/workspace family has no prefix (save_sketch, create_sketch, merge_sketches), and one tool is underscore-prefixed (_get_sketch_data). Verb conventions are also mixed, with add_, create_, apply_, set_, generate_, and bare nouns used interchangeably for similar operations.
312 tools is an extreme mismatch for any single agent-facing server, far beyond what can be reliably discovered or selected from a single tool list. The surface should be decomposed into several scoped servers (sketch lifecycle, layers/filters, plants, terrain, typography, etc.).
Coverage of the generative-art/layered-design domain is exceptionally broad: sketch CRUD, workspace management, layer lifecycle, filters, typography, tracing, plants, terrain, water, atmosphere, patterns, symbols, animation, and export are all present. Gaps are minor (e.g. no undo/history or layer-rename operation), so agents can work around them.