Skip to main content
Glama

Bulk set entity assistant exposure

entities_bulk_set_entity_exposure
Idempotent

Expose or hide many Home Assistant entities across one or more voice assistants in one call. Use for bulk exposure changes; for a single entity and assistant, use the single-entity tool.

Instructions

Expose or hide many entities across one or more voice assistants in a single call.

Calls WS homeassistant/expose_entity once with the full entity_ids and assistants lists, which HA accepts natively, instead of one call per entity/assistant pair. Returns immediately with an empty result when entity_ids is empty.

Use when: changing exposure for many entities and/or several assistants at once. Not for: a single entity and assistant — use entities_set_entity_exposure. Returns: dict with count, assistants, should_expose and the raw WS result. Errors: raises ValueError when assistants contains an identifier outside conversation, cloud.alexa, cloud.google_assistant.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assistantsNoSubset of voice assistants to target. Omit to apply to conversation, cloud.alexa and cloud.google_assistant.
entity_idsYesFull entity IDs to expose or hide, e.g. ['light.a', 'light.b'].
should_exposeYesTrue to expose the entities to the target assistants, false to hide them.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.25.1
    • addedInput schema / properties / assistants / description
      Added value: +"Subset of voice assistants to target. Omit to apply to conversation, cloud.alexa and cloud.google_assistant."
    • addedInput schema / properties / entity_ids / description
      Added value: +"Full entity IDs to expose or hide, e.g. ['light.a', 'light.b']."
    • addedInput schema / properties / should_expose / description
      Added value: +"True to expose the entities to the target assistants, false to hide them."
  2. Addedv0.18.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare the mutation/idempotency profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description adds context annotations cannot carry: it collapses N×M calls into one WS call, returns an empty result for an empty `entity_ids` list, names the return keys, and specifies that a ValueError is raised for out-of-range assistant identifiers.

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?

Front-loaded with the action and the WS mechanism, then cleanly segmented into Use when / Not for / Returns / Errors. Every line carries distinct information; no filler or restatement of the title.

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?

Even though an output schema exists, the description briefly names the returned fields and documents the error path and empty-input edge case. For a 3-parameter bulk mutation tool, an agent has everything needed to call it correctly and interpret the result.

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 baseline is 3, but the description adds value the schema lacks: it enumerates the valid assistant identifiers (conversation, cloud.alexa, cloud.google_assistant), which the schema does not constrain with an enum, and clarifies that the full `entity_ids`/`assistants` lists are sent in one call.

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+resource ('Expose or hide many entities across one or more voice assistants') with an explicit bulk scope. It also names the mechanism (a single WS `homeassistant/expose_entity` call with full lists), so an agent can distinguish it from the single-entity sibling without opening any schema.

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?

Provides an explicit 'Use when' clause (many entities and/or several assistants at once) and an explicit 'Not for' clause routing single entity+assistant cases to `entities_set_entity_exposure`. Both the positive and negative conditions are stated, leaving nothing to inference.

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