Skip to main content

MCP tool for noise detection and OTIO timeline annotation generation. Measures noise floor with ffmpeg astats and writes denoise instructions to timeline.otio.

Project description

clipwright-noise

MCP tool for noise detection and OTIO timeline annotation generation.

Overview

Measures audio noise floor using ffmpeg astats filter, writes denoise instructions (backend, parameters) to timeline-level metadata["clipwright"]["denoise"].

Performs detection only (OTIO annotation); realization (ffmpeg filter application) is done once by clipwright-render (design M3: separation of detection and application).

Initial render support:

  • afftdn backend: render application supported (clipwright-render injects afftdn filter).
  • deepfilternet backend: annotation only. render application not yet supported (planned in future version).

Prerequisites

  • Python 3.11 or later
  • ffmpeg / ffprobe must exist on PATH or full paths set in environment variables CLIPWRIGHT_FFMPEG / CLIPWRIGHT_FFPROBE.

Add ffmpeg to PATH directly or specify via environment variables:

export CLIPWRIGHT_FFMPEG=/path/to/ffmpeg
export CLIPWRIGHT_FFPROBE=/path/to/ffprobe

MCP Tool

clipwright_detect_noise

Parameters

Name Type Default Description
media string required Input media file path (video + audio required)
output string required Output OTIO timeline path (.otio, same directory as media)
options.backend "afftdn" | "deepfilternet" "afftdn" denoise backend
options.strength "light" | "medium" | "strong" "medium" afftdn nr mapping (light=6/medium=12/strong=24 dB)
timeline string | null null Existing OTIO timeline path (if specified, append to it)

Dependencies

Package Purpose
clipwright Shared types, envelope, errors, process.run
mcp[cli] MCP server
pydantic Parameter validation

ffmpeg / ffprobe are invoked as separate processes (via PATH or environment variables) for license independence. DeepFilterNet binary is not bundled in initial version; render-side dependency planned.

Installation and Startup

Within a uv workspace:

uv run --package clipwright-noise clipwright-noise

Or install directly:

uv add clipwright-noise
clipwright-noise

MCP Configuration (.mcp.json)

Register clipwright-noise in your MCP host configuration to expose clipwright_detect_noise as a tool.

{
  "mcpServers": {
    "clipwright-noise": {
      "command": "clipwright-noise",
      "env": {
        "CLIPWRIGHT_FFMPEG": "/path/to/ffmpeg",
        "CLIPWRIGHT_FFPROBE": "/path/to/ffprobe"
      }
    }
  }
}

Environment variables:

Variable Required Description
CLIPWRIGHT_FFMPEG Optional Full path to ffmpeg binary. If omitted, ffmpeg must be on PATH.
CLIPWRIGHT_FFPROBE Optional Full path to ffprobe binary. If omitted, ffprobe must be on PATH.

The console script clipwright-noise (registered in [project.scripts]) launches the MCP server over stdio. No CLI argument parsing is required — all inputs are passed via MCP tool calls.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clipwright_noise-0.2.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clipwright_noise-0.2.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file clipwright_noise-0.2.0.tar.gz.

File metadata

  • Download URL: clipwright_noise-0.2.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for clipwright_noise-0.2.0.tar.gz
Algorithm Hash digest
SHA256 240265d92d0f8ce913805477aff66fce911475b8015f7973839a174771bb3392
MD5 ae187f505fcd1d1947884d8584d4f389
BLAKE2b-256 d5370e9dfc459e97ea1a4c399c54c42ceabe9d23981aac0c5168a2809a598b4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for clipwright_noise-0.2.0.tar.gz:

Publisher: publish.yml on satoh-y-0323/clipwright

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clipwright_noise-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for clipwright_noise-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f255969ab719edcbb8c34f796d43474d8155f046c338f29b713218c0d15ed3b5
MD5 61ac8ea4956a3198bba42f62a0f96a80
BLAKE2b-256 6473f68ffa4f6fa676c340601319dfb7bf6cedbac82333b8d94463702fd97481

See more details on using hashes here.

Provenance

The following attestation bundles were made for clipwright_noise-0.2.0-py3-none-any.whl:

Publisher: publish.yml on satoh-y-0323/clipwright

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page