Tool tree
page: /theme.html
get_theme_overviewAnswer
Read theme summary, presets, and editable levers. Call before editing.
View tool JSON
{
"name": "get_theme_overview",
"kind": "answer",
"impl": "imperative",
"description": "Read theme summary, presets, and editable levers. Call before editing.",
"inputSchema": {
"type": "object",
"properties": {
"verbosity": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "'full' includes the field-id index."
}
},
"additionalProperties": false
},
"page": "/theme.html"
}set_brand_colorsAction
Set primary, secondary, and/or accent colors. Generates shade scales and accepts hex, rgb/rgba, or CSS names.
View tool JSON
{
"name": "set_brand_colors",
"kind": "act",
"impl": "imperative",
"description": "Set primary, secondary, and/or accent colors. Generates shade scales and accepts hex, rgb/rgba, or CSS names.",
"inputSchema": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"description": "Hex, rgb/rgba, or CSS name."
},
"secondary": {
"type": "string",
"description": "Hex, rgb/rgba, or CSS name."
},
"accent": {
"type": "string",
"description": "Hex, rgb/rgba, or CSS name."
}
},
"additionalProperties": false
},
"page": "/theme.html"
}assign_color_roleAction
Recolor a widget region by role, palette family, and intensity.
View tool JSON
{
"name": "assign_color_role",
"kind": "act",
"impl": "imperative",
"description": "Recolor a widget region by role, palette family, and intensity.",
"inputSchema": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "Role, e.g. header or user-messages."
},
"family": {
"type": "string",
"enum": [
"primary",
"secondary",
"accent",
"neutral"
]
},
"intensity": {
"type": "string",
"enum": [
"solid",
"soft"
],
"description": "Default: solid."
}
},
"required": [
"role",
"family"
],
"additionalProperties": false
},
"page": "/theme.html"
}set_typographyAction
Set font family, size, weight, and line height.
View tool JSON
{
"name": "set_typography",
"kind": "act",
"impl": "imperative",
"description": "Set font family, size, weight, and line height.",
"inputSchema": {
"type": "object",
"properties": {
"fontFamily": {
"type": "string"
},
"fontSize": {
"type": "string"
},
"fontWeight": {
"type": [
"string",
"number"
]
},
"lineHeight": {
"type": [
"string",
"number"
]
}
},
"additionalProperties": false
},
"page": "/theme.html"
}set_roundnessAction
Set roundness by style or granular radius values.
View tool JSON
{
"name": "set_roundness",
"kind": "act",
"impl": "imperative",
"description": "Set roundness by style or granular radius values.",
"inputSchema": {
"type": "object",
"properties": {
"style": {
"type": "string",
"enum": [
"sharp",
"default",
"rounded",
"pill"
]
},
"radius": {
"type": "object",
"description": "Granular px or CSS length overrides.",
"properties": {
"sm": {
"type": [
"string",
"number"
]
},
"md": {
"type": [
"string",
"number"
]
},
"lg": {
"type": [
"string",
"number"
]
},
"xl": {
"type": [
"string",
"number"
]
},
"full": {
"type": [
"string",
"number"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"page": "/theme.html"
}set_color_schemeAction
Set light/dark/auto color scheme and optional edit target.
View tool JSON
{
"name": "set_color_scheme",
"kind": "act",
"impl": "imperative",
"description": "Set light/dark/auto color scheme and optional edit target.",
"inputSchema": {
"type": "object",
"properties": {
"scheme": {
"type": "string",
"enum": [
"light",
"dark",
"auto"
]
},
"editTarget": {
"type": "string",
"enum": [
"light",
"dark",
"both"
]
}
},
"additionalProperties": false
},
"page": "/theme.html"
}apply_presetAction
Apply a complete built-in preset, replacing theme tokens. Call get_theme_overview to list preset ids.
View tool JSON
{
"name": "apply_preset",
"kind": "act",
"impl": "imperative",
"description": "Apply a complete built-in preset, replacing theme tokens. Call get_theme_overview to list preset ids.",
"inputSchema": {
"type": "object",
"properties": {
"presetId": {
"type": "string"
}
},
"required": [
"presetId"
],
"additionalProperties": false
},
"page": "/theme.html"
}configure_widgetAction
Toggle launcher position, feature flags, and message layout.
View tool JSON
{
"name": "configure_widget",
"kind": "act",
"impl": "imperative",
"description": "Toggle launcher position, feature flags, and message layout.",
"inputSchema": {
"type": "object",
"properties": {
"launcherPosition": {
"type": "string",
"enum": [
"bottom-right",
"bottom-left",
"top-right",
"top-left"
]
},
"features": {
"type": "object",
"properties": {
"voice": {
"type": "boolean"
},
"artifacts": {
"type": "boolean"
},
"attachments": {
"type": "boolean"
},
"toolCalls": {
"type": "boolean"
},
"reasoning": {
"type": "boolean"
},
"feedback": {
"type": "boolean"
}
},
"additionalProperties": false
},
"layout": {
"type": "object",
"properties": {
"avatars": {
"type": "boolean"
},
"timestamps": {
"type": "boolean"
},
"showHeader": {
"type": "boolean"
},
"messageStyle": {
"type": "string",
"enum": [
"bubble",
"flat",
"minimal"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"page": "/theme.html"
}set_copy_and_suggestionsAction
Set welcome copy, input placeholder, send label, and suggestion chips.
View tool JSON
{
"name": "set_copy_and_suggestions",
"kind": "act",
"impl": "imperative",
"description": "Set welcome copy, input placeholder, send label, and suggestion chips.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"placeholder": {
"type": "string"
},
"sendLabel": {
"type": "string"
},
"suggestions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"page": "/theme.html"
}set_theme_fieldsAction
Advanced escape hatch: set fields by id or raw dot-path. Values are validated when metadata exists.
View tool JSON
{
"name": "set_theme_fields",
"kind": "act",
"impl": "imperative",
"description": "Advanced escape hatch: set fields by id or raw dot-path. Values are validated when metadata exists.",
"inputSchema": {
"type": "object",
"properties": {
"updates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "Field id or path."
},
"value": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"field",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"updates"
],
"additionalProperties": false
},
"page": "/theme.html"
}check_contrastAnswer
Run WCAG checks over key text/background pairs.
View tool JSON
{
"name": "check_contrast",
"kind": "answer",
"impl": "imperative",
"description": "Run WCAG checks over key text/background pairs.",
"inputSchema": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"AA",
"AAA"
],
"description": "Default: AA."
},
"variant": {
"type": "string",
"enum": [
"light",
"dark",
"both"
],
"description": "Default: both."
}
},
"additionalProperties": false
},
"page": "/theme.html"
}manage_sessionAction
Undo, redo, reset defaults, or export the theme snapshot.
View tool JSON
{
"name": "manage_session",
"kind": "act",
"impl": "imperative",
"description": "Undo, redo, reset defaults, or export the theme snapshot.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"undo",
"redo",
"reset",
"export"
]
}
},
"required": [
"action"
],
"additionalProperties": false
},
"page": "/theme.html"
}screenshot_previewAction
Capture the current rendered state of the theme preview as an image: exactly what the user sees. Returns one JPEG per visible preview frame (two when a compare mode is active, labeled e.g. Light/Dark). Call after applying a batch of theme changes to verify the visual result, especially when matching a reference image.
View tool JSON
{
"name": "screenshot_preview",
"kind": "act",
"impl": "imperative",
"description": "Capture the current rendered state of the theme preview as an image: exactly what the user sees. Returns one JPEG per visible preview frame (two when a compare mode is active, labeled e.g. Light/Dark). Call after applying a batch of theme changes to verify the visual result, especially when matching a reference image.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/theme.html"
}page: /webmcp-demo.html
search_productsAnswer
Search the product catalog by free-text query (e.g. 'waterproof trail shoe', 'blue running', 'jacket'). Returns matching products with SKU, title, brand, color, price, imageUrl, and imageAlt.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search the product catalog by free-text query (e.g. 'waterproof trail shoe', 'blue running', 'jacket'). Returns matching products with SKU, title, brand, color, price, imageUrl, and imageAlt.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search query."
}
},
"required": [
"query"
]
},
"page": "/webmcp-demo.html"
}view_productAction
Look at one product in detail by SKU (from search_products results). Highlights it on the page and returns its full description plus imageUrl/imageAlt. Read-only.
View tool JSON
{
"name": "view_product",
"kind": "act",
"impl": "imperative",
"description": "Look at one product in detail by SKU (from search_products results). Highlights it on the page and returns its full description plus imageUrl/imageAlt. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"sku": {
"type": "string"
}
},
"required": [
"sku"
]
},
"page": "/webmcp-demo.html"
}add_to_cartAction
Add a product to the shopper's cart by SKU (from search_products results). Returns the updated cart so you can confirm the running total.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the shopper's cart by SKU (from search_products results). Returns the updated cart so you can confirm the running total.",
"inputSchema": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 1
}
},
"required": [
"sku"
]
},
"page": "/webmcp-demo.html"
}remove_from_cartAction
Remove a product from the cart by SKU, or reduce its quantity. Omit quantity to remove the line entirely. Returns the updated cart.
View tool JSON
{
"name": "remove_from_cart",
"kind": "act",
"impl": "imperative",
"description": "Remove a product from the cart by SKU, or reduce its quantity. Omit quantity to remove the line entirely. Returns the updated cart.",
"inputSchema": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 1
}
},
"required": [
"sku"
]
},
"page": "/webmcp-demo.html"
}apply_promoAction
Apply a promo code to the cart (e.g. TRAIL10, TRAILVIP, SUMMIT20). Returns whether it was accepted and the updated cart with the discount applied.
View tool JSON
{
"name": "apply_promo",
"kind": "act",
"impl": "imperative",
"description": "Apply a promo code to the cart (e.g. TRAIL10, TRAILVIP, SUMMIT20). Returns whether it was accepted and the updated cart with the discount applied.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
]
},
"page": "/webmcp-demo.html"
}page: /webmcp-calendar.html
get_calendar_stateAnswer
Read the current calendar state: current local date-time, selected date, visible week, timezone, total event count, visible events, and the valid users (with the userIds create_event accepts). Call this before creating or editing events. All event times are local wall-clock times in the calendar timezone.
View tool JSON
{
"name": "get_calendar_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current calendar state: current local date-time, selected date, visible week, timezone, total event count, visible events, and the valid users (with the userIds create_event accepts). Call this before creating or editing events. All event times are local wall-clock times in the calendar timezone.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/webmcp-calendar.html"
}get_eventsAnswer
List calendar events. Optionally filter by month in YYYY-MM format, userId, or a text search over title/description/location.
View tool JSON
{
"name": "get_events",
"kind": "answer",
"impl": "imperative",
"description": "List calendar events. Optionally filter by month in YYYY-MM format, userId, or a text search over title/description/location.",
"inputSchema": {
"type": "object",
"properties": {
"month": {
"type": "string",
"description": "Optional month filter, e.g. 2026-06."
},
"userId": {
"type": "string",
"description": "Optional owner/attendee user ID."
},
"search": {
"type": "string",
"description": "Optional text search."
}
}
},
"page": "/webmcp-calendar.html"
}find_availabilityAnswer
Find open slots on a date, optionally for a single user. Workday is 9am-5pm local time. Returned slot times are local wall-clock times in the calendar timezone.
View tool JSON
{
"name": "find_availability",
"kind": "answer",
"impl": "imperative",
"description": "Find open slots on a date, optionally for a single user. Workday is 9am-5pm local time. Returned slot times are local wall-clock times in the calendar timezone.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Date to inspect, e.g. 2026-06-10."
},
"durationMinutes": {
"type": "number",
"description": "Desired meeting duration in minutes."
},
"userId": {
"type": "string",
"description": "Optional user ID to check."
}
}
},
"page": "/webmcp-calendar.html"
}select_dateAction
Move the calendar UI to a specific date without creating an event.
View tool JSON
{
"name": "select_date",
"kind": "act",
"impl": "imperative",
"description": "Move the calendar UI to a specific date without creating an event.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Date to select, e.g. 2026-06-10."
}
},
"required": [
"date"
]
},
"page": "/webmcp-calendar.html"
}create_eventAction
Create a calendar event and render it on the page. startDate/endDate are LOCAL wall-clock times in the calendar timezone, formatted YYYY-MM-DDTHH:mm: never append "Z" or a UTC offset (any offset is ignored and the stated clock time is used as-is). Use a userId from get_calendar_state.
View tool JSON
{
"name": "create_event",
"kind": "act",
"impl": "imperative",
"description": "Create a calendar event and render it on the page. startDate/endDate are LOCAL wall-clock times in the calendar timezone, formatted YYYY-MM-DDTHH:mm: never append \"Z\" or a UTC offset (any offset is ignored and the stated clock time is used as-is). Use a userId from get_calendar_state.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Event title."
},
"description": {
"type": "string",
"description": "Optional event notes."
},
"startDate": {
"type": "string",
"description": "Event start as local wall-clock time, e.g. 2026-06-11T08:00. No \"Z\" or UTC offset."
},
"endDate": {
"type": "string",
"description": "Event end as local wall-clock time, e.g. 2026-06-11T09:00. No \"Z\" or UTC offset."
},
"userId": {
"type": "string",
"description": "Owner/attendee user ID from get_calendar_state."
},
"color": {
"type": "string",
"enum": [
"blue",
"green",
"purple",
"amber",
"rose"
],
"description": "Event color."
},
"location": {
"type": "string",
"description": "Optional location or video link."
}
},
"required": [
"title",
"startDate",
"endDate"
]
},
"page": "/webmcp-calendar.html"
}update_eventAction
Update an existing event by eventId. Only supplied fields are changed. startDate/endDate are LOCAL wall-clock times (YYYY-MM-DDTHH:mm, no "Z" or UTC offset).
View tool JSON
{
"name": "update_event",
"kind": "act",
"impl": "imperative",
"description": "Update an existing event by eventId. Only supplied fields are changed. startDate/endDate are LOCAL wall-clock times (YYYY-MM-DDTHH:mm, no \"Z\" or UTC offset).",
"inputSchema": {
"type": "object",
"properties": {
"eventId": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "Local wall-clock time, e.g. 2026-06-11T08:00. No \"Z\" or UTC offset."
},
"endDate": {
"type": "string",
"description": "Local wall-clock time, e.g. 2026-06-11T09:00. No \"Z\" or UTC offset."
},
"userId": {
"type": "string",
"description": "Owner/attendee user ID from get_calendar_state."
},
"color": {
"type": "string",
"enum": [
"blue",
"green",
"purple",
"amber",
"rose"
]
},
"location": {
"type": "string"
}
},
"required": [
"eventId"
]
},
"page": "/webmcp-calendar.html"
}delete_eventSensitive Action
Delete an event from the calendar by eventId.
View tool JSON
{
"name": "delete_event",
"kind": "transact",
"impl": "imperative",
"description": "Delete an event from the calendar by eventId.",
"inputSchema": {
"type": "object",
"properties": {
"eventId": {
"type": "string"
}
},
"required": [
"eventId"
]
},
"page": "/webmcp-calendar.html"
}page: /webmcp-slides.html
get_deck_overviewAnswer
Read the deck: title, active theme, slide count, and per-slide {id, position, title, elementCount}. Call this first to orient yourself; positions are 1-based.
View tool JSON
{
"name": "get_deck_overview",
"kind": "answer",
"impl": "imperative",
"description": "Read the deck: title, active theme, slide count, and per-slide {id, position, title, elementCount}. Call this first to orient yourself; positions are 1-based.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/webmcp-slides.html"
}get_slideAnswer
Read one slide's full contents: every element with its id, geometry, and style. Call this before editing a slide's elements. Defaults to the slide open in the editor.
View tool JSON
{
"name": "get_slide",
"kind": "answer",
"impl": "imperative",
"description": "Read one slide's full contents: every element with its id, geometry, and style. Call this before editing a slide's elements. Defaults to the slide open in the editor.",
"inputSchema": {
"type": "object",
"properties": {
"slideId": {
"type": "string",
"description": "Slide id from get_deck_overview."
},
"position": {
"type": "number",
"description": "1-based slide position (alternative to slideId)."
}
}
},
"page": "/webmcp-slides.html"
}get_selectionAnswer
Read the elements the user currently has selected on the canvas: ids, types, geometry, and styles. Use this whenever the user says 'this', 'these', or refers to something they clicked.
View tool JSON
{
"name": "get_selection",
"kind": "answer",
"impl": "imperative",
"description": "Read the elements the user currently has selected on the canvas: ids, types, geometry, and styles. Use this whenever the user says 'this', 'these', or refers to something they clicked.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/webmcp-slides.html"
}list_themesAnswer
List the available deck themes with their palettes and fonts.
View tool JSON
{
"name": "list_themes",
"kind": "answer",
"impl": "imperative",
"description": "List the available deck themes with their palettes and fonts.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/webmcp-slides.html"
}goto_slideAction
Open a slide in the editor (navigation only: changes nothing).
View tool JSON
{
"name": "goto_slide",
"kind": "act",
"impl": "imperative",
"description": "Open a slide in the editor (navigation only: changes nothing).",
"inputSchema": {
"type": "object",
"properties": {
"slideId": {
"type": "string"
},
"position": {
"type": "number",
"description": "1-based slide position."
}
}
},
"page": "/webmcp-slides.html"
}add_slideAction
Insert a new slide from a layout. 'title' = centered title + subtitle; 'title-body' = heading + body text; 'two-col' = heading + two text columns (body fills the left, right starts empty); 'blank' = empty. Returns the new slide id and its element ids so you can refine them with update_element.
View tool JSON
{
"name": "add_slide",
"kind": "act",
"impl": "imperative",
"description": "Insert a new slide from a layout. 'title' = centered title + subtitle; 'title-body' = heading + body text; 'two-col' = heading + two text columns (body fills the left, right starts empty); 'blank' = empty. Returns the new slide id and its element ids so you can refine them with update_element.",
"inputSchema": {
"type": "object",
"required": [
"layout"
],
"properties": {
"layout": {
"type": "string",
"enum": [
"title",
"title-body",
"two-col",
"blank"
]
},
"title": {
"type": "string",
"description": "Slide heading text."
},
"body": {
"type": "string",
"description": "Body text. Use \\n for line breaks, • for bullets."
},
"position": {
"type": "number",
"description": "1-based position to insert at; defaults to the end of the deck."
}
}
},
"page": "/webmcp-slides.html"
}duplicate_slideAction
Copy a slide (and all its elements) right after the original. Returns the new slide id.
View tool JSON
{
"name": "duplicate_slide",
"kind": "act",
"impl": "imperative",
"description": "Copy a slide (and all its elements) right after the original. Returns the new slide id.",
"inputSchema": {
"type": "object",
"properties": {
"slideId": {
"type": "string"
},
"position": {
"type": "number",
"description": "1-based position of the slide to copy."
}
}
},
"page": "/webmcp-slides.html"
}delete_slideSensitive Action
Permanently remove a slide and all its elements.
View tool JSON
{
"name": "delete_slide",
"kind": "transact",
"impl": "imperative",
"description": "Permanently remove a slide and all its elements.",
"inputSchema": {
"type": "object",
"properties": {
"slideId": {
"type": "string"
},
"position": {
"type": "number",
"description": "1-based slide position."
}
}
},
"page": "/webmcp-slides.html"
}reorder_slidesAction
Move a slide to a new 1-based position. Returns the resulting slide order.
View tool JSON
{
"name": "reorder_slides",
"kind": "act",
"impl": "imperative",
"description": "Move a slide to a new 1-based position. Returns the resulting slide order.",
"inputSchema": {
"type": "object",
"required": [
"slideId",
"position"
],
"properties": {
"slideId": {
"type": "string"
},
"position": {
"type": "number",
"description": "1-based target position."
}
}
},
"page": "/webmcp-slides.html"
}set_slide_propsAction
Update a slide's title and/or background color.
View tool JSON
{
"name": "set_slide_props",
"kind": "act",
"impl": "imperative",
"description": "Update a slide's title and/or background color.",
"inputSchema": {
"type": "object",
"properties": {
"slideId": {
"type": "string"
},
"position": {
"type": "number",
"description": "1-based slide position."
},
"title": {
"type": "string"
},
"background": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
}
}
},
"page": "/webmcp-slides.html"
}add_elementAction
Add one element (text box, rectangle, ellipse, line, or image) to a slide. Lines draw from the top-left to the bottom-right corner of their bounding box. Returns the new element id.
View tool JSON
{
"name": "add_element",
"kind": "act",
"impl": "imperative",
"description": "Add one element (text box, rectangle, ellipse, line, or image) to a slide. Lines draw from the top-left to the bottom-right corner of their bounding box. Returns the new element id.",
"inputSchema": {
"type": "object",
"required": [
"type"
],
"properties": {
"slideId": {
"type": "string",
"description": "Target slide id; defaults to the slide open in the editor."
},
"type": {
"type": "string",
"enum": [
"text",
"rect",
"ellipse",
"line",
"image"
]
},
"x": {
"type": "number",
"description": "Slide units; the canvas is 960 wide x 540 tall, origin at the top-left."
},
"y": {
"type": "number"
},
"w": {
"type": "number"
},
"h": {
"type": "number"
},
"rotation": {
"type": "number",
"description": "Degrees clockwise."
},
"z": {
"type": "number",
"description": "Stacking order; higher renders on top."
},
"text": {
"type": "string",
"description": "Text elements only. Use \\n for line breaks."
},
"fontSize": {
"type": "number"
},
"fontFamily": {
"type": "string",
"description": "Font stack, or a theme token: 'theme.heading' / 'theme.body'. Prefer tokens."
},
"fontWeight": {
"type": "number",
"description": "400 normal, 700 bold."
},
"color": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"fill": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"stroke": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"strokeWidth": {
"type": "number"
},
"src": {
"type": "string",
"description": "Image URL, or 'placeholder' for a styled placeholder block."
}
}
},
"page": "/webmcp-slides.html"
}update_elementAction
Merge a partial patch into one element: position, size, text, and style in a single call. Omitted keys are unchanged. Returns the updated element.
View tool JSON
{
"name": "update_element",
"kind": "act",
"impl": "imperative",
"description": "Merge a partial patch into one element: position, size, text, and style in a single call. Omitted keys are unchanged. Returns the updated element.",
"inputSchema": {
"type": "object",
"required": [
"elementId",
"patch"
],
"properties": {
"elementId": {
"type": "string"
},
"patch": {
"type": "object",
"description": "Partial element properties to merge; omitted keys are unchanged.",
"properties": {
"x": {
"type": "number",
"description": "Slide units; the canvas is 960 wide x 540 tall, origin at the top-left."
},
"y": {
"type": "number"
},
"w": {
"type": "number"
},
"h": {
"type": "number"
},
"rotation": {
"type": "number",
"description": "Degrees clockwise."
},
"z": {
"type": "number",
"description": "Stacking order; higher renders on top."
},
"text": {
"type": "string",
"description": "Text elements only. Use \\n for line breaks."
},
"fontSize": {
"type": "number"
},
"fontFamily": {
"type": "string",
"description": "Font stack, or a theme token: 'theme.heading' / 'theme.body'. Prefer tokens."
},
"fontWeight": {
"type": "number",
"description": "400 normal, 700 bold."
},
"color": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"fill": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"stroke": {
"type": "string",
"description": "CSS color (e.g. '#0f172a') or a theme token: 'theme.background', 'theme.surface', 'theme.text', 'theme.accent', 'theme.accentText'. Prefer tokens so the deck restyles when the theme changes."
},
"strokeWidth": {
"type": "number"
},
"src": {
"type": "string",
"description": "Image URL, or 'placeholder' for a styled placeholder block."
}
}
}
}
},
"page": "/webmcp-slides.html"
}delete_elementsSensitive Action
Permanently remove one or more elements by id.
View tool JSON
{
"name": "delete_elements",
"kind": "transact",
"impl": "imperative",
"description": "Permanently remove one or more elements by id.",
"inputSchema": {
"type": "object",
"required": [
"elementIds"
],
"properties": {
"elementIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
}
},
"page": "/webmcp-slides.html"
}align_elementsAction
Align elements to the slide or to their shared bounding box, and/or space them evenly along an axis (distribute needs 3+ elements; the first/last stay put). Same shape as align_selection. Returns the new positions.
View tool JSON
{
"name": "align_elements",
"kind": "act",
"impl": "imperative",
"description": "Align elements to the slide or to their shared bounding box, and/or space them evenly along an axis (distribute needs 3+ elements; the first/last stay put). Same shape as align_selection. Returns the new positions.",
"inputSchema": {
"type": "object",
"required": [
"elementIds"
],
"properties": {
"elementIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"alignment": {
"type": "string",
"enum": [
"left",
"center-x",
"right",
"top",
"center-y",
"bottom"
]
},
"distribute": {
"type": "string",
"enum": [
"horizontal",
"vertical"
],
"description": "Space the elements evenly along this axis; needs 3+ elements."
},
"relativeTo": {
"type": "string",
"enum": [
"slide",
"selection-bounds"
],
"description": "Default 'slide'. 'selection-bounds' aligns within the group's own bounding box."
}
}
},
"page": "/webmcp-slides.html"
}set_deck_titleAction
Set the deck's title.
View tool JSON
{
"name": "set_deck_title",
"kind": "act",
"impl": "imperative",
"description": "Set the deck's title.",
"inputSchema": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string"
}
}
},
"page": "/webmcp-slides.html"
}apply_themeAction
Switch the deck's theme. Every element using theme tokens ('theme.accent', 'theme.heading', …) restyles across ALL slides.
View tool JSON
{
"name": "apply_theme",
"kind": "act",
"impl": "imperative",
"description": "Switch the deck's theme. Every element using theme tokens ('theme.accent', 'theme.heading', …) restyles across ALL slides.",
"inputSchema": {
"type": "object",
"required": [
"themeId"
],
"properties": {
"themeId": {
"type": "string",
"description": "A theme id from list_themes."
}
}
},
"page": "/webmcp-slides.html"
}enter_presenter_modeAction
Enter full-screen presenter mode. NOTE: this replaces your editing tools with presentation controls (next_slide, prev_slide, jump_to_slide, exit_presenter_mode) until the show ends.
View tool JSON
{
"name": "enter_presenter_mode",
"kind": "act",
"impl": "imperative",
"description": "Enter full-screen presenter mode. NOTE: this replaces your editing tools with presentation controls (next_slide, prev_slide, jump_to_slide, exit_presenter_mode) until the show ends.",
"inputSchema": {
"type": "object",
"properties": {
"position": {
"type": "number",
"description": "1-based slide to start from; defaults to slide 1."
}
}
},
"page": "/webmcp-slides.html"
}