Skip to main content
Glama
ismail: agent DAW (MCP server)

ismail: agent DAW (MCP server)

Onair Check

onair_check

Verify a render before air or review with a PASS/FAIL verdict covering unplanned silence, source levels against the mix, and custom rule checks, with reasons and next steps.

Instructions

Measure a render before it goes on air or to review, in one verdict: PASS, or FAIL with each reason and what to do next. Three readings: (1) silence: no stretch of min_s s (3) or more under silence_db (-50 dBFS) in the mix, except the planned [[start_s, end_s], ...] windows (analyze_silence); (2) sources: each named source (track: after render(stems=True), or a file lined up with the mix, as a list or a {label: source} dict): its own rms and peak, how much of the mix it plays in, its level against the mix where it plays, and its share of the mix's energy. It fails when silent, or more than floor_db (-20 dB) under the mix where it plays; (3) rules: the caller's own check, a Python file, or a list of it and its arguments (run with this Python, never a shell or another program), run in the working directory with ISMAIL_CHECK_MIX set to the mix's path; a nonzero exit fails, and its last lines are shown. mix: render | a file path (no project needed for files). A set's or a video's code calls onair_gate, which raises on a fail unless force=True.

Input Schema

NameRequiredDescriptionDefault
mixNorender
min_sNo
rulesNo
plannedNo
projectNo
sourcesNo
floor_dbNo
silence_dbNo
rules_timeout_sNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely meets it: it defines exactly what causes a FAIL for each of the three readings, notes that rules execute with 'this Python, never a shell or another program', sets ISMAIL_CHECK_MIX, and probes the working directory. It omits timeouts/duration expectations and any statement about side effects of executing arbitrary rule files, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the verdict concept and uses a numbered breakdown, which helps. But the prose is packed into long run-on clauses (e.g. the sources sentence stacks four separate measurements into one breath) and the trailing mix/onair_gate note is appended without a clean break, making it slower to parse than its length warrants.

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?

For a nine-parameter, no-annotation, zero-schema-coverage tool this is close to complete: pass/fail semantics, source specification formats, rules execution model, and the gate-raising behavior are all covered. The remaining gaps are rules_timeout_s, the role of the project parameter, and why the description restates return values that the output schema already supplies.

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 description coverage is 0%, so the description must compensate, and it does for most of the nine parameters: mix ('render | a file path'), min_s ('(3)'), silence_db ('(-50 dBFS)'), planned ('[[start_s, end_s], ...] windows'), sources (accepts track:<name>, a path, a list, or a {label: source} dict), floor_db ('(-20 dB)'), and rules (Python file or list of it plus arguments). Two parameters, rules_timeout_s and project, are never explained beyond an implicit hint that files need no project.

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 ('Measure a render'), the output ('one verdict: PASS, or FAIL with each reason and what to do next'), and enumerates the three readings it performs. An agent can tell this apart from single-purpose siblings like analyze_silence or analyze_overview because the description frames it as a composite gate for pre-air/review sign-off.

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?

Gives a clear when-to-use context ('before it goes on air or to review') and explains the automation path ('a set's or a video's code calls onair_gate, which raises on a fail unless force=True'). It stops short of naming exclusion cases or explicitly contrasting itself with the many sibling analyzers, which would be needed for a 5.

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