Skip to main content
Glama

Stop an audio stream

stop_audio_stream
DestructiveIdempotent

Stop an active audio stream on a live Vobiz call when you need to end only that stream; the call and other streams continue.

Instructions

Stop one audio stream on a LIVE Vobiz call (DELETE /Call/{uuid}/Stream/{stream_id}/): the undo of start_audio_stream. Other streams on the call keep running, and the call itself continues; to end the call use end_call. No confirmation is needed because it only stops something started on a call the user already placed. If the call has ended, or the stream is unknown or already stopped, it fails with call_not_active and nothing is streaming for it.

Input Schema

NameRequiredDescriptionDefault
call_uuidYesUUID of the live call the stream is on (request_uuid from make_call or call_uuid from list_live_calls).
stream_idYesThe stream's ID: stream_id as returned by start_audio_stream or listed by list_audio_streams.

Output Schema

NameRequiredDescriptionDefault
okNotrue on success; false (with error and message) when the tool failed.
call_uuidNoThe call the stream was on.
stream_idNoThe stream that was stopped.
streamingNofalse once the stream is stopped.
http_statusNoHTTP status Vobiz answered with.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.4.2
    • addedInput schema / properties / call_uuid / description
      Added value: +"UUID of the live call the stream is on (request_uuid from make_call or call_uuid from list_live_calls)."
    • addedInput schema / properties / stream_id / description
      Added value: +"The stream's ID: stream_id as returned by start_audio_stream or listed by list_audio_streams."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "call_uuid": {
      +      "description": "The call the stream was on.",
      +      "type": "string"
      +    },
      +    "http_status": {
      +      "description": "HTTP status Vobiz answered with.",
      +      "type": "number"
      +    },
      +    "ok": {
      +      "description": "true on success; false (with error and message) when the tool failed.",
      +      "type": "boolean"
      +    },
      +    "stream_id": {
      +      "description": "The stream that was stopped.",
      +      "type": "string"
      +    },
      +    "streaming": {
      +      "description": "false once the stream is stopped.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing side-effect scope (other streams on the call keep running, the call itself continues), the preconditions (live call, stream must exist and be active), and the exact error surfaced on a bad state. This is meaningful added context even though destructiveHint/idempotentHint/openWorldHint are already declared.

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 action and endpoint, then scope, then the alternative tool, then the failure mode — a good information order. It is a single dense sentence-chain with nested parentheticals, so it is slightly heavier than it needs to be, but no sentence is wasted.

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?

An output schema exists, so return values need no explanation, and the description covers everything else an agent needs: scope of the mutation, what is left untouched, the alternative tool for call teardown, and the failure state. Nothing material is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already fully documented in the schema, including where the values come from. The description's references to "LIVE" call and to start_audio_stream/list_audio_streams echo rather than extend the schema, so baseline 3 is appropriate.

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?

Names a specific verb and resource ("Stop one audio stream on a LIVE Vobiz call") and even gives the underlying endpoint, which pins down exactly what object is mutated. It explicitly distinguishes itself from start_audio_stream ("the undo of") and from end_call, so an agent can route without opening either 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?

States when to use it (stopping a stream on a live call), when not to (to end the call use end_call), and why no confirmation is required. It also names the failure condition (call_not_active) for ended calls or unknown/already-stopped streams, which is exactly the routing information an agent needs.

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