Skip to content
Agentmart
Submit a tool

Nyxmix

Agent-first multitrack audio editor: edit sessions live with a human watching.

Connector by Open-Cosmic-Software · GitHub account verified by the MCP Registry

IndexedLicense unknownRemote (HTTP)
Write a review

Install

Pick your client. Read the repository before you give any tool access to your data.

No install instructions from the source yet. Check the repository for setup steps.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Agent-first multitrack audio editor: edit sessions live with a human watching.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
18 read · 16 write · 2 delete · 12 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 48

Read from the source code; the running server may list different tools.

Read 18 · Look things up without changing anything.

  • analyze
  • check_delivery
  • convert_sample_rate
  • describe_capabilities
  • detect_scene_changes
  • get_activity
  • get_image
  • get_pitch
  • get_project
  • get_transcript
  • get_video
  • list_lv2_plugins
Show 6 more tools
  • list_projects
  • list_proposals
  • list_user_presets
  • lv2_plugin_info
  • spectral_image
  • video_frame

Write 16 · Create, change, send or run things.

  • apply_lv2_plugin
  • apply_user_preset
  • archive_url
  • batch_process
  • create_project
  • edit
  • import_audio
  • import_video
  • install_faust_plugin
  • install_plugin
  • propose_edits
  • remix_music
Show 4 more tools
  • save_preset
  • save_version
  • set_video_offset
  • spectral_edit

Delete 2 · Delete, drop, revoke or wipe things.

  • cut_transcript
  • remove_filler_words

Not yet classified 12 · We could not tell from the name and description.

  • auto_duck
  • export_cd
  • generate_audio
  • list_plugins
  • noise_reduction
  • pitch_curve
  • process_audio
  • redo
  • render
  • stretch_clip
  • transcribe
  • undo

Tools (48)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze

    Measure audio: EBU R128 loudness (integrated LUFS, LRA, true peak), sample peak/RMS/clipping/DC, silent stretches, spectral band balance, optional RMS envelope.

  • apply_lv2_plugin

    Run a native LV2 or VST3 effect plugin over an asset on the server (destructive, like process_audio): creates a new asset and, by default, swaps it into every clip using the original (one undo step; undo restores the original). Length is kept; mono assets stay mono (stereo plugins get a dual-mono feed and are folded back), stereo assets stay stereo (mono plugins run per channel). Plugin latency is compensated. start/end (asset seconds) restrict it to a range with crossfaded edges. controls: { symbol: number } validated against lv2_plugin_info ranges. Returns the new asset id. Check the result …

  • apply_user_preset

    Add a saved preset's effects to a track (or the master). replace:true clears the chain first. One undo step.

  • archive_url

    Get a download URL for a .nyxmix archive of the session (project, lossless audio, transcripts, versions, and the custom plugins it uses) — for backups or moving the session to another NyxMix server, where POST /api/projects/import restores it.

  • auto_duck

    Lower a music/bed track automatically wherever the voice tracks are speaking. Writes volume automation on the music track (replacing its existing volume automation) — one undoable step; the human can fine-tune the points afterwards. Returns the detected speech regions.

  • batch_process

    Run one destructive process (see process_audio kinds, e.g. loudness, denoise, voiceDenoise, declip) on several files — by default every file used on the timeline. Each result is swapped into its clips when the length stays the same. Returns per-file results.

  • check_delivery

    Description is built at runtime.

  • convert_sample_rate

    Change the session sample rate (44100, 48000, 88200, 96000): every file is resampled with SoX (high quality); clip times and the arrangement stay the same. Not undoable — save_version first if unsure.

  • create_project

    Create an empty session.

  • cut_transcript

    Remove spoken words from the edit by text — like deleting them in a document. Give EITHER text (an exact phrase from get_transcript; case and punctuation are ignored; if it occurs more than once you must pass occurrence = 1-based index or "all") OR ranges [{start,end}] in timeline seconds (cut exactly as given) OR words [{start,end,trackId?}] copied from get_transcript format "words". Word cuts get 30 ms padding that never eats into neighbouring kept words; the pause between consecutive removed words goes too. Ripple-deleted on every track that carries speech (several mic tracks stay in sync) …

  • describe_capabilities

    Effect types with parameter ranges, destructive processes, and export formats.

  • detect_scene_changes

    Find shot changes / hard cuts in the video (ffmpeg scene score). Returns timeline times — handy for cutting or crossfading audio exactly on picture cuts, or dropping markers there. threshold 0–1 (default 0.35; lower finds softer changes).

  • edit

    Description is built at runtime.

  • export_cd

    Export a CD image (Audition: CD Layout): 44.1 kHz/16-bit dithered WAV plus a CUE sheet. Every labelled marker starts a CD track (titles from labels, min 4 s apart, up to 99). Burn the .cue with any burning program.

  • generate_audio

    Description is built at runtime.

