Skip to main content
Glama
tim661811
by tim661811

Change a Homey advanced flow

homey_advancedflow_update
DestructiveIdempotent

Replace an advanced flow's entire card graph, defining branches, parallel paths, delays, and error handlers with labeled cards. Read current flow first to preserve unchanged cards.

Instructions

An advanced flow is a graph of cards rather than one trigger and a list of actions: branches, parallel paths, joins, delays and error handlers. Give each card your own label and refer to those labels in the output lists; real ids are generated before sending. To use a value another card produced, write [[trigger::<that card's label>::]] or [[action::::]]. The [[owner|token]] form used in standard flows does not name a card and will not work here. The whole graph is replaced, so every card that should survive has to be sent again: read the current one with homey_flow_get first. A flow this server did not create needs confirm: true. Switching a flow that is off ON needs confirmEnable: true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
flowYesThe advanced flow name or id to change.
nameNoA new name. Leave out to keep the current one.
cardsYesThe complete new graph.
confirmNoRequired when the flow was not created by this server.
enabledNoSwitch the flow on or off. Switching it OFF is always allowed. Switching a flow that is currently off ON is refused unless confirmEnable is also true, because a flow arrives switched off so that a person reads what it does before it can run the house, and this is that step. Ask the owner; do not confirm it on their behalf.
confirmEnableNoRequired only when enabled is true and the flow is currently off. Set it after the owner has seen what the flow does and said to switch it on, never merely because the flow looks finished.
Install Server

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing the destructive replace-all semantics, the label-to-real-id rewriting, and the ethical constraint that enabling an off flow requires owner confirmation. This gives the agent a clear model of side effects that the schema and annotations alone do not fully convey.

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 dense but not wasteful; every sentence contributes essential information about advanced flow semantics, syntax, replacement behavior, or confirmation requirements. It could have been slightly easier to scan with bullets, but it is appropriately sized for the complexity of the tool.

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?

Given the tool's complexity and the rich input schema, the description is remarkably complete: it explains the graph model, token references, replace semantics, prerequisite reading, and confirmation requirements. No output schema exists, but the description does not need to explain return values because the critical invocation context is fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds crucial cross-parameter semantics: card labels are user-provided keys replaced by real ids, token references use [[trigger::label::token]] syntax, and confirmEnable is not just a flag but a deliberate owner-approval step. This meaningfully clarifies how the cards array and confirmation parameters interact.

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 title and description clearly state this tool changes a Homey advanced flow, and the description explains that an advanced flow is a graph of cards rather than a simple trigger/action list. It also distinguishes the advanced flow syntax from standard flow syntax, so an agent can tell this apart from homey_flow_update or homey_advancedflow_create.

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 description gives concrete guidance on when to use the tool: it says to read the current flow with homey_flow_get first, warns that the whole graph is replaced, and explains when confirm and confirmEnable are needed. It does not explicitly name homey_flow_update as the standard-flow alternative, but the advanced-flow framing and token syntax warning effectively imply the distinction.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tim661811/homey-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server