Skip to main content
Glama

UiChemy AI Website Creator

uichemy_set_icon

Destructive

Replace one icon. The id is the authored slot label — icon_url_…, from uichemy_list_icons — or a key uichemy_list_icon_overrides already shows. An authored label is a slot in the TEMPLATE, so a layout that draws its cards from one loop carries the same label on every card and this changes all of them; uichemy_list_icons says how many. The other key scheme is POSITIONAL (svg-<sectionId>-<n>), minted by auto-match from the rendered page and not derivable here. Writing a label while positional overrides exist is refused: the pair fights every frame and shows as the icon flickering between old and new.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "projectId": "<projectId>",
      "iconId": "<iconId>",
      "value": "<value>"
    },
    "name": "uichemy_set_icon"
  }
}

Input Schema

NameRequiredDescriptionDefault
valueYesAn icon url, a data: URI, or inline SVG. SVG and data: URIs are uploaded first, as in the editor.
iconIdYesAn icon_url_… label from uichemy_list_icons, or a key from uichemy_list_icon_overrides.
projectIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / value / description
      Previous value: -"An icon url, a data: URI, or inline SVG."New value: +"An icon url, a data: URI, or inline SVG. SVG and data: URIs are uploaded first, as in the editor."
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the destructiveHint=true annotation, the description discloses real blast radius: an authored label is a TEMPLATE slot, so every card drawn from the same loop changes at once, and list_icons reports the count. It also explains the runtime failure mode for the conflicting key scheme (flickering between old and new), which no annotation conveys.

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?

Four sentences, front-loaded with the action and then ordered by importance (id source, slot semantics, positional scheme, the refusal rule). The final clause about flickering 'every frame' is slightly padded, but every sentence carries decision-relevant information.

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

Completeness4/5

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

With no output schema and a destructive write, the description covers the hazards an agent needs: which identifier to supply, that the write may fan out to many rendered elements, and a documented refusal condition. It could say what the tool returns on success or whether the uploaded data:/SVG asset is reusable, but nothing essential to calling it correctly is missing.

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

Parameters4/5

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

Schema coverage is 67% and the schema only says the id is 'an icon_url_… label or a key from uichemy_list_icon_overrides'. The description adds the genuinely useful semantics: two distinct key schemes, that the positional scheme is minted from the rendered page and is not derivable here, and the slot-vs-instance distinction. projectId is still unexplained in both places, keeping it from a 5.

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 opening verb+resource ('Replace one icon') is precise and, combined with the sibling set (set_icon_color, set_icon_style, clear_icon_override), an agent can tell this swaps the icon asset rather than styling or reverting it. It stops short of naming those siblings explicitly, so differentiation is inferred from the body rather than stated up front.

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

Usage Guidelines4/5

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

It clearly says where the id comes from (uichemy_list_icons, or a key from uichemy_list_icon_overrides) and states the critical precondition that writing an authored label while positional overrides exist is refused. It doesn't state when to prefer clear_icon_override or that list_icons should be called first as a mandatory step, but the context is strong.

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