Skip to main content
Glama

Stop audio to a conference member

stop_audio_to_conference_member
DestructiveIdempotent

Stops audio playback for a specified conference member or all members. Halts audio started by play_audio_to_conference_member, even if nothing is playing.

Instructions

Stop audio started by play_audio_to_conference_member for members of a live Vobiz conference (DELETE /Conference/{name}/Member/{id}/Play/). It succeeds even when nothing is playing. A room that is not running, or a member who already left, returns the not_found error.

Input Schema

NameRequiredDescriptionDefault
member_idYesConferenceMemberID from the ConferenceEnter callback (or get_conference), a comma-separated list such as 17,45,82, or `all` for every member.
conference_nameYesConference room name, exactly as used in the <Conference> XML element.

Output Schema

NameRequiredDescriptionDefault
okNoTrue on success; false when the result is an error (then error, message and retryable are set).
playingNoAlways false: playback is stopped.
member_idNoMembers the action was applied to: the literal "all", or the list of member IDs as Vobiz echoed them (or as requested).
http_statusNoHTTP status Vobiz answered with (202 = accepted, 204 = done).
conference_nameNoRoom the action was applied to.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.4.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "conference_name": {
      +      "description": "Room the action was applied to.",
      +      "type": "string"
      +    },
      +    "http_status": {
      +      "description": "HTTP status Vobiz answered with (202 = accepted, 204 = done).",
      +      "type": "number"
      +    },
      +    "member_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "items": {},
      +          "type": "array"
      +        }
      +      ],
      +      "description": "Members the action was applied to: the literal \"all\", or the list of member IDs as Vobiz echoed them (or as requested)."
      +    },
      +    "ok": {
      +      "description": "True on success; false when the result is an error (then error, message and retryable are set).",
      +      "type": "boolean"
      +    },
      +    "playing": {
      +      "const": false,
      +      "description": "Always false: playback is stopped.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint, idempotentHint and openWorldHint; the description adds value beyond them by spelling out idempotent behavior (succeeds with nothing playing) and the exact failure mode (not_found for a stopped room or departed member). It doesn't describe whether queued/other audio is affected, which would have pushed it higher.

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?

Three short sentences with zero filler: what it does and its counterpart first, then the idempotency guarantee, then the error case. Front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/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 needn't be explained, and the description covers the mutation's success semantics and error conditions. It's nearly complete for a 2-param destructive action; only permission/auth requirements and scope of what is silenced remain unstated.

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 coverage is 100%, with member_id and conference_name fully documented including the `all` keyword and comma-list syntax. The description adds no parameter detail, so the baseline 3 is appropriate — the schema carries this dimension.

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 (stop audio to a conference member) and explicitly ties it to the counterpart tool play_audio_to_conference_member, so the agent can distinguish it from stop_audio (call-level) and stop_audio_stream without opening a schema.

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?

Names the tool whose output it reverses (play_audio_to_conference_member) and gives the operative conditions — it succeeds even when nothing is playing, and returns not_found when the room isn't running or the member left. It stops short of stating when to prefer this over, say, kicking or hanging up a member, but routing is clear.

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