← WebMCP Directory

deskmate-cc.vercel.app

deskmate-cc.vercel.app

live Unverified (seed import) Media & Personal 28 tools imperative implementation

Deskmate

First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com

Answer 16 · Act 12 · Transact 0 · Score: Not yet scored

Tool inspector

propose_layer_change

act imperative

Propose a change to a layer that is already on the cut: retime it, move it, reword it, recolour it. The original stays exactly as it is until the editor accepts the change, so rejecting costs them nothing. Send only the fields you are changing; everything else is kept.

Input schema

PropertyTypeRequiredDescription
layer_id string yes Id from get_composition.
component string no Change what kind of graphic it is. The fields it takes change with it.
text string no title_card, lower_third, caption_pop, bullet_list, comparison_cards, process_flow, stat_badge, callout_arrow, progress_bar, code_card, quote_card, text only. The figure, with its furniture: '40%', '$1.2M', '3×'. The number inside is what counts up.
subtext string no title_card, lower_third, stat_badge, quote_card only. The role, the title, the one-line description.
eyebrow string no title_card only. A small tracked label above it: a chapter number, a section name.
font string no title_card, lower_third, caption_pop, bullet_list, stat_badge, quote_card, text only. The headline's typeface. One of: display, displayHeavy, body, bodyBold, mono. Defaults to displayHeavy; the eyebrow and subtext keep their own weight.
timings array no caption_pop only. Optional. One frame number per word, from get_transcript, relative to this layer's start. Without it the words are spread evenly, which is close but never exact.
items array no bullet_list, comparison_cards, process_flow, code_card only. One entry per card. Write each as 'Heading: the line under it'; a colon, en dash, or pipe splits them.
point object no callout_arrow, text, shape only. Free placement as fractions of the frame: {x: 0.5, y: 0.5} is the middle. Leave it out to use `position` instead.
size number no text only. Type size in points of a 1080-tall frame, 12 to 220. It scales with the format, so one number is right in every aspect ratio.
align string no text only. left, center or right. Also decides which way the block grows from its anchor.
tracking number no text only. Letter spacing as a fraction of the size, -0.05 to 0.4. Small caps labels want about 0.07.
line_height number no text only. Multiple of the size, 0.8 to 2.4. Defaults to 1.18.
backdrop string no text only. none, box, or scrim. A box is a plate behind the words; a scrim dims the whole frame so text over busy footage stays readable.
outline number no text only. Outline thickness in points of a 1080 frame, 0 to 12. Reads on any background, which a plate does not.
rotation number no text, shape only. Degrees, -180 to 180.
opacity number no text, shape only. 0 to 1. Below 1 the words are see-through, for a watermark or a caption you do not want to fight the picture.
animation string no text, shape, effect only. How it enters and leaves: fade, rise, drop, slide_left, slide_right, pop, grow, none.
shape string no shape only. rect, ellipse, pill, triangle, line, arrow, ring or star.
width number no shape only. As a fraction of the frame width, 0.01 to 1.5.
height number no shape only. As a fraction of the frame height, 0.01 to 1.5.
fill string no shape only. A hex like "#F54E00", a palette role, or "none" for an outline only.
stroke string no shape only. Outline colour: a hex, a palette role, or "none".
stroke_width number no shape only. Outline thickness in points of a 1080 frame, 0 to 40.
radius number no shape only. Corner rounding for a rect, in points of a 1080 frame.
effect string no effect only. dip, flash, vignette, grain, scanlines, glitch, letterbox or wash. `dip` fades to the colour and back out, which is the transition you put over a cut.
strength number no effect only. 0 to 1. Half is usually plenty; grain above 0.4 is a stylistic choice rather than an accident.
tag string no effect only. An internal label. The editor uses it to find the transition it put on a clip; leave it out.
at_seconds number no —
duration_seconds number no —
position string no —
palette_role string no A palette role, or a hex like "#F54E00". Roles resolve against the live theme, so one spec is legible in light and dark; send a hex when the exact colour is the point. Roles: accent, warm, cool, positive, plain, invert.
easing string no —
reason string no —
Raw JSON schema
{
  "type": "object",
  "properties": {
    "layer_id": {
      "type": "string",
      "description": "Id from get_composition."
    },
    "component": {
      "type": "string",
      "enum": [
        "title_card",
        "lower_third",
        "caption_pop",
        "bullet_list",
        "comparison_cards",
        "process_flow",
        "stat_badge",
        "callout_arrow",
        "progress_bar",
        "code_card",
        "quote_card",
        "text",
        "shape",
        "effect"
      ],
      "description": "Change what kind of graphic it is. The fields it takes change with it."
    },
    "text": {
      "type": "string",
      "description": "title_card, lower_third, caption_pop, bullet_list, comparison_cards, process_flow, stat_badge, callout_arrow, progress_bar, code_card, quote_card, text only. The figure, with its furniture: '40%', '$1.2M', '3×'. The number inside is what counts up.",
      "maxLength": 24
    },
    "subtext": {
      "type": "string",
      "description": "title_card, lower_third, stat_badge, quote_card only. The role, the title, the one-line description.",
      "maxLength": 80
    },
    "eyebrow": {
      "type": "string",
      "description": "title_card only. A small tracked label above it: a chapter number, a section name.",
      "maxLength": 32
    },
    "font": {
      "type": "string",
      "description": "title_card, lower_third, caption_pop, bullet_list, stat_badge, quote_card, text only. The headline's typeface. One of: display, displayHeavy, body, bodyBold, mono. Defaults to displayHeavy; the eyebrow and subtext keep their own weight."
    },
    "timings": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0
      },
      "maxItems": 40,
      "description": "caption_pop only. Optional. One frame number per word, from get_transcript, relative to this layer's start. Without it the words are spread evenly, which is close but never exact."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 3
      },
      "maxItems": 6,
      "description": "bullet_list, comparison_cards, process_flow, code_card only. One entry per card. Write each as 'Heading: the line under it'; a colon, en dash, or pipe splits them."
    },
    "point": {
      "type": "object",
      "description": "callout_arrow, text, shape only. Free placement as fractions of the frame: {x: 0.5, y: 0.5} is the middle. Leave it out to use `position` instead.",
      "properties": {
        "x": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "y": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "x",
        "y"
      ],
      "additionalProperties": false
    },
    "size": {
      "type": "number",
      "description": "text only. Type size in points of a 1080-tall frame, 12 to 220. It scales with the format, so one number is right in every aspect ratio."
    },
    "align": {
      "type": "string",
      "description": "text only. left, center or right. Also decides which way the block grows from its anchor."
    },
    "tracking": {
      "type": "number",
      "description": "text only. Letter spacing as a fraction of the size, -0.05 to 0.4. Small caps labels want about 0.07."
    },
    "line_height": {
      "type": "number",
      "description": "text only. Multiple of the size, 0.8 to 2.4. Defaults to 1.18."
    },
    "backdrop": {
      "type": "string",
      "description": "text only. none, box, or scrim. A box is a plate behind the words; a scrim dims the whole frame so text over busy footage stays readable."
    },
    "outline": {
      "type": "number",
      "description": "text only. Outline thickness in points of a 1080 frame, 0 to 12. Reads on any background, which a plate does not."
    },
    "rotation": {
      "type": "number",
      "description": "text, shape only. Degrees, -180 to 180."
    },
    "opacity": {
      "type": "number",
      "description": "text, shape only. 0 to 1. Below 1 the words are see-through, for a watermark or a caption you do not want to fight the picture."
    },
    "animation": {
      "type": "string",
      "description": "text, shape, effect only. How it enters and leaves: fade, rise, drop, slide_left, slide_right, pop, grow, none."
    },
    "shape": {
      "type": "string",
      "description": "shape only. rect, ellipse, pill, triangle, line, arrow, ring or star."
    },
    "width": {
      "type": "number",
      "description": "shape only. As a fraction of the frame width, 0.01 to 1.5."
    },
    "height": {
      "type": "number",
      "description": "shape only. As a fraction of the frame height, 0.01 to 1.5."
    },
    "fill": {
      "type": "string",
      "description": "shape only. A hex like \"#F54E00\", a palette role, or \"none\" for an outline only."
    },
    "stroke": {
      "type": "string",
      "description": "shape only. Outline colour: a hex, a palette role, or \"none\"."
    },
    "stroke_width": {
      "type": "number",
      "description": "shape only. Outline thickness in points of a 1080 frame, 0 to 40."
    },
    "radius": {
      "type": "number",
      "description": "shape only. Corner rounding for a rect, in points of a 1080 frame."
    },
    "effect": {
      "type": "string",
      "description": "effect only. dip, flash, vignette, grain, scanlines, glitch, letterbox or wash. `dip` fades to the colour and back out, which is the transition you put over a cut."
    },
    "strength": {
      "type": "number",
      "description": "effect only. 0 to 1. Half is usually plenty; grain above 0.4 is a stylistic choice rather than an accident."
    },
    "tag": {
      "type": "string",
      "description": "effect only. An internal label. The editor uses it to find the transition it put on a clip; leave it out.",
      "maxLength": 60
    },
    "at_seconds": {
      "type": "number",
      "minimum": 0
    },
    "duration_seconds": {
      "type": "number",
      "minimum": 0.2,
      "maximum": 30
    },
    "position": {
      "type": "string",
      "enum": [
        "lower_left",
        "lower_right",
        "upper_left",
        "upper_right",
        "center",
        "bottom_bar",
        "top_bar"
      ]
    },
    "palette_role": {
      "type": "string",
      "description": "A palette role, or a hex like \"#F54E00\". Roles resolve against the live theme, so one spec is legible in light and dark; send a hex when the exact colour is the point. Roles: accent, warm, cool, positive, plain, invert."
    },
    "easing": {
      "type": "string",
      "enum": [
        "linear",
        "out",
        "in_out",
        "spring_out"
      ]
    },
    "reason": {
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "layer_id"
  ],
  "additionalProperties": false
}

