← WebMCP Directory

Tool tree

visually.deeeplearn.com

Productivity & BusinessTools verified
Website
Visually
Explore capabilities
    visually_get_editor_stateAnswer

    Get the active page, page list, element summaries, current selection, zoom, and undo/redo availability.

    View tool JSON
    {
      "name": "visually_get_editor_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the active page, page list, element summaries, current selection, zoom, and undo/redo availability.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    visually_list_templatesAnswer

    List premade design templates, optionally filtered by name or category. Returns dimensions and identifiers accepted by visually_apply_template.

    View tool JSON
    {
      "name": "visually_list_templates",
      "kind": "answer",
      "impl": "imperative",
      "description": "List premade design templates, optionally filtered by name or category. Returns dimensions and identifiers accepted by visually_apply_template.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional case-insensitive template name search."
          },
          "category": {
            "type": "string",
            "description": "Optional exact template category."
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    visually_apply_templateAction

    Replace the active page with a premade template. The change is undoable.

    View tool JSON
    {
      "name": "visually_apply_template",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the active page with a premade template. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "description": "Template identifier from visually_list_templates."
          }
        },
        "required": [
          "templateId"
        ],
        "additionalProperties": false
      }
    }
    visually_add_textAction

    Add and select an editable text element on the active page. The change is undoable.

    View tool JSON
    {
      "name": "visually_add_text",
      "kind": "act",
      "impl": "imperative",
      "description": "Add and select an editable text element on the active page. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text content, up to 10,000 characters."
          },
          "name": {
            "type": "string",
            "description": "Optional layer name."
          },
          "x": {
            "type": "number",
            "description": "Left position in page pixels."
          },
          "y": {
            "type": "number",
            "description": "Top position in page pixels."
          },
          "width": {
            "type": "number",
            "description": "Text box width in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "height": {
            "type": "number",
            "description": "Text box height in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "fontSize": {
            "type": "number",
            "description": "Font size in pixels.",
            "minimum": 1,
            "maximum": 1000
          },
          "fontFamily": {
            "type": "string",
            "description": "CSS font family."
          },
          "fill": {
            "type": "string",
            "description": "CSS text color."
          },
          "align": {
            "type": "string",
            "description": "Horizontal alignment.",
            "enum": [
              "left",
              "center",
              "right",
              "justify"
            ]
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      }
    }
    visually_add_shapeAction

    Add and select a rectangle, circle, ellipse, triangle, polygon, or star on the active page. The change is undoable.

    View tool JSON
    {
      "name": "visually_add_shape",
      "kind": "act",
      "impl": "imperative",
      "description": "Add and select a rectangle, circle, ellipse, triangle, polygon, or star on the active page. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "shape": {
            "type": "string",
            "description": "Shape kind.",
            "enum": [
              "rect",
              "circle",
              "ellipse",
              "triangle",
              "polygon",
              "star"
            ]
          },
          "name": {
            "type": "string",
            "description": "Optional layer name."
          },
          "x": {
            "type": "number",
            "description": "Left position in page pixels."
          },
          "y": {
            "type": "number",
            "description": "Top position in page pixels."
          },
          "width": {
            "type": "number",
            "description": "Shape width in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "height": {
            "type": "number",
            "description": "Shape height in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "fill": {
            "type": "string",
            "description": "CSS fill color."
          },
          "stroke": {
            "type": "string",
            "description": "Optional CSS stroke color."
          },
          "strokeWidth": {
            "type": "number",
            "description": "Optional stroke width.",
            "minimum": 0,
            "maximum": 1000
          },
          "cornerRadius": {
            "type": "number",
            "description": "Corner radius for rectangles.",
            "minimum": 0,
            "maximum": 5000
          }
        },
        "required": [
          "shape"
        ],
        "additionalProperties": false
      }
    }
    visually_select_elementsAction

    Select active-page elements by their IDs. Pass an empty array to clear selection.

    View tool JSON
    {
      "name": "visually_select_elements",
      "kind": "act",
      "impl": "imperative",
      "description": "Select active-page elements by their IDs. Pass an empty array to clear selection.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "elementIds": {
            "type": "array",
            "description": "Element IDs from visually_get_editor_state.",
            "items": {
              "type": "string"
            },
            "uniqueItems": true,
            "maxItems": 1000
          }
        },
        "required": [
          "elementIds"
        ],
        "additionalProperties": false
      }
    }
    visually_update_elementAction

    Update safe visual properties of one active-page element. Type-specific fields are applied only to compatible elements. The change is undoable.

    View tool JSON
    {
      "name": "visually_update_element",
      "kind": "act",
      "impl": "imperative",
      "description": "Update safe visual properties of one active-page element. Type-specific fields are applied only to compatible elements. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "elementId": {
            "type": "string",
            "description": "Element ID from visually_get_editor_state."
          },
          "name": {
            "type": "string",
            "description": "Layer name."
          },
          "x": {
            "type": "number",
            "description": "Left position."
          },
          "y": {
            "type": "number",
            "description": "Top position."
          },
          "width": {
            "type": "number",
            "description": "Width.",
            "minimum": 1,
            "maximum": 10000
          },
          "height": {
            "type": "number",
            "description": "Height.",
            "minimum": 1,
            "maximum": 10000
          },
          "rotation": {
            "type": "number",
            "description": "Rotation in degrees.",
            "minimum": -36000,
            "maximum": 36000
          },
          "opacity": {
            "type": "number",
            "description": "Opacity.",
            "minimum": 0,
            "maximum": 1
          },
          "locked": {
            "type": "boolean",
            "description": "Whether editing is locked."
          },
          "hidden": {
            "type": "boolean",
            "description": "Whether the layer is hidden."
          },
          "text": {
            "type": "string",
            "description": "Text content for text elements."
          },
          "fontSize": {
            "type": "number",
            "description": "Font size for text elements.",
            "minimum": 1,
            "maximum": 1000
          },
          "fontFamily": {
            "type": "string",
            "description": "Font family for text elements."
          },
          "fill": {
            "type": "string",
            "description": "Text or shape fill color."
          },
          "cornerRadius": {
            "type": "number",
            "description": "Corner radius for shape or image elements.",
            "minimum": 0,
            "maximum": 5000
          }
        },
        "required": [
          "elementId"
        ],
        "additionalProperties": false
      }
    }
    visually_arrange_selectionAction

    Align, distribute, group, ungroup, duplicate, or move selected layers in the stack. The change is undoable.

    View tool JSON
    {
      "name": "visually_arrange_selection",
      "kind": "act",
      "impl": "imperative",
      "description": "Align, distribute, group, ungroup, duplicate, or move selected layers in the stack. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "description": "Arrangement operation.",
            "enum": [
              "align",
              "distribute",
              "group",
              "ungroup",
              "duplicate",
              "layer"
            ]
          },
          "value": {
            "type": "string",
            "description": "For align: left, center, right, top, middle, bottom. For distribute: horizontal or vertical. For layer: up, down, top, bottom."
          }
        },
        "required": [
          "operation"
        ],
        "additionalProperties": false
      }
    }
    visually_delete_selectionSensitive Action

    Delete selected, unlocked elements. This destructive tool requires confirm=true and remains undoable.

    View tool JSON
    {
      "name": "visually_delete_selection",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete selected, unlocked elements. This destructive tool requires confirm=true and remains undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirm": {
            "type": "boolean",
            "description": "Must be true to delete the selected elements."
          }
        },
        "required": [
          "confirm"
        ],
        "additionalProperties": false
      }
    }
    visually_manage_pageAction

    Add, duplicate, switch, or delete pages. Deletion requires confirm=true. Document mutations are undoable.

    View tool JSON
    {
      "name": "visually_manage_page",
      "kind": "act",
      "impl": "imperative",
      "description": "Add, duplicate, switch, or delete pages. Deletion requires confirm=true. Document mutations are undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "description": "Page operation.",
            "enum": [
              "add",
              "duplicate",
              "switch",
              "delete"
            ]
          },
          "pageIndex": {
            "type": "integer",
            "description": "Zero-based page index for switch/delete.",
            "minimum": 0
          },
          "confirm": {
            "type": "boolean",
            "description": "Must be true for page deletion."
          }
        },
        "required": [
          "operation"
        ],
        "additionalProperties": false
      }
    }
    visually_resize_pageAction

    Set the active page dimensions, name, or background. Supports square, portrait, landscape, print, and custom sizes. The change is undoable.

    View tool JSON
    {
      "name": "visually_resize_page",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the active page dimensions, name, or background. Supports square, portrait, landscape, print, and custom sizes. The change is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "Page width in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "height": {
            "type": "number",
            "description": "Page height in pixels.",
            "minimum": 1,
            "maximum": 10000
          },
          "name": {
            "type": "string",
            "description": "Optional page/design name."
          },
          "background": {
            "type": "string",
            "description": "Optional CSS background color."
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    visually_historyAnswer

    Undo or redo the latest document change.

    View tool JSON
    {
      "name": "visually_history",
      "kind": "answer",
      "impl": "imperative",
      "description": "Undo or redo the latest document change.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "description": "History operation.",
            "enum": [
              "undo",
              "redo"
            ]
          }
        },
        "required": [
          "operation"
        ],
        "additionalProperties": false
      }
    }
    visually_export_designAction

    Return either the full project JSON or the active page as SVG without starting a download.

    View tool JSON
    {
      "name": "visually_export_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Return either the full project JSON or the active page as SVG without starting a download.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "description": "Export format.",
            "enum": [
              "json",
              "svg"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    }
    visually_import_projectAction

    Validate and load Visually project JSON. Replacing the open project requires confirm=true and is undoable.

    View tool JSON
    {
      "name": "visually_import_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate and load Visually project JSON. Replacing the open project requires confirm=true and is undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectJson": {
            "type": "string",
            "description": "Visually or legacy Canvasly project JSON, page object, or page array. Maximum 5 MB."
          },
          "confirm": {
            "type": "boolean",
            "description": "Must be true to replace the currently open project."
          }
        },
        "required": [
          "projectJson",
          "confirm"
        ],
        "additionalProperties": false
      }
    }
    visually_create_campaignAction

    Create coordinated, semantically tagged campaign pages from one brief. Replaces the open project only with confirm=true and records one undo step.

    View tool JSON
    {
      "name": "visually_create_campaign",
      "kind": "act",
      "impl": "imperative",
      "description": "Create coordinated, semantically tagged campaign pages from one brief. Replaces the open project only with confirm=true and records one undo step.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "brandName": {
            "type": "string",
            "description": "Brand name used consistently across campaign formats.",
            "maxLength": 120
          },
          "headline": {
            "type": "string",
            "description": "Primary campaign headline.",
            "maxLength": 280
          },
          "subheadline": {
            "type": "string",
            "description": "Supporting campaign message.",
            "maxLength": 500
          },
          "cta": {
            "type": "string",
            "description": "Call-to-action label.",
            "maxLength": 100
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary CSS color, preferably hex.",
            "maxLength": 64
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary or page-background CSS color, preferably hex.",
            "maxLength": 64
          },
          "accentColor": {
            "type": "string",
            "description": "Accent CSS color, preferably hex.",
            "maxLength": 64
          },
          "textColor": {
            "type": "string",
            "description": "Campaign text CSS color, preferably hex.",
            "maxLength": 64
          },
          "fontFamily": {
            "type": "string",
            "description": "Campaign font family.",
            "maxLength": 120
          },
          "formats": {
            "type": "array",
            "description": "Unique output formats. Defaults to all five supported campaign formats.",
            "items": {
              "type": "string",
              "enum": [
                "instagram_post",
                "instagram_story",
                "youtube_thumbnail",
                "poster",
                "landscape_banner"
              ]
            },
            "minItems": 1,
            "maxItems": 5,
            "uniqueItems": true
          },
          "confirm": {
            "type": "boolean",
            "description": "Must be true to replace the open project with the generated campaign."
          }
        },
        "required": [
          "brandName",
          "headline",
          "confirm"
        ],
        "additionalProperties": false
      }
    }
    visually_apply_brand_updateAction

    Update tagged brand copy, colors, and typography across every campaign page in one semantic, undoable operation.

    View tool JSON
    {
      "name": "visually_apply_brand_update",
      "kind": "act",
      "impl": "imperative",
      "description": "Update tagged brand copy, colors, and typography across every campaign page in one semantic, undoable operation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "brandName": {
            "type": "string",
            "description": "Brand name used consistently across campaign formats.",
            "maxLength": 120
          },
          "headline": {
            "type": "string",
            "description": "Primary campaign headline.",
            "maxLength": 280
          },
          "subheadline": {
            "type": "string",
            "description": "Supporting campaign message.",
            "maxLength": 500
          },
          "cta": {
            "type": "string",
            "description": "Call-to-action label.",
            "maxLength": 100
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary CSS color, preferably hex.",
            "maxLength": 64
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary or page-background CSS color, preferably hex.",
            "maxLength": 64
          },
          "accentColor": {
            "type": "string",
            "description": "Accent CSS color, preferably hex.",
            "maxLength": 64
          },
          "textColor": {
            "type": "string",
            "description": "Campaign text CSS color, preferably hex.",
            "maxLength": 64
          },
          "fontFamily": {
            "type": "string",
            "description": "Campaign font family.",
            "maxLength": 120
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    visually_audit_designAction

    Read-only audit for overflow, text contrast, safe-area crossings, missing image alt text, and cross-page brand consistency.

    View tool JSON
    {
      "name": "visually_audit_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Read-only audit for overflow, text contrast, safe-area crossings, missing image alt text, and cross-page brand consistency.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "description": "Audit the active page or the full project.",
            "enum": [
              "active_page",
              "all_pages"
            ]
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }