← WebMCP Directory

Tool tree

deckhand-webmcp.suekou.workers.dev

Productivity & BusinessTools verified
Website
A live presentation canvas where people edit visually and browser agents operate through semantic WebMCP tools.
Explore capabilities
    inspect_projectAnswer

    Read the smallest useful page of the live deck, design system, current scene, selection, or human edits. Start with summary, then request only the context needed for the next action.

    View tool JSON
    {
      "name": "inspect_project",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the smallest useful page of the live deck, design system, current scene, selection, or human edits. Start with summary, then request only the context needed for the next action.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "enum": [
              "summary",
              "current_slide",
              "design_system",
              "selection",
              "recent_human_edits"
            ]
          },
          "slide_id": {
            "type": "string"
          },
          "include_style": {
            "type": "boolean"
          },
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24
          }
        },
        "required": [
          "scope"
        ]
      }
    }
    plan_deckAction

    Validate a narrative and map each semantic slide brief to a generated recipe or an explicit PowerPoint source. This does not change the canvas; pass the returned plan_id to compose_deck.

    View tool JSON
    {
      "name": "plan_deck",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate a narrative and map each semantic slide brief to a generated recipe or an explicit PowerPoint source. This does not change the canvas; pass the returned plan_id to compose_deck.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "audience": {
            "type": "string",
            "description": "Who will view the deck."
          },
          "objective": {
            "type": "string",
            "description": "What the audience should understand, decide, or do."
          },
          "art_direction": {
            "type": "string",
            "enum": [
              "editorial",
              "bold",
              "calm",
              "technical"
            ]
          },
          "design_mode": {
            "type": "string",
            "enum": [
              "auto",
              "generated",
              "imported_template"
            ]
          },
          "slides": {
            "type": "array",
            "minItems": 1,
            "maxItems": 24,
            "items": {
              "type": "object",
              "properties": {
                "purpose": {
                  "type": "string",
                  "enum": [
                    "cover",
                    "section",
                    "claim",
                    "split",
                    "comparison",
                    "three_points",
                    "process",
                    "timeline",
                    "metrics",
                    "matrix",
                    "closing"
                  ],
                  "description": "The communication job of this slide."
                },
                "takeaway": {
                  "type": "string",
                  "description": "One audience-facing claim suitable as the slide title."
                },
                "eyebrow": {
                  "type": "string"
                },
                "body": {
                  "type": "string",
                  "description": "Short explanation supporting the takeaway."
                },
                "points": {
                  "type": "array",
                  "maxItems": 6,
                  "items": {
                    "type": "string"
                  }
                },
                "columns": {
                  "type": "array",
                  "maxItems": 4,
                  "items": {
                    "type": "object",
                    "properties": {
                      "heading": {
                        "type": "string"
                      },
                      "body": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "heading",
                      "body"
                    ]
                  }
                },
                "metrics": {
                  "type": "array",
                  "maxItems": 4,
                  "items": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "value",
                      "label"
                    ]
                  }
                },
                "steps": {
                  "type": "array",
                  "maxItems": 5,
                  "items": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "detail": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "label"
                    ]
                  }
                },
                "layout_recipe_id": {
                  "type": "string",
                  "enum": [
                    "cover_minimal",
                    "section_divider",
                    "claim_focus",
                    "split_editorial",
                    "comparison_balanced",
                    "three_points_flat",
                    "process_flow",
                    "timeline_horizontal",
                    "metrics_editorial",
                    "matrix_quadrants",
                    "closing_action"
                  ],
                  "description": "Optional generated recipe override."
                },
                "source_slide_id": {
                  "type": "string",
                  "description": "Optional real source slide to duplicate when using a PowerPoint template."
                },
                "template_layout_id": {
                  "type": "string",
                  "description": "Optional imported layout to fill when using a PowerPoint template."
                },
                "notes": {
                  "type": "string"
                }
              },
              "required": [
                "purpose",
                "takeaway"
              ]
            }
          }
        },
        "required": [
          "title",
          "audience",
          "objective",
          "slides"
        ]
      }
    }
    compose_deckAction

    Turn a validated plan into complete, editable slides in one visible and undoable transaction. Generated mode uses Deckhand recipes; template mode duplicates explicit source slides or layouts.

    View tool JSON
    {
      "name": "compose_deck",
      "kind": "act",
      "impl": "imperative",
      "description": "Turn a validated plan into complete, editable slides in one visible and undoable transaction. Generated mode uses Deckhand recipes; template mode duplicates explicit source slides or layouts.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "append",
              "replace"
            ]
          },
          "after_slide_id": {
            "type": "string"
          }
        },
        "required": [
          "plan_id",
          "mode"
        ]
      }
    }
    revise_slideAction

    Replace one slide composition from an updated semantic brief while keeping its slide ID and the active design system. Prefer this for layout, density, hierarchy, or message changes.

    View tool JSON
    {
      "name": "revise_slide",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace one slide composition from an updated semantic brief while keeping its slide ID and the active design system. Prefer this for layout, density, hierarchy, or message changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slide_id": {
            "type": "string"
          },
          "brief": {
            "type": "object",
            "properties": {
              "purpose": {
                "type": "string",
                "enum": [
                  "cover",
                  "section",
                  "claim",
                  "split",
                  "comparison",
                  "three_points",
                  "process",
                  "timeline",
                  "metrics",
                  "matrix",
                  "closing"
                ],
                "description": "The communication job of this slide."
              },
              "takeaway": {
                "type": "string",
                "description": "One audience-facing claim suitable as the slide title."
              },
              "eyebrow": {
                "type": "string"
              },
              "body": {
                "type": "string",
                "description": "Short explanation supporting the takeaway."
              },
              "points": {
                "type": "array",
                "maxItems": 6,
                "items": {
                  "type": "string"
                }
              },
              "columns": {
                "type": "array",
                "maxItems": 4,
                "items": {
                  "type": "object",
                  "properties": {
                    "heading": {
                      "type": "string"
                    },
                    "body": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "heading",
                    "body"
                  ]
                }
              },
              "metrics": {
                "type": "array",
                "maxItems": 4,
                "items": {
                  "type": "object",
                  "properties": {
                    "value": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "value",
                    "label"
                  ]
                }
              },
              "steps": {
                "type": "array",
                "maxItems": 5,
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string"
                    },
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "label"
                  ]
                }
              },
              "layout_recipe_id": {
                "type": "string",
                "enum": [
                  "cover_minimal",
                  "section_divider",
                  "claim_focus",
                  "split_editorial",
                  "comparison_balanced",
                  "three_points_flat",
                  "process_flow",
                  "timeline_horizontal",
                  "metrics_editorial",
                  "matrix_quadrants",
                  "closing_action"
                ],
                "description": "Optional generated recipe override."
              },
              "source_slide_id": {
                "type": "string",
                "description": "Optional real source slide to duplicate when using a PowerPoint template."
              },
              "template_layout_id": {
                "type": "string",
                "description": "Optional imported layout to fill when using a PowerPoint template."
              },
              "notes": {
                "type": "string"
              }
            },
            "required": [
              "purpose",
              "takeaway"
            ]
          }
        },
        "required": [
          "slide_id",
          "brief"
        ]
      }
    }
    edit_slideAction

    Apply known-ID additions, patches, removals, or alignment as one undoable edit. Use only after inspect_project when semantic recomposition would be too broad.

    View tool JSON
    {
      "name": "edit_slide",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply known-ID additions, patches, removals, or alignment as one undoable edit. Use only after inspect_project when semantic recomposition would be too broad.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slide_id": {
            "type": "string"
          },
          "slide_title": {
            "type": "string"
          },
          "background": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "additions": {
            "type": "array",
            "maxItems": 24,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "text",
                    "shape",
                    "card",
                    "stat",
                    "line",
                    "code",
                    "pill"
                  ]
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "kicker",
                    "title",
                    "subtitle",
                    "body",
                    "visual",
                    "label",
                    "data",
                    "footer",
                    "accent"
                  ]
                },
                "content": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "width": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                },
                "rotation": {
                  "type": "number"
                },
                "z_index": {
                  "type": "number"
                },
                "shape_preset": {
                  "type": "string"
                },
                "style": {
                  "type": "object",
                  "description": "Snake-case typography, fill, stroke, spacing, and alignment fields."
                }
              },
              "required": [
                "type",
                "role",
                "content",
                "x",
                "y",
                "width",
                "height"
              ]
            }
          },
          "updates": {
            "type": "array",
            "maxItems": 24,
            "items": {
              "type": "object",
              "properties": {
                "element_id": {
                  "type": "string"
                },
                "patch": {
                  "type": "object"
                }
              },
              "required": [
                "element_id",
                "patch"
              ]
            }
          },
          "remove_element_ids": {
            "type": "array",
            "maxItems": 24,
            "items": {
              "type": "string"
            }
          },
          "arrangements": {
            "type": "array",
            "maxItems": 8,
            "items": {
              "type": "object",
              "properties": {
                "element_ids": {
                  "type": "array",
                  "minItems": 2,
                  "items": {
                    "type": "string"
                  }
                },
                "operation": {
                  "type": "string",
                  "enum": [
                    "align_left",
                    "align_center",
                    "align_right",
                    "align_top",
                    "align_middle",
                    "align_bottom",
                    "distribute_horizontal",
                    "distribute_vertical"
                  ]
                }
              },
              "required": [
                "element_ids",
                "operation"
              ]
            }
          }
        },
        "required": [
          "slide_id"
        ]
      }
    }
    manage_deckAction

    Focus a slide or selection, rename the deck, duplicate a slide, reorder it, or delete it through one explicit structural action. All deck mutations remain undoable.

    View tool JSON
    {
      "name": "manage_deck",
      "kind": "act",
      "impl": "imperative",
      "description": "Focus a slide or selection, rename the deck, duplicate a slide, reorder it, or delete it through one explicit structural action. All deck mutations remain undoable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "focus",
              "rename",
              "duplicate",
              "reorder",
              "delete"
            ]
          },
          "slide_id": {
            "type": "string"
          },
          "after_slide_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "element_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "action"
        ]
      }
    }
    validate_deckAction

    Check narrative structure plus the rendered browser canvas for overflow, clipping, unavailable fonts, collisions, placeholders, and density. Use after composition and revisions.

    View tool JSON
    {
      "name": "validate_deck",
      "kind": "act",
      "impl": "imperative",
      "description": "Check narrative structure plus the rendered browser canvas for overflow, clipping, unavailable fonts, collisions, placeholders, and density. Use after composition and revisions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slide_id": {
            "type": "string"
          },
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24
          }
        }
      }
    }
    undo_last_changeAction

    Revert the most recent atomic deck mutation when the human asks or a visible result is worse. Reports whether history was actually available.

    View tool JSON
    {
      "name": "undo_last_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Revert the most recent atomic deck mutation when the human asks or a visible result is worse. Reports whether history was actually available.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }