Skip to main content
Glama

attenuate_noises

DestructiveIdempotent

Automatically lowers short loud non-speech events instead of cutting them, using transcript word gaps to ensure speech is never attenuated. Writes a derived copy; original remains untouched.

Instructions

Pull down short loud non-speech events instead of cutting them out.

An event only qualifies automatically when it is both short (max_event_seconds) and sitting in a word-map gap narrow enough to prove the map is dense around it (max_gap_seconds) — a wide gap disqualifies even a very short event, which is the false-positive class this exists to prevent (speech sitting in a hole the transcript never wrote down). Qualifying events are pulled down db via one ffmpeg pass, never cut, and written as a new derived copy that media_path() picks up automatically everywhere downstream; the original is always what a re-run reads from, so repeated calls never compound gain.

Unlike cut_by_transcript/cut_by_time, nothing here ever raises on what the scan finds — this is an automatic multi-candidate scan, not a handful of explicit ranges, so withholding is done per event rather than refusing the whole call. suspect_neighbours (a bounding word itself has a suspect duration — withheld unless confirm_suspect=True or plan=True) and disqualified (too long, or too wide a gap — never written, no override) are always reported in full, not only under plan=True.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dbNoHow far to pull each qualifying event down, in dB. Negative is quieter.
padNoSeconds added either side of each event before it is pulled down.
pathNoThe project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing.
planNoResolve the whole call and report what it would do, writing nothing. Prefer it over doing the thing and undoing it.
clip_idYesThe clip to scan. It always reads that clip's **original** media, never a previous attenuated copy, so repeated calls never compound gain.
confirm_suspectNoGo ahead even though a boundary word claims a suspect duration. Read the echoed words first — a suspect duration usually means whisper hid a retake inside that word, so the edge is not where it reads.
max_gap_secondsNoHow wide the word-map gap around an event may be. A wide gap disqualifies even a very short event — that is the false-positive class this exists to prevent, speech sitting in a hole the transcript never wrote down.
max_event_secondsNoLongest an event may run and still qualify automatically. Anything longer is reported as `disqualified` and never written.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed19 schema fields changedv0.25.0
    • addedInput schema / properties / clip_id / description
      Added value: +"The clip to scan. It always reads that clip's **original** media, never a previous attenuated copy, so repeated calls never compound gain."
    • removedInput schema / properties / clip_id / title
      Removed value: -"Clip Id"
    • addedInput schema / properties / confirm_suspect / description
      Added value: +"Go ahead even though a boundary word claims a suspect duration. Read the echoed words first — a suspect duration usually means whisper hid a retake inside that word, so the edge is not where it reads."
    • removedInput schema / properties / confirm_suspect / title
      Removed value: -"Confirm Suspect"
    • addedInput schema / properties / db / description
      Added value: +"How far to pull each qualifying event down, in dB. Negative is quieter."
    • removedInput schema / properties / db / title
      Removed value: -"Db"
    • addedInput schema / properties / max_event_seconds / description
      Added value: +"Longest an event may run and still qualify automatically. Anything longer is reported as `disqualified` and never written."
    • removedInput schema / properties / max_event_seconds / title
      Removed value: -"Max Event Seconds"
    • addedInput schema / properties / max_gap_seconds / description
      Added value: +"How wide the word-map gap around an event may be. A wide gap disqualifies even a very short event — that is the false-positive class this exists to prevent, speech sitting in a hole the transcript never wrote down."
    • removedInput schema / properties / max_gap_seconds / title
      Removed value: -"Max Gap Seconds"
    • addedInput schema / properties / pad / description
      Added value: +"Seconds added either side of each event before it is pulled down."
    • removedInput schema / properties / pad / title
      Removed value: -"Pad"
    • removedInput schema / properties / path / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / path / description
      Added value: +"The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing."
    • removedInput schema / properties / path / title
      Removed value: -"Path"
    • addedInput schema / properties / path / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / properties / plan / description
      Added value: +"Resolve the whole call and report what it would do, writing nothing. Prefer it over doing the thing and undoing it."
    • removedInput schema / properties / plan / title
      Removed value: -"Plan"
    • removedInput schema / title
      Removed value: -"attenuate_noisesArguments"
  2. First observedv0.24.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description explains the exact write behavior: a new derived copy is written, the original is always read first, repeated calls never compound gain, and nothing ever raises on scan findings. It also documents per-event withholding versus whole-call refusal, and the behavior of suspect_neighbours and disqualified events.

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?

The description is dense but every sentence contributes: it front-loads the core purpose, explains the qualification rule, discloses write behavior, and then distinguishes this tool from siblings. Despite its length, it is efficiently structured with clear paragraphs and no 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?

Given the tool's complexity, the description fully covers the qualification criteria, the no-compound-gain guarantee, the difference from sibling tools, and the reporting behavior for suspect and disqualified events. The output schema handles return value specifics, so nothing essential is missing.

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?

The input schema already covers all parameters with detailed descriptions (100% coverage), so the baseline is 3. The tool description adds value by explaining how db, max_event_seconds, max_gap_seconds, confirm_suspect, and plan work together in the qualification and withholding logic, going beyond individual schema comments.

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?

The description states a specific verb and resource: 'Pull down short loud non-speech events instead of cutting them out.' It clearly distinguishes itself from cut_by_transcript/cut_by_time by describing the difference in granularity and failure mode, so an agent can select it correctly.

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?

The description explicitly contrasts this tool with cut_by_transcript/cut_by_time, explaining that this is an automatic multi-candidate scan rather than explicit ranges. It also clarifies when plan=True should be preferred and how confirm_suspect gates a specific case.

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