{"ok":true,"site":{"host":"deckhand-webmcp.suekou.workers.dev","url":"https://deckhand-webmcp.suekou.workers.dev/","type":"live","desc":"A live presentation canvas where people edit visually and browser agents operate through semantic WebMCP tools.","tools":[{"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.","title":"Inspect the presentation project","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Plan a coherent deck","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Compose an approved deck plan","inputSchema":{"type":"object","properties":{"plan_id":{"type":"string"},"mode":{"type":"string","enum":["append","replace"]},"after_slide_id":{"type":"string"}},"required":["plan_id","mode"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Recompose one slide semantically","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"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Precisely edit an inspected slide","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"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Manage deck structure and focus","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"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Validate rendered slide quality","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"slide_id":{"type":"string"},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":24}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","title":"Undo the last deck change","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/deckhand-webmcp.suekou.workers.dev.svg","apiSurface":"spec","toolCount":8}}