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:
afftdnbackend: render application supported (clipwright-renderinjects afftdn filter).deepfilternetbackend: 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.
Metadata
Release files for clipwright-noise 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clipwright_noise-0.4.1.tar.gz | 9.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clipwright_noise-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.2 kB
Release files / clipwright_noise-0.4.1.tar.gz
| Download URL | clipwright_noise-0.4.1.tar.gz |
|---|---|
| Size | 9.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6048b8b23e59e77a2cf001babdb2f3f8c0b3d06b20076642b4f82b9707013690
|
|
BLAKE2b-256 checksum How to use checksums |
d11ef5d642c598246655c2fc101106768168eaa53dc065b2e2acc3c59619bb74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / clipwright_noise-0.4.1-py3-none-any.whl
| Download URL | clipwright_noise-0.4.1-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
021f2018dd5b365560e50cace932574de211ff93607e87c6670944825385c5c7
|
|
BLAKE2b-256 checksum How to use checksums |
4ea7fa90133ea8fa016f934a3b3d0135185a03193119ca921c6023a81b9dc958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency log