Skip to main content
Glama

Create an Assist pipeline

voice_create_pipeline

Create a new Home Assistant Assist voice pipeline by combining conversation, STT, TTS, and wake-word engines. Use installed entity IDs to build a pipeline for a specific setup.

Instructions

Create a new Assist pipeline via WS assist_pipeline/pipeline/create.

Every parameter is forwarded as-is to HA; engine parameters are entity IDs of the relevant provider (stt.*, tts.*, wake_word.*) rather than free-form names. Calling this twice with the same name creates two separate pipelines with distinct IDs, since HA assigns a new ID each time.

Use when: setting up a new voice pipeline with a specific combination of conversation/STT/TTS/wake-word engines. Not for: changing an existing pipeline — use voice_update_pipeline. Returns: the created pipeline dict, as returned by HA (includes its new id). Limits: engine parameters must already be installed entity IDs; discover them with voice_list_stt_engines, voice_list_tts_engines, voice_list_wake_word_engines and voice_list_conversation_agents first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the new pipeline, e.g. 'Kitchen Assist'.
languageNoOverall pipeline language code, e.g. 'en' or 'pl'.en
tts_voiceNoVoice ID for the TTS engine. Omit to use its default voice.
stt_engineNoEntity ID of the speech-to-text engine, e.g. 'stt.faster_whisper'. Omit for no STT. Discover installed ones with `voice_list_stt_engines`.
tts_engineNoEntity ID of the text-to-speech engine, e.g. 'tts.piper'. Omit for no TTS. Discover installed ones with `voice_list_tts_engines`.
stt_languageNoLanguage code for the STT engine. Omit to use its default.
tts_languageNoLanguage code for the TTS engine. Omit to use its default.
wake_word_idNoSpecific wake word model ID within `wake_word_entity`. Omit for its default.
wake_word_entityNoEntity ID of the wake-word detector, e.g. 'wake_word.openwakeword'. Omit for no wake word. Discover installed ones with `voice_list_wake_word_engines`.
conversation_engineNoEntity ID of the conversation agent, e.g. 'homeassistant' for the built-in agent.homeassistant
conversation_languageNoLanguage code for the conversation agent, e.g. 'en' or 'pl'.en

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv0.25.1
    • addedInput schema / properties / conversation_engine / description
      Added value: +"Entity ID of the conversation agent, e.g. 'homeassistant' for the built-in agent."
    • addedInput schema / properties / conversation_language / description
      Added value: +"Language code for the conversation agent, e.g. 'en' or 'pl'."
    • addedInput schema / properties / language / description
      Added value: +"Overall pipeline language code, e.g. 'en' or 'pl'."
    • addedInput schema / properties / name / description
      Added value: +"Display name for the new pipeline, e.g. 'Kitchen Assist'."
    • addedInput schema / properties / stt_engine / description
      Added value: +"Entity ID of the speech-to-text engine, e.g. 'stt.faster_whisper'. Omit for no STT. Discover installed ones with `voice_list_stt_engines`."
    • addedInput schema / properties / stt_language / description
      Added value: +"Language code for the STT engine. Omit to use its default."
    • addedInput schema / properties / tts_engine / description
      Added value: +"Entity ID of the text-to-speech engine, e.g. 'tts.piper'. Omit for no TTS. Discover installed ones with `voice_list_tts_engines`."
    • addedInput schema / properties / tts_language / description
      Added value: +"Language code for the TTS engine. Omit to use its default."
    • addedInput schema / properties / tts_voice / description
      Added value: +"Voice ID for the TTS engine. Omit to use its default voice."
    • addedInput schema / properties / wake_word_entity / description
      Added value: +"Entity ID of the wake-word detector, e.g. 'wake_word.openwakeword'. Omit for no wake word. Discover installed ones with `voice_list_wake_word_engines`."
    • addedInput schema / properties / wake_word_id / description
      Added value: +"Specific wake word model ID within `wake_word_entity`. Omit for its default."
  2. Addedv0.4.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false, but the description adds genuinely useful behavior beyond the hints: engine params are entity IDs, not free-form names, they must already be installed, and re-using a name yields a second pipeline with a distinct HA-assigned ID. It adds no permission/error-handling detail, so it is strong but not exhaustive.

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-loads the create action and then uses labeled blocks (Use when / Not for / Returns / Limits) that make scanning trivial. Every sentence carries information; nothing is redundant filler.

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?

With 11 parameters, an output schema, and full annotation coverage, the description supplies everything the agent still needs: the create semantics, the sibling to avoid, the discovery prerequisites, and the create-twice caveat. Return-value detail is minimal precisely because an output schema exists.

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 by clarifying that engine parameters are provider entity IDs (stt.*, tts.*, wake_word.*) rather than human-readable names and by pointing to the list_*_engines tools for discovery. It does not document defaults or the conversation_engine fallback, which the schema covers.

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 ('Create a new Assist pipeline') and even names the underlying WS command (assist_pipeline/pipeline/create). It is clearly distinguishable from siblings like voice_update_pipeline, voice_list_pipelines, and voice_set_preferred_pipeline.

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?

Contains explicit 'Use when' and 'Not for' clauses, routing existing-pipeline changes to voice_update_pipeline. It also names the four discovery tools the agent must call before supplying engine entity IDs, so the prerequisites are unambiguous.

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