Skip to main content
Glama
genart-dev

genart-mcp

by genart-dev

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • Stroke paths: Set window.__genart_data.strokePaths = [{points:[{x,y},...], depth, width, pressure:[...], group}, ...]

  • Multiple channels: Publish separate arrays (e.g. strokePaths for all paths, leafPaths for depth-filtered subset)

  • Grid data: Set window.__genart_data.flowField/valueMap/mask as Float32Arrays for spatial algorithms Painting layers bind to these channels via pathSource: 'algorithm:'. Declare channels in the sketch's dataChannels field via update_sketch.

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:

  • pathSource: 'algorithm:' — binds to a path channel (e.g. 'algorithm:strokePaths')

  • pathBrushId: brush preset ('flat', 'round-hard', 'round-soft', 'pencil', 'ink-pen', 'splatter')

  • pathColor: hex color for strokes (e.g. '#5a4a2a')

  • depthMapping: JSON string mapping path depth to brush params, e.g. '{"maxDepth":5,"width":[60,4],"pressure":[1.0,0.15],"paintLoad":[0.9,0.3],"opacity":[1.0,0.6]}' Values interpolate linearly from depth=0 to maxDepth. Paths beyond maxDepth clamp. Multiple layers can read the same or different channels for multi-pass rendering (shadow, base, highlight, leaves).

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 preview_sketch to open in the browser instead. Only use capture_screenshot for single-frame renderers (canvas2d) or after confirming the sketch works in the browser preview.

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 libraries array of create_sketch to include it.

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

NameDescription
create-generative-artCreate a new piece of generative art with algorithmic philosophy, structured parameters, and interactive preview
explore-variationsExplore parameter and seed variations of an existing sketch
apply-design-theoryApply design theory concepts to improve or evolve a generative art sketch
critique-and-iterateCapture a sketch, self-critique it, identify improvements, fork, apply changes, compare, and document the iteration
develop-artistic-conceptDevelop an artistic concept through a full studio workflow: concept planning, studies, development, critique, iteration, and documentation
study-referenceStudy 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

NameDescription
skillsList available design knowledge skills with id, name, category, complexity, and description.
canvas-presetsList all built-in canvas dimension presets with id, label, category, width, and height.
galleryList all loaded sketches in the active workspace with metadata summaries.
renderersList all available renderer types with display name, algorithm language, and runtime dependencies.
Sketch PreviewInteractive 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

C2.7/5.0

Scored across 312 tools

Disambiguation2/5

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.

Naming Consistency2/5

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.

Tool Count1/5

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.).

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues