Skip to main content
Glama

List my UGC characters (recurring on-screen people)

aetherwave_list_characters
Read-only

Returns the caller's saved UGC characters - the recurring, named people they shoot with - with everything needed to keep one consistent across a whole production.

CALL THIS FIRST whenever the request names a person the user already has ("use my Amy character", "shoot this with Katie"). There is no other way to discover that a character exists, and guessing their appearance produces a different face in every clip.

Per character you get:

  • identityBlock - the locked CORE IDENTITY string. Append it VERBATIM to every prompt in the production. Identical text is identical conditioning; that is the whole consistency mechanism, and paraphrasing it breaks it.

  • referenceImages - the approved image pack. Pass these as referenceImages on aetherwave_generate_video. ⚠️ When a pack exists it REPLACES the hero image, it does not ride alongside it (measured A/B, 2026-09-22): mixing them pulls the face two ways.

  • heroImageUrl - single fallback anchor, for characters with no pack.

  • voiceId / voiceSpec - the engineered voice description. Append it to the prompt for any talking clip, byte-identical every time, for the same reason as identityBlock.

  • personality - tones, quirks and speechStyle. This is the comic/tonal direction the user wrote for this character; fold it into the prompt rather than inventing a manner.

  • negativeLock - the character's negative prompt.

  • hasApprovedPack - true when referenceImages is non-empty; tells you to prefer the pack over the hero.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoOptional case-insensitive substring filter on character name or handle (e.g. 'amy'). Omit to list every character.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only and open-world, and the description adds useful behavioral context without contradicting them: it warns that referenceImages replaces rather than augments the hero image, and that paraphrasing identityBlock breaks consistency. This gives the agent operational knowledge beyond the structured annotation hints.

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 longer than average, but it is organized with a clear opening directive and bulleted output explanations, and every section provides operational value. The only slight deduction is that several downstream-use instructions could be consolidated, but the structure makes the length acceptable.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining every meaningful returned field, and it does so thoroughly: identityBlock, referenceImages, heroImageUrl, voiceId/voiceSpec, personality, negativeLock, and hasApprovedPack all receive concrete guidance. It is sufficient for an agent to call the tool and correctly use its result.

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?

The single optional name parameter is fully documented in the schema (case-insensitive substring filter, omit to list all), and the description does not need to add much. It does not repeat or expand the schema, so baseline 3 is appropriate for high schema coverage.

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 opens with a specific verb and resource: returning the caller's saved UGC characters, and immediately names the core purpose: keeping recurring characters consistent across a production. It also distinguishes itself from any sibling lookup by stating there is no other way to discover whether a character exists, so agents can route correctly.

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

Usage Guidelines5/5

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

It gives an explicit trigger: 'CALL THIS FIRST whenever the request names a person the user already has', with concrete example phrases. It also tells the agent how to use the returned fields downstream, including passing referenceImages to aetherwave_generate_video and appending identityBlock/voiceSpec verbatim, leaving no ambiguity about when and how to invoke it.

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