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
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.
About
Reviews
Write a reviewNo 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.
analyzecheck_deliveryconvert_sample_ratedescribe_capabilitiesdetect_scene_changesget_activityget_imageget_pitchget_projectget_transcriptget_videolist_lv2_plugins
Show 6 more tools
list_projectslist_proposalslist_user_presetslv2_plugin_infospectral_imagevideo_frame
Write 16 · Create, change, send or run things.
apply_lv2_pluginapply_user_presetarchive_urlbatch_processcreate_projecteditimport_audioimport_videoinstall_faust_plugininstall_pluginpropose_editsremix_music
Show 4 more tools
save_presetsave_versionset_video_offsetspectral_edit
Delete 2 · Delete, drop, revoke or wipe things.
cut_transcriptremove_filler_words
Not yet classified 12 · We could not tell from the name and description.
auto_duckexport_cdgenerate_audiolist_pluginsnoise_reductionpitch_curveprocess_audioredorenderstretch_cliptranscribeundo
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+…].
analyzeMeasure audio: EBU R128 loudness (integrated LUFS, LRA, true peak), sample peak/RMS/clipping/DC, silent stretches, spectral band balance, optional RMS envelope.
apply_lv2_pluginRun 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_presetAdd a saved preset's effects to a track (or the master). replace:true clears the chain first. One undo step.
archive_urlGet 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_duckLower 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_processRun 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_deliveryDescription is built at runtime.
convert_sample_rateChange 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_projectCreate an empty session.
cut_transcriptRemove 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_capabilitiesEffect types with parameter ranges, destructive processes, and export formats.
detect_scene_changesFind 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).
editDescription is built at runtime.
export_cdExport 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_audioDescription is built at runtime.
Show 33 more tools
get_activityRecent edits with author (human or agent) — use it to see what the human changed.
get_imageRender a waveform or spectrogram PNG of the mix, an asset or a clip, so you can look at the audio.
get_pitchFundamental-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_projectRead the session: tracks, clips (with times), effects, assets, markers. format "summary" (default) is compact text; "json" is the full document.
get_transcriptRead 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_videoThe 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_audioAdd 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_videoAttach 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_pluginInstall 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_pluginInstall 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_pluginsSearch 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_pluginsInstalled effect plugins (use them with effect.add type "plugin:<id>") and whether installing is enabled here.
list_projectsList editing sessions.
list_proposalsProposals for a session with their status (open, accepted, rejected) and who decided.
list_user_presetsPresets people and agents have saved (built-in ones are applied with preset_apply).
lv2_plugin_infoControls 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_reductionNoise-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_curveManual 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_audioDescription is built at runtime.
propose_editsSuggest 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.
redoRedo.
remix_musicMake 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_wordsDescription is built at runtime.
renderExport the mix. Returns a download URL plus measured loudness. bounce:true instead adds the mixdown to the bin as a new asset.
save_presetSave 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_versionSave a named snapshot of the session (e.g. before a risky pass) that the human can return to.
set_video_offsetSlide 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_editAudition-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_imageLook 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_clipTime-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.
transcribeSpeech-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.
undoUndo the last edit (by anyone).
video_frameLook 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
- Repository
- github.com/Open-Cosmic-Software/nyxmix
- 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)