Get Entity
ha_get_entityRetrieve entity registry metadata including area, name, icon, and enabled state. Optionally resolve a unique integration ID to its entity ID.
Instructions
Get entity registry information for one or more entities.
Returns detailed entity registry metadata including area assignment, custom name/icon, enabled/hidden state, aliases, labels, and more.
RESOLVER MODE:
Pass unique_id (instead of entity_id) to resolve a stable integration
unique_id to its entity_id(s). Since the registry's unique key is
(domain, platform, unique_id), the same unique_id can match multiple
platforms — all matches are returned in entity_entries with a matches
count. Narrow with domain/platform. Resolver reads as_partial_dict, so
aliases and the device_class override come back as defaults ([]/null).
RELATED TOOLS:
ha_set_entity(): Modify entity properties (area, name, icon, enabled, hidden, aliases)
ha_get_state(): Get current state/attributes (on/off, temperature, etc.)
ha_search(): Find entities by name, domain, or area
EXAMPLES:
Single entity: ha_get_entity("sensor.temperature")
Multiple entities: ha_get_entity(["light.living_room", "switch.porch"])
RESPONSE FIELDS:
entity_id: Full entity identifier
name: Custom display name (null if using original_name)
original_name: Default name from integration
icon: Custom icon (null if using default)
area_id: Assigned area/room ID (null if unassigned)
disabled_by: Why disabled (null=enabled, "user"/"integration"/etc)
hidden_by: Why hidden (null=visible, "user"/"integration"/etc)
enabled: Boolean shorthand (True if disabled_by is null)
hidden: Boolean shorthand (True if hidden_by is not null)
aliases: Voice assistant aliases
labels: Assigned label IDs
categories: Category assignments (dict mapping scope to category_id)
device_class: User "Show As" override (null = use original_device_class)
original_device_class: Default device class from the integration
options: Per-domain registry options (e.g. sensor display_precision). Voice-assistant exposure is also stored here but should be set/cleared via the ha_set_entity(expose_to=...) parameter, not the options dict.
platform: Integration platform (e.g., "hue", "zwave_js")
device_id: Associated device ID (null if standalone)
config_entry_id: Parent config entry's ID (null for YAML-only entities). When non-null — e.g. for UI-created template/group/ utility_meter/derivative/... helpers — pass it to
ha_get_integration(entry_id=..., include_options=True)to read the helper's current config (template body, group members, etc.) without scanning a domain list.unique_id: Integration's unique identifier
Resolved-name enrichment (present only when the ha_mcp_tools component advertises it; otherwise these keys are absent):
area: Assigned area NAME (device-inherited when the entity has none; resolves area_id above)
floor: Floor NAME of the assigned area
label_names: Assigned label NAMES (resolves the label ids in labels) Resolved label names live under label_names HERE (this tool's base
labelsalready carries the label ids); ha_search result_fields and ha_get_entity_exposure instead emit the resolved names underlabels.
get entity state attributes details single specific entity_id
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Resolver filter (unique_id mode only): restrict matches to this entity domain, e.g. 'sensor'. | |
| platform | No | Resolver filter (unique_id mode only): restrict matches to this integration platform, e.g. 'hue'. | |
| entity_id | No | Entity ID or list of entity IDs to retrieve (e.g., 'sensor.temperature' or ['light.living_room', 'switch.porch']). Mutually exclusive with unique_id. | |
| unique_id | No | Resolve a stable integration unique_id to its entity_id(s) (entity_id is mutable, unique_id is not). Mutually exclusive with entity_id. Optionally narrow with domain/platform. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||