Skip to main content
Glama

set_appearances

Set dark or tinted appearance overrides for icon background fill, layer groups, or individual layers, adjusting properties like colors, opacity, and shadow.

Instructions

Set dark mode or tinted mode appearance overrides for the icon background fill, layer group, or individual layer properties.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bundle_pathYesPath to .icon bundle
targetYesWhat to set appearance on
group_indexNoGroup index (for target=group or target=layer)
appearanceYesAppearance mode
layer_indexNoLayer index within the group (required when target=layer)
bg_colorNoBackground color hex for this appearance (target=fill)
specularNoSpecular for this appearance (target=group)
shadow_kindNoShadow kind (target=group)
shadow_opacityNoShadow opacity (target=group)
opacityNoOpacity for this appearance (target=group or target=layer)
blur_materialNoBlur material for this appearance (target=group)
translucency_enabledNoEnable translucency for this appearance (target=group)
translucency_valueNoTranslucency amount for this appearance (target=group)
hiddenNoHidden state for this appearance (target=group or target=layer)
blend_modeNoBlend mode for this appearance (target=layer)
fill_colorNoFill color hex for this appearance (target=layer)
position_scaleNoPosition scale for this appearance
position_offset_xNoPosition X offset for this appearance
position_offset_yNoPosition Y offset for this appearance

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changedv1.1.0
    • changedInput schema / properties / bg_color / description
      Previous value: -"Background color hex for this appearance"New value: +"Background color hex for this appearance (target=fill)"
    • addedInput schema / properties / blend_mode
      Added value: +{
      +  "description": "Blend mode for this appearance (target=layer)",
      +  "enum": [
      +    "normal",
      +    "multiply",
      +    "screen",
      +    "overlay",
      +    "darken",
      +    "lighten",
      +    "color-dodge",
      +    "color-burn",
      +    "soft-light",
      +    "hard-light",
      +    "difference",
      +    "exclusion",
      +    "plus-darker",
      +    "plus-lighter"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / blur_material
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Blur material for this appearance (target=group)"
      +}
    • addedInput schema / properties / fill_color
      Added value: +{
      +  "description": "Fill color hex for this appearance (target=layer)",
      +  "type": "string"
      +}
    • changedInput schema / properties / group_index / description
      Previous value: -"Group index (only for target=group)"New value: +"Group index (for target=group or target=layer)"
    • addedInput schema / properties / hidden
      Added value: +{
      +  "description": "Hidden state for this appearance (target=group or target=layer)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / layer_index
      Added value: +{
      +  "description": "Layer index within the group (required when target=layer)",
      +  "type": "number"
      +}
    • changedInput schema / properties / opacity / description
      Previous value: -"Group opacity"New value: +"Opacity for this appearance (target=group or target=layer)"
    • addedInput schema / properties / position_offset_x
      Added value: +{
      +  "description": "Position X offset for this appearance",
      +  "type": "number"
      +}
    • addedInput schema / properties / position_offset_y
      Added value: +{
      +  "description": "Position Y offset for this appearance",
      +  "type": "number"
      +}
    • addedInput schema / properties / position_scale
      Added value: +{
      +  "description": "Position scale for this appearance",
      +  "maximum": 3,
      +  "minimum": 0.05,
      +  "type": "number"
      +}
    • changedInput schema / properties / shadow_kind / description
      Previous value: -"Shadow kind"New value: +"Shadow kind (target=group)"
    • changedInput schema / properties / shadow_opacity / description
      Previous value: -"Shadow opacity"New value: +"Shadow opacity (target=group)"
    • changedInput schema / properties / specular / description
      Previous value: -"Specular for this appearance"New value: +"Specular for this appearance (target=group)"
    • changedInput schema / properties / target / enum
      Previous value: -[
      -  "fill",
      -  "group"
      -]New value: +[
      +  "fill",
      +  "group",
      +  "layer"
      +]
    • addedInput schema / properties / translucency_enabled
      Added value: +{
      +  "description": "Enable translucency for this appearance (target=group)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / translucency_value
      Added value: +{
      +  "description": "Translucency amount for this appearance (target=group)",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
  2. First observedv1.0.0

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states the basic action but fails to disclose critical behaviors: whether overrides replace or merge, side effects on properties not specified, permissions needed, or any destructive potential. The description is insufficient for safe invocation.

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?

The description is a single, concise sentence (20 words) that front-loads the core purpose. It is efficient but could be slightly improved by explicitly naming the three targets (fill, group, layer) to match the schema's enums.

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?

Given the tool's complexity (19 parameters, no output schema, no annotations), the description is too minimal. It does not explain return values, error states, or how parameters interact with the 'target' parameter. The agent would need extensive inference to use this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented. The tool description does not add any further insights into parameter relationships or usage patterns (e.g., which parameters apply to which target). Baseline of 3 is appropriate.

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?

The description clearly specifies the action ('set') and resource ('appearance overrides') for specific targets (fill, group, layer). It distinguishes from siblings like 'set_fill' which deals with standard fill rather than appearance overrides. However, it could be more explicit about what 'appearance overrides' entails.

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

Usage Guidelines3/5

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

The description implies usage for setting dark/tinted mode appearances on various targets, but it does not provide explicit guidance on when to use this vs. alternatives (e.g., 'set_fill', 'toggle_fx'). No exclusions or prerequisites are mentioned.

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