Show 33 more tools
  • get_activity

    Recent edits with author (human or agent) — use it to see what the human changed.

  • get_image

    Render a waveform or spectrogram PNG of the mix, an asset or a clip, so you can look at the audio.

  • get_pitch

    Fundamental-frequency (pitch) track of an asset, measured with YIN every 10 ms on a mono mix. Returns a summary (medianHz, minHz/maxHz after a 5-frame median so single octave slips do not count, p10Hz/p90Hz, voicedFraction, meanConfidence) and the track as [t, hz|null, confidence] decimated to maxPoints (default 120; median of the voiced frames per point). Use it to check a voice (typical speaking f0: ~85–180 Hz lower voices, ~165–255 Hz higher voices), find where someone is speaking (voiced) versus noise, or verify a pitch shift. With clipId and no start/end, measures the clip's source window…

  • get_project

    Read the session: tracks, clips (with times), effects, assets, markers. format "summary" (default) is compact text; "json" is the full document.

  • get_transcript

    Read the TIMELINE transcript: words from every clip on unmuted tracks, mapped to timeline seconds (so it reflects all edits; re-read after cutting, because later times shift). format "text" (default): one line per phrase, "[start–end] words…" (with "Track:" when several tracks speak), filler words shown as ‹um›, low-confidence words suffixed with ~. format "words": JSON {words:[{start,end,word,probability,trackId,clipId,filler?}]} for exact word times.

  • get_video

    The session's reference video: name, duration, size, fps, offset (timeline seconds where frame 0 sits) and the soundtrack asset id. Timeline time = offset + video time.

  • import_audio

    Add an audio file to the session bin from a public URL or base64 data. Any common format; converted losslessly to 32-bit float at the project rate. Returns the asset (id, duration). Then place it with clip.add.

  • import_video

    Attach a reference video to the session (one per session; a new one replaces the old) so audio can be cut to picture. Give a public URL or base64 data. NyxMix makes a browser proxy and a filmstrip, and extracts the soundtrack into the bin as an asset (audioAssetId). place:true also adds a "Video sound" track with the soundtrack clip at the video offset. Slow for long videos (it transcodes).

  • install_faust_plugin

    Install a real-time effect written in Faust (https://faust.grame.fr), compiled to WebAssembly on the server. Example: import("stdfaust.lib"); cutoff = hslider("cutoff [unit:Hz]", 2000, 50, 18000, 1); process = par(i, 2, fi.lowpass(4, cutoff)); Every hslider/vslider/nentry/checkbox/button becomes a parameter named after its label in camelCase (e.g. "Wet Dry" → wetDry) with the Faust min/max/init. A mono program runs once per channel; a stereo one (2 in/2 out) on L/R. The full standard library is available: re.zita_rev1_stereo / dm.zita_light (reverb), dm.freeverb_demo, co.compressor_stere…

  • install_plugin

    Install a custom real-time effect: manifest {id, label, description, params:{name:{minimum,maximum,default,unit}}} plus code = an AudioWorklet module that calls registerProcessor("plugin-<id>", Class) with one k-rate AudioParam per param. It is test-rendered before it is accepted, then usable everywhere as effect type "plugin:<id>" (preview and export). Only works if the operator enabled plugins.

  • list_lv2_plugins

    Search the native effect plugins installed on the server — LV2 and VST3 (LSP, x42, Calf, ZAM, Dragonfly, DISTRHO, MDA, …: EQs, compressors, limiters, gates, reverbs, delays, filters, distortion, modulation, stereo tools). They run server-side as destructive processes via apply_lv2_plugin. Filter by free text (all words must match name/brand/category/uri) and/or category; with no filters returns category counts plus the first results. Output: one line per plugin "#index [Category] Name (brand, in→out channels, N controls) uri".

  • list_plugins

    Installed effect plugins (use them with effect.add type "plugin:<id>") and whether installing is enabled here.

  • list_projects

    List editing sessions.

  • list_proposals

    Proposals for a session with their status (open, accepted, rejected) and who decided.

  • list_user_presets

    Presets people and agents have saved (built-in ones are applied with preset_apply).

  • lv2_plugin_info

    Controls of one LV2 or VST3 plugin (by uri or #index from list_lv2_plugins): symbol, label, range, unit, default, toggles and enumerations. Pass values by symbol in apply_lv2_plugin.controls; anything not passed keeps its default.

  • noise_reduction

    Noise-print noise reduction (like Audition's Capture Noise Print + Noise Reduction). Best for steady noise: hiss, fan, air-con, hum, room tone. Give start/end of a stretch that contains ONLY the noise (room tone before someone speaks, ≥ 0.1 s, ideally 0.5–2 s): the print is learned from it, stored on the asset, and applied to the whole asset in one call. Without start/end the stored print of this asset (or the asset it was made from, or profileFrom) is reused. learnOnly:true only captures the print and returns its description (level, band balance, tonal peaks such as 50/60 Hz hum). Applying cr…

  • pitch_curve

    Manual pitch correction: shift a voice by a curve of points {time (asset/source seconds), cents} — linear between points, 0 outside, so put 0-cent points around the part you fix. E.g. a note 30 cents flat from 12.40–12.90 s: [{time:12.3,cents:0},{time:12.4,cents:30},{time:12.9,cents:30},{time:13.0,cents:0}]. Use get_pitch first to see where the voice is off. Formants are kept (WORLD vocoder); only the covered span is resynthesised.

  • process_audio

    Description is built at runtime.

  • propose_edits

    Suggest a batch of edits WITHOUT applying them. The human hears a preview and accepts or rejects it in the UI. Use this for anything subjective or destructive-feeling (big cuts, re-ordering, heavy processing choices) or when the human asked to review first. Same op format as `edit`. label = one line the human reads; rationale = why (short). Returns the proposal; check its status later with list_proposals.

  • redo

    Redo.

  • remix_music

    Make a music clip fit a target length by jumping between musically similar beats (like Audition's Remix) instead of stretching: tempo and pitch stay untouched. Result is ordinary clips with crossfades at the jumps (one undo step), so a human can adjust them. Typical use: fit a bed to an episode or a 30 s ad. Returns the achieved length (within about a beat of the target).

  • remove_filler_words

    Description is built at runtime.

  • render

    Export the mix. Returns a download URL plus measured loudness. bounce:true instead adds the mixdown to the bin as a new asset.

  • save_preset

    Save the effect chain of a track (or the master, without trackId) as a named preset that works in every session — e.g. after dialling in a voice sound the human likes.

  • save_version

    Save a named snapshot of the session (e.g. before a risky pass) that the human can return to.

  • set_video_offset

    Slide the video against the timeline: offset = timeline seconds where the video starts. Does not move audio clips (move the soundtrack clip with clip.move if they should stay in sync).

  • spectral_edit

    Audition-style spectral editing of an asset on a time × frequency region. The region is ONE of: a box (start, end, optional lowHz/highHz); a lasso polygon ([[t, hz], …], for shapes that follow a sweep or a slanted chirp); or brush strokes ({points:[[t, hz], …], radiusMs, radiusSemitones}, for painting along a whistle, a harmonic or onto single clicks). action "attenuate" scales the region by gainDb with smooth edges (e.g. take a whistle at 2.9–3.2 kHz down by 30 dB); action "heal" rebuilds it, per frequency, from the audio right before and after it — use it for coughs, clicks, mouth noises, a …

  • spectral_image

    Look at an asset's spectrogram rendered by NyxMix's own STFT, with an exact pixel → (time, Hz) mapping (returned as text next to the image) so you can read off rectangles for spectral_edit. Log-frequency axis (bottom = minHz, top = maxHz), no axis decorations. With clipId and no start/end, shows the clip's source window. All times are seconds in asset/source time, not timeline time. A clip maps source to timeline as timeline = clip.start + (source − clip.offset), i.e. source = clip.offset + (timeline − clip.start).

  • stretch_clip

    Time-stretch one clip to an exact length (duration in seconds) or by a ratio, keeping its pitch (Rubber Band, high quality) — e.g. fit a music bed to 30.0 s. Creates a new file and points the clip at it; one undo step.

  • transcribe

    Speech-to-text with word-level timestamps (Whisper, runs locally). Transcribes one asset, or (without assetId) every asset used on the timeline that has no transcript yet. Results are cached per asset, so calling again is cheap; force:true re-runs. Same-length processed copies (denoise etc.) reuse their source's transcript. Takes roughly 0.1–0.3× the audio length; the first run also downloads the model. If it is still running after ~50 s this returns {status:"running"} — call get_transcript later. Afterwards use get_transcript to read and cut_transcript / remove_filler_words to edit by text.

  • undo

    Undo the last edit (by anyone).

  • video_frame

    Look at the picture: returns the video frame at a timeline time as a JPEG image (e.g. to check who is on screen, or find where a shot changes before cutting the audio there).

Signals

Stars
0
Forks
0
Open issues
0
Last commit
Oct 18, 2026 (11 days ago)
Last release
Oct 18, 2026 (11 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.Open-Cosmic-Software/nyxmix
Version
0.1.0
Auth
API key
Packages
npm nyxmix
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Nyxmix MCP server. Agent Mart. https://agentmart.dev/connectors/open-cosmic-software-nyxmix (last updated 2026-10-24)