genart.dev
MCP ToolsWorkspace Management

create_workspace

Create a new `.genart-workspace` file with optional initial sketches.

Input Schema

ParameterTypeRequiredDescription
titlestringyesWorkspace title
pathstringyesFile path for .genart-workspace (must end in .genart-workspace)
sketchesarraynoInitial sketch files to include (must exist on disk)
arrangement'grid' | 'row' | 'column'noAuto-arrange initial sketches (default: 'grid')
spacingnumbernoSpacing between arranged sketches in pixels (default: 200)

Output Shape

{
  "success": true,
  "path": "/absolute/path/to/workspace.genart-workspace",
  "title": "My Workspace",
  "sketchCount": 3,
  "viewport": { "x": 0, "y": 0, "zoom": 0.5 }
}

Side Effects

  • Creates .genart-workspace file on disk at path
  • Does not create or modify any .genart files
  • Does not create directories (parent dir must exist)

Error Cases

ConditionError
path doesn't end in .genart-workspace"Path must end with .genart-workspace"
Parent directory doesn't exist"Parent directory does not exist: /path/to"
File already exists at path"Workspace already exists at /path/to/ws.genart-workspace. Use open_workspace to load it."
Sketch file in sketches doesn't exist"Sketch file not found: /path/to/missing.genart"
Sketch file fails to parse"Invalid .genart file: /path/to/bad.genart — [parse error message]"

Golden Path Example

Request:

{
  "title": "Typography Explorations",
  "path": "~/projects/genart/outputs/typography.genart-workspace",
  "sketches": [
    "~/projects/genart/examples/orchestrated-opposition.genart",
    "~/projects/genart/examples/cadenced-fields.genart"
  ],
  "arrangement": "row",
  "spacing": 300
}

Response:

{
  "success": true,
  "path": "/Users/et/projects/genart/outputs/typography.genart-workspace",
  "title": "Typography Explorations",
  "sketchCount": 2,
  "viewport": { "x": 750, "y": 600, "zoom": 0.4 }
}

File created on disk:

{
  "genart-workspace": "1.0",
  "id": "typography-explorations",
  "title": "Typography Explorations",
  "created": "2026-02-14T12:00:00Z",
  "modified": "2026-02-14T12:00:00Z",
  "viewport": { "x": 750, "y": 600, "zoom": 0.4 },
  "sketches": [
    { "file": "orchestrated-opposition.genart", "position": { "x": 0, "y": 0 } },
    { "file": "cadenced-fields.genart", "position": { "x": 1500, "y": 0 } }
  ]
}