Similar websites

wfsim.app

wfsim.app

A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…

live Unverified Media & Personal
101 tools A12 / Act89 / T0 Not yet scored Seen 2026-11-05
enemies_targets_list enemies_target_new enemies_target_copy enemies_target_open enemies_target_set
Inspect tools
commonplace-webmcp.vercel.app

commonplace-webmcp.vercel.app

Commonplace is an editable social reading space built for people and their browser agents.

live Unverified Media & Personal Transact tools
89 tools A10 / Act77 / T2 Not yet scored Seen 2026-11-05
commonplace.get_page_state commonplace_get_page_state commonplace.get_reading_list commonplace_get_reading_list commonplace.get_profile
Inspect tools
pixelforge-studio.appcaster.chatgpt.site

pixelforge-studio.appcaster.chatgpt.site

A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.

live Unverified Media & Personal Transact tools
88 tools A12 / Act70 / T6 Not yet scored Seen 2026-11-05
plan_text_creation get_text_creation_status create_from_text claim_text_creation update_text_creation
Inspect tools
pixelite.taskcraft.site

pixelite.taskcraft.site

Pixelite

live Unverified Media & Personal Transact tools
83 tools A4 / Act78 / T1 Not yet scored Seen 2026-11-05
get_document_info list_layers get_active_layer get_selection_info new_document
Inspect tools

Related on Influzer