Skip to main content
Glama

list_tokens

Lists CSS custom-property tokens from the theme contract, with filters for category and required-only or optional-only, so you can inspect available design tokens.

Instructions

List the CSS custom-property tokens in the theme contract (scripts/theme-contract.json): 127 required + 49 optional = 176 total. Categories: a11y, action, brand, code, fx, ink, interactive, lines, misc, motion, radius, semantic, shadow, space, surface, type, z-index. Spacing note: the NUMBERED scale --space-0…--space-9 is required and is what components read (cia.space(4) → var(--space-4)); the t-shirt names --space-2xs/xs/sm/md/lg/xl are optional aliases the library emits as var() references. Theme the numbered step, not the alias. Radius note: --radius-avatar/badge/button/card/input/modal were removed (nothing read them). The working per-component knobs are --btn-radius, --card-radius, --input-radius, --modal-radius, --badge-radius, --tag-radius, each cascading from a generic radius (e.g. --btn-radius: var(--radius-md, 0.25rem)).

Input Schema

NameRequiredDescriptionDefault
limitNo
offsetNo
categoryNo
requiredNoFilter to required-only (true) or optional-only (false).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: the 127/49 required-vs-optional split, the housekeeping fact that the per-component --radius-* tokens were removed, and the cascade pattern (--btn-radius: var(--radius-md)). It does not mention pagination or ordering semantics, which matters given limit/offset parameters.

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

Conciseness3/5

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

The purpose is front-loaded correctly, but the description then runs long with housekeeping and theming advice (spacing-scale guidance, removed-token notes) that reads more like migration documentation than list-tool guidance. Sentences earn their place individually, yet the density is high for a simple list operation.

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?

For a list tool with no output schema and 25% schema coverage, the description supplies the missing shape information: total count, category vocabulary, and required/optional breakdown. It would be complete if it also covered pagination behavior and how it differs from search_tokens.

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 coverage is only 25%, so the description must compensate. It effectively documents the category parameter by enumerating all 17 category names, and explains the required/optional distinction that backs the 'required' boolean. The limit and offset parameters remain completely undocumented in both schema and description.

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 and resource ('List the CSS custom-property tokens in the theme contract') with concrete counts and a full category enumeration, so the agent knows exactly what comes back. It never distinguishes itself from the sibling search_tokens or get_token, which is the one thing an agent needs most when several token tools exist.

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?

There is no statement of when to use this tool versus search_tokens, get_token, or get_token_map, all of which appear in the sibling list. The theming notes describe the token domain rather than when this specific listing call is the right choice.

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