Skip to main content
Glama

Carousel apply theme

carousels_apply_theme
DestructiveIdempotent

Replace this carousel's styling with an existing saved theme.

Input Schema

NameRequiredDescriptionDefault
themeIdYes
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.9/5.0
Behavior3/5

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

Annotations already disclose destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds that styling is replaced by an existing saved theme, which is consistent with the annotations, but it does not explain what prior styling is lost, auth requirements, or rate limits.

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 no wasted words. It is efficient, though its extreme brevity leaves important details to other fields.

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 mutating tool with four parameters, 25% schema coverage, and no carousel-id parameter described, the description is incomplete. The output schema and annotations reduce some burden, but they do not excuse the absence of parameter and prerequisite context.

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 25%, and the description names no parameters or formats. It implies themeId is the 'existing saved theme', but does not explain themeId, projectId, workspaceId, or the required idempotencyKey.

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?

States a specific verb ('Replace') and resource ('this carousel's styling'), plus the source ('existing saved theme'). It does not explicitly differentiate itself from close siblings like carousels_apply_brand or carousels_apply_template, but the verb-resource combination is clear.

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?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as carousels_apply_brand or carousels_apply_template. The agent must infer context from the name alone.

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