Skip to main content
Glama

List button-toggle feature IDs

card_builder_list_button_toggle_features
Read-onlyIdempotent

Lists valid feature IDs for button-toggle and select-menu props, filtered by Home Assistant domain. Use to pick an explicit feature instead of the default auto selection.

Instructions

List the feature IDs accepted by block-button-toggle / block-select-menu.

Reads the module-level FEATURE_DEFINITIONS constant; makes no call to Home Assistant. Feature IDs are namespaced by domain — e.g. climate_hvac_mode for an AC, cover_state for a blind, light_power for a bulb.

Use when: picking an explicit feature value for a block-button-toggle/block-select-menu prop instead of the default "auto", which lets Card Builder pick the first available feature for the entity at runtime. Returns: list of {domain, id, label} dicts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainNoHA entity domain to filter to, e.g. 'climate' or 'cover'. Omit to list every domain's features.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.25.1
    • addedInput schema / properties / domain / description
      Added value: +"HA entity domain to filter to, e.g. 'climate' or 'cover'. Omit to list every domain's features."
  2. Addedv0.18.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, but the description adds real value: it states the data comes from a module-level FEATURE_DEFINITIONS constant with no Home Assistant call, and explains the domain-namespaced ID scheme with concrete examples.

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?

Front-loaded with the purpose, then Use-when and Returns blocks; every sentence carries information. The Returns line is mildly redundant given an output schema exists, but it is brief.

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?

For a single-optional-param, read-only, idempotent lookup with an output schema and full annotation coverage, the description supplies everything needed: purpose, data source, ID naming convention, and when to prefer it over the default.

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 100% so the `domain` filter is already documented, but the description adds the semantics of why domain matters (IDs are namespaced by domain, e.g. climate_hvac_mode vs cover_state), which is meaningful context beyond the schema.

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?

States a specific verb and resource ('List the `feature` IDs accepted by block-button-toggle / block-select-menu') and scopes it to those two block types, so it is clearly distinguishable from the many other card_builder_* listing tools.

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 'Use when' clause gives an explicit trigger — picking an explicit `feature` value instead of the default 'auto' — and explains what 'auto' does at runtime. It lacks an explicit 'do not use' case or a named alternative tool, so it falls just short of a 5.

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

Deploy Server

Other Tools