Skip to main content
Glama

set_expression

Change the expression of a character avatar to a specified emoji and render the updated image. Subsequent calls remember the selection for quick adjustments.

Instructions

Render the avatar showing the given expression, and return the image.

`emoji` must be one of the expressions the character supports (call
list_characters() to see them). `character` selects which avatar to use;
omit it to reuse the currently-selected character. The selection and
expression are remembered, so follow-up calls can just pass a new emoji.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emojiYes
characterNo
Behavior3/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 that the tool returns an image and that selection/expression are remembered for follow-up calls. However, it doesn't explicitly disclose whether the tool is read-only or mutating (though rendering an image likely doesn't mutate persistent state). It also doesn't mention any side effects beyond session memory.

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

Conciseness5/5

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

The description is concise at three sentences, with the main action front-loaded. It packs essential details without redundancy. Every sentence adds value: purpose, parameter guidance, and statefulness reminder.

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?

Given the tool's simplicity (2 parameters, no output schema), the description covers the main points: what it does, parameter meanings, and statefulness. However, it could be more complete by specifying the return format (e.g., image URL or base64). It also doesn't explicitly warn about invalid expressions, though it points to list_characters() for discovery.

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?

The description adds meaning beyond the schema: it explains that emoji must be one of the character's supported expressions and that list_characters() can be used to see them. For character, it explains that omitting it reuses the current selection. This compensates for the 0% schema description coverage, though it doesn't specify the exact format or allowed values for emoji.

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

Purpose5/5

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

The description clearly states the tool's purpose: to render the avatar with a given expression and return an image. It uses specific verb 'Render' and identifies the resource. It distinguishes from siblings by mentioning list_characters() for supported expressions and implies get_current_look is for viewing current state.

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?

The description provides clear when-to-use context: to set an expression on an avatar. It gives guidance on the character parameter (omit to reuse current) and suggests using list_characters() to find valid expressions. It doesn't explicitly state when not to use, but the context makes it clear this is for setting expression, not for other operations like retrieving current look.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oldschoolsysadmin/comfyui-character-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server