Skip to main content
Glama

Carousel apply brand

carousels_apply_brand
DestructiveIdempotent

Replace this carousel's styling with the workspace's saved brand theme.

Input Schema

NameRequiredDescriptionDefault
projectIdYesUUID string.
workspaceIdNo
idempotencyKeyYes

Output Schema

NameRequiredDescriptionDefault
kitNo
nameNo
frameNo
styleNo
localeNo
slidesNo
can_undoNo
platformNo
revisionNo
warningsNo
templatesNo
font_facesNo
project_idNo
next_actionsNo
mutationReceiptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedOutput schema / properties / font_faces
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "family": {
      +        "maxLength": 160,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "src": {
      +        "maxLength": 4000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "style": {
      +        "enum": [
      +          "normal",
      +          "italic",
      +          "oblique"
      +        ],
      +        "type": "string"
      +      },
      +      "unicodeRange": {
      +        "maxLength": 8000,
      +        "type": "string"
      +      },
      +      "weight": {
      +        "maxLength": 32,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "family",
      +      "src",
      +      "weight",
      +      "style",
      +      "unicodeRange"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 256,
      +  "type": "array"
      +}
    • addedOutput schema / properties / slides / items / properties / visual / properties / creative_artifact_id
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / slides / items / properties / visual / properties / creative_source
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "artifact_id": {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    "composition_id": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "controls": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "fields": {
      +              "items": {
      +                "oneOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "key": {
      +                        "maxLength": 80,
      +                        "minLength": 1,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
      +                        "type": "string"
      +                      },
      +                      "label": {
      +                        "maxLength": 120,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "maxLength": {
      +                        "maximum": 10000,
      +                        "minimum": 1,
      +                        "type": "integer"
      +                      },
      +                      "type": {
      +                        "const": "text",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "key",
      +                      "label",
      +                      "type",
      +                      "maxLength"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "key": {
      +                        "maxLength": 80,
      +                        "minLength": 1,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
      +                        "type": "string"
      +                      },
      +                      "label": {
      +                        "maxLength": 120,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "type": {
      +                        "const": "color",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "key",
      +                      "label",
      +                      "type"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "key": {
      +                        "maxLength": 80,
      +                        "minLength": 1,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
      +                        "type": "string"
      +                      },
      +                      "label": {
      +                        "maxLength": 120,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "type": {
      +                        "const": "media",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "key",
      +                      "label",
      +                      "type"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "key": {
      +                        "maxLength": 80,
      +                        "minLength": 1,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
      +                        "type": "string"
      +                      },
      +                      "label": {
      +                        "maxLength": 120,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "max": {
      +                        "maximum": 10800,
      +                        "type": "number"
      +                      },
      +                      "min": {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "step": {
      +                        "exclusiveMinimum": 0,
      +                        "type": "number"
      +                      },
      +                      "type": {
      +                        "const": "timing",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "key",
      +                      "label",
      +                      "type",
      +                      "min",
      +                      "max",
      +                      "step"
      +                    ],
      +                    "type": "object"
      +                  }
      +                ]
      +              },
      +              "maxItems": 40,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "file": {
      +              "format": "ends_with",
      +              "maxLength": 180,
      +              "minLength": 1,
      +              "pattern": ".*\\.json$",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "file",
      +            "fields"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "fps": {
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "frame": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "frame_hash": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "height": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    },
      +    "media_asset_id": {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    "project_id": {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    "runtime_identity": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "source_hash": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "source_revision": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    },
      +    "source_revision_id": {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    "values": {
      +      "additionalProperties": {
      +        "anyOf": [
      +          {
      +            "maxLength": 10000,
      +            "type": "string"
      +          },
      +          {
      +            "type": "number"
      +          }
      +        ]
      +      },
      +      "propertyNames": {
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "width": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "artifact_id",
      +    "project_id",
      +    "source_revision_id",
      +    "source_revision",
      +    "source_hash",
      +    "runtime_identity",
      +    "composition_id",
      +    "frame",
      +    "width",
      +    "height",
      +    "fps",
      +    "frame_hash",
      +    "media_asset_id",
      +    "controls",
      +    "values"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / slides / items / properties / visual / properties / crop
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "height": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 1,
      +      "type": "number"
      +    },
      +    "left": {
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "top": {
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "width": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 1,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "left",
      +    "top",
      +    "width",
      +    "height"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / slides / items / properties / visual / properties / kind / enum
      Previous value: -[
      -  "media_asset",
      -  "generate",
      -  "solid",
      -  "gradient",
      -  "html",
      -  "template"
      -]New value: +[
      +  "creative_source",
      +  "media_asset",
      +  "generate",
      +  "solid",
      +  "gradient",
      +  "html",
      +  "template"
      +]
  2. Added

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond that — it doesn't say what existing styling is lost (overrides? per-slide edits?), that the operation is idempotent and safe to retry, or that it is scoped to one carousel.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, and the destructive verb 'Replace' leads. It is efficient, though the brevity tips into under-specification for a destructive tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with three sibling 'apply' tools and an undocumented optional workspaceId, the description leaves too much open: it never says whether all slides are re-styled, whether manual edits are lost, or how it differs from carousels_apply_theme. An output schema exists, so return values need not be explained, but the selection and impact gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% — only projectId carries a (generic 'UUID string.') description, while workspaceId and idempotencyKey are undocumented in the schema. The description compensates for none of this: it doesn't explain the optional workspaceId, nor whether idempotencyKey enables safe retries of this destructive replace.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific action (replace styling) and the source applied (the workspace's saved brand theme), so the agent knows what the tool does. However, it makes no attempt to distinguish itself from the near-identical siblings carousels_apply_theme and carousels_apply_template, which is the highest-risk confusion for this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no when-not-to-use guidance, and no reference to the alternative 'apply theme' or 'apply template' tools. The agent is left to infer selection purely from the word 'brand' in the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources