v0.6.0 Built into the engine. It runs on your computer: no account, no API key, nothing sent anywhere.

Wavelength MCP

Give Claude, Cursor, VS Code or Codex a music engine. Your agent writes songs as data, plays them through the synthesizers on your computer, and reads back how they measure.

Set it up See the 26 tools Source on GitHub

Set it up in a minute.

1Get the engine

One binary, no installer. This puts the macOS build in your home folder; Linux and Windows builds are on the latest release.

Clients want the binary's full path. Below, /path/to/wavelength stands for it: /Users/you/wavelength-macos-universal/wavelength after this.

curl -L https://github.com/austinginder/wavelength/releases/latest/download/wavelength-macos-universal.tar.gz | tar xz -C ~
~/wavelength-macos-universal/wavelength version

2Add it to your client

Claude Code

The plugin brings the server and the /wavelength skill, and installs the engine on first use, so step 1 is optional:

/plugin marketplace add austinginder/wavelength
/plugin install wavelength@wavelength

Or add the server alone, for every project:

claude mcp add --scope user wavelength -- /path/to/wavelength mcp

Claude Desktop

Download wavelength.mcpb and open it. It carries the engine for macOS, Windows and Linux and asks where to keep your songs, so there is nothing to edit. Or, in Settings, Developer, Edit Config, add it to claude_desktop_config.json and restart:

{"mcpServers": {
  "wavelength": {
    "command": "/path/to/wavelength",
    "args": ["mcp"]
  }
}}

Cursor

Add it to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:

{"mcpServers": {
  "wavelength": {
    "command": "/path/to/wavelength",
    "args": ["mcp"]
  }
}}

VS Code

One command adds it to your profile for agent mode:

code --add-mcp '{"name": "wavelength", "command": "/path/to/wavelength", "args": ["mcp"]}'

Codex

Add it to ~/.codex/config.toml. A full render can outlast the time Codex gives a tool by default, so this allows ten minutes:

[mcp_servers.wavelength]
command = "/path/to/wavelength"
args = ["mcp"]
tool_timeout_sec = 600

Any other client

Windsurf, Gemini CLI, Zed and the rest run it the same way: a local stdio server whose command is the binary and whose argument is mcp. Most take this shape:

{"mcpServers": {
  "wavelength": {
    "command": "/path/to/wavelength",
    "args": ["mcp"]
  }
}}

Then ask for a song: Write a 90-second synthwave track with a big chorus. Render it and tell me how it measures. The agent starts with the guide, lists what's installed, and works from there.

It can't hear. So it reads.

Every render answers with the numbers an engineer would check: loudness for the mix, each section and each track, true peak, and warnings with their fixes. Then a picture of the whole song.

This is the reply to one render call on the engine's examples/synth-tour.json, played on built-in instruments.

ok   0:35.0   mix -14.0 LUFS   LRA 8.6   true peak -1.0 dBTP   rendered in 2.9 s
sections:  Intro -20.8,  Groove -13.4 (+7.4),  Build -17.3 (-3.8),  Drop -13.0 (+4.2)
tracks (stem LUFS before the fader):  Drums -9.8,  Keys -19.3,  Bass -18.4,  Acid -17.5,  Pad -19.4,  Arp -18.1,  Lead -17.5,  Bell -26.8,  Glass -23.9,  Riser -10.9,  Zap -18.3
no warnings
files: mix out/mix.wav, report out/report.json, picture out/song.png
The picture the render tool returns: sections, a loudness contour, the spectrum of the mix, and every track's notes over its level.
The picture that comes with it: sections, loudness, the spectrum, and every track's notes over its level. An agent that reads images sees a quiet bridge or a buried lead here.

26 tools, from finding a sound to sharing the song.

The server's own list, read from version 0.6.0. Each one runs the engine on your computer.

Learn the engine

Read the Wavelength guide guide
The operating guide and references built into the binary, matching this version: how to write, mix and master.

Find sounds

List instruments and effects list_instruments
Every CLAP, VST3, VST2 and Audio Unit instrument and effect on this computer, plus the built-in ones.
List a plugin's presets list_presets
A plugin's presets by name, so the agent picks real sounds instead of guessing.
List sample libraries list_samples
Sample libraries the built-in sampler plays: multisamples, drum kits, SFZ, SoundFonts, GarageBand instruments.
List Apple Loops list_loops
The Apple Loops GarageBand and Logic installed, with key and tempo, and the notes inside them.
List a plugin's parameters plugin_params
A plugin's parameters with their ranges and display text, to set or automate.
Save a sound as a preset file save_preset
Keeps a sound the agent designed as a preset file, for the next song or a DAW project.
See how presets sound patch_card
How a preset sounds, as a picture: its real pitch, attack, tail, range and level. Several make a contact sheet.

Write and check

List the songs list_songs
The songs in the songs folder, newest first, so the agent can pick one up again.
Read a song's job read_job
A song as it stands, with the sounds you tuned by ear, your note edits, your riffs and your brief.
Write a song's job write_job
Saves the song the agent wrote, for clients that can't write files themselves. A job that doesn't parse is refused with the reason.
Check a job's harmony lint
Wrong notes, out-of-key chords and clashes between parts, caught before rendering.
Picture of an arrangement picture
The arrangement drawn before rendering: sections, bars and every track's notes.
Song time of bars and markers timeline
When each bar and marker lands in seconds, to find a moment or plan a length.

Render and mix

Set every fader from its loudness stage
Sets every fader from measured loudness, the way an engineer gain-stages a mix.
Render a song render
Plays the song through its instruments and effects. Answers with loudness per section and track, warnings with their fixes, and a picture.
Measure audio analyze
Measures audio: pitch, brightness, band balance, stereo width, onsets.

Keep songs

Save a revision of a song save
Saves a revision of the song, so any change can be undone.
A song's revisions history
Every revision of a song, with each render's loudness.
Undo, redo or restore a song undo
Undo, redo, or bring back any revision.
What changed in a song diff
What changed in the music between two revisions, by track and bar.
A song's review comments comments
The notes you left while listening in the review page, pinned to bars and tracks.
Answer a comment reply
Answers a comment with what changed, and resolves it.
Stand-in sounds for a song fallbacks
Built-in stand-ins for every plugin a song uses, level-matched, so it plays on any computer.
Pack a song into one file pack
The song as one .wavelength file to share, with the plugins it needs listed.

Bring music in

Import MIDI, MusicXML, DAWproject, a Bitwig or a GarageBand project import
Starts from MIDI, MusicXML, DAWproject, Bitwig or GarageBand projects.

Questions people ask first.

Do I need plugins?

No. The built-in synth, drums and effects play a whole song. wavelength kit install adds free synths (Surge XT, OB-Xf, Dexed), and every CLAP, VST3, VST2 and Audio Unit instrument you own works too.

Does it go online?

The server doesn't. It reads and writes files on your computer, and songs, renders and reports stay there. Your client's model sees what the tools return.

Where do songs go?

Each song is a folder in ~/Music/Wavelength, or wherever WAVELENGTH_SONGS points, unless the agent names one. Clients that can't write files, like Claude Desktop, write songs through the server.

Skill or MCP?

Both, in Claude Code: the plugin brings them together. Elsewhere the server is enough. Its guide tool hands the agent the same operating guide the skill follows.

What does it cost?

Nothing. Wavelength is open source under the MIT licence, for macOS, Linux and Windows.

Hear what agents made with it.

Every song in the library was written, arranged and mixed by Claude with Wavelength, with the prompt that started it and every instrument it used.

Listen to the songs Get the agent skill Read the agent guide