MCP server that lets AI assistants create MIDI chord progressions. Chords or Roman numerals in, .mid out, ready for any DAW.
ChordSmith MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Ask your AI assistant for chords, melodies and vocals — get MIDI and audio files you can open
in any music app.**
> "Make me a melancholic 8-bar progression in A minor, arpeggiated, around 80 BPM — then hum it."
The assistant chooses the music (for example Am – F – C – G). ChordSmith turns it into notes,
writes a .mid file, can add melody or drum tracks, can render it to WAV/MP3, and can even sing
it with a soft voice. You can drag the results into GarageBand, Ableton Live, FL Studio, Logic,
Reaper, MuseScore and most other music apps.
ChordSmith is an **MCP server**. MCP (Model Context Protocol) is the standard way for AI apps
such as Claude Desktop to use outside tools. You don't need to know how it works — just follow
the steps below.
---
Quick start (about 5 minutes)
You need:
- An MCP-capable AI app. These steps use **Claude Desktop**; other apps are covered in
docs/getting-started.md.
- **uv**, a small tool that downloads and runs ChordSmith for you.
1. Install uv
macOS / Linux, in a terminal:
Windows, in PowerShell:
Close and reopen the terminal afterwards.
2. Tell Claude Desktop about ChordSmith
In Claude Desktop open **Settings → Developer → Edit Config** and add the chordsmith entry:
3. Restart Claude Desktop and make your first file
Quit it completely, reopen it, and type:
> Use ChordSmith to make a happy I–V–vi–IV progression in G major, strummed, 110 BPM.
Files are saved in a **ChordSmith** folder in your home folder (~/ChordSmith; Docker uses
/data). Open the .mid file in your music app and that's it.
If something doesn't work, see docs/troubleshooting.md.
---
Things to try
- "Give me a jazzy ii–V–I in Bb with seventh chords and smooth voice leading."
- "Write Am F C G as eighth-note arpeggios, repeated 4 times, on a nylon guitar."
- "Add a simple melody on top and a basic drum beat."
- "Hum the melody down an octave with a soft voice, then mix it with the backing."
- "Render it to MP3 so I can hear it without opening a DAW."
- "Transpose my last file to C minor." / "Analyse melancholy.mid and tell me the chords."
What ChordSmith can do
| Tool | What it does |
|---|---|
| create_chord_progression | Chord names (["Am","F","C","G"]) → .mid file |
| create_progression_from_roman | Roman numerals (i–VI–III–VII) + key → .mid file |
| add_track | Adds a note-level track (melody, bass, drums) to a copy of a file |
| set_song_sections | Writes a section map (bars, tempo, meter per section) into the file's conductor |
| get_midi_file | Hands the actual file back (base64 or a signed download link) |
| render_audio | Renders a file to .wav/.mp3 so it can be heard without a music app (or per-track stems with stems: true) |
| set_track_instrument / list_instruments / list_plugins | Per-track instrument specs (a soundfont, a GM program or drum kit, a sampled .sfz instrument, a .vst3 plugin, trims and VST effect chains per track) and the engines + instrument/plugin catalogs this server can run |
| list_chord_types | Shows every chord type ChordSmith understands (30) |
| transpose_midi | Moves a file up/down, or from one key to another |
| analyze_midi | Reads a .mid file and guesses the chords, tempo and key |
| list_generated_files | Lists the files you've made |
| import_midi | Imports a MIDI file made elsewhere (base64) and reports what it contains |
| import_tab | Converts a Guitar Pro tab or MusicXML/MSCZ score to MIDI with MuseScore (local or via the host worker) and imports it like import_midi |
| delete_midi_file / rename_midi_file | Tidies up the output folder |