Skip to main content
Glama
Ardour Ultra MCP
by Elias02345

ensure_bus

Idempotent

Create or verify an exact-name audio bus with a specified channel count, rejecting ambiguous name collisions and returning creation changes plus a stable ID.

Instructions

Ensure one exact-name/channel-count audio bus exists; refuse ambiguous collisions; return creation changes and stable ID.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "request": "<request>"
    },
    "name": "ensure_bus"
  }
}

Input Schema

NameRequiredDescriptionDefault
requestYes

Output Schema

NameRequiredDescriptionDefault
dataNo
errorNo
successNo
warningsNo
revision_afterNo
changed_objectsNo
revision_beforeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare idempotent, non-destructive, non-read-only behavior, and the description adds real context on top: it will fail rather than guess on ambiguous name/channel matches, and it reports creation changes plus a stable ID. However, it never explains the dry-run path, nor why a 'confirm_delete' flag exists on a tool described purely as existence-ensuring, leaving a mutation surface undisclosed.

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?

A single semicolon-delimited sentence that front-loads the core guarantee and then adds failure behavior and return shape. Dense but readable, with no filler wording; only mild cost is that the return-value clause is somewhat redundant given an output schema exists.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema covers the return side, but this is a mutating, precondition-sensitive operation with five nested parameters, three of which (dry_run, confirm_delete, expected_revision) are unaddressed. An agent cannot learn from the description alone how to preview safely or satisfy the revision guard, which is a substantive gap for this complexity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden, yet it only implicitly maps to 'name' and 'channels'. The nested fields 'dry_run', 'confirm_delete', and 'expected_revision' get no meaning, syntax, or consequence explained anywhere in the definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Ensure ... audio bus exists') and pins down the matching key as exact name plus channel count, which is more precise than the bare tool name. It stops short of naming which sibling to use instead (e.g. create_track or get_session_info) for the cases this tool rejects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through 'Ensure' plus the idempotent framing: call it when you want a bus to exist regardless of prior state. The clause 'refuse ambiguous collisions' is a partial when-not condition, but there is no explicit guidance about when to prefer this over a plain create/inspect sibling, nor prerequisites for the revision check.

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