midi-composer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MIDI_COMPOSER_OUTPUT_DIR | No | Override the default output directory for MIDI files (default is ./midi_output) | ./midi_output |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_scalesA | List every scale type in the database with intervals, degree labels and aliases. Use a scale type's name (or any alias) with get_scale, match_scales, diatonic_chords and degrees_to_chords. |
| list_chordsA | List every chord type in the database with intervals, degree labels, symbol suffixes and aliases. Use a chord type's name or symbol suffix with get_chord, and root+suffix symbols (e.g. 'Am', 'G7', 'F#m7b5') anywhere a chord symbol is accepted. |
| get_scaleA | Describe a scale type; with a root note, generate its notes. Without |
| get_chordA | Describe a chord type; with a root note, generate its notes. Without |
| match_scalesA | Find scales that contain all of the given notes (octaves are ignored).
|
| match_chordsA | Find chords that match the given notes (octaves are ignored). 'exact' matches use exactly the input pitch classes; when the first input
note is not the chord root the inversion is reported with slash notation
(e.g. 'E G C' -> C/E, first inversion). 'partial' matches are chords that
contain all input notes plus the listed |
| diatonic_chordsA | List the chord built on each degree of a scale (triads, or sevenths). E.g. diatonic_chords('C', 'major') -> I=C, ii=Dm, iii=Em, IV=F, V=G, vi=Am, vii°=Bdim. Seven-note scales also get roman numerals, degree names and harmonic functions (tonic/subdominant/dominant) — the raw material for designing a progression yourself; then resolve it with degrees_to_chords. A root with an octave (e.g. 'C4') yields concrete pitches with MIDI numbers. |
| degrees_to_chordsA | Resolve a chord-degree sequence you chose into concrete chords of a scale.
|
| random_notesA | Pick The pool is any notes array — typically from get_scale or get_chord, e.g.
random notes from A minor pentatonic. Octaves in the pool are kept.
Reproducible via |
| random_rhythmA | Roll a random rhythm pattern of Returns a pattern string like 'O...Oo..' where O = strong beat, o = weak
beat, . = pause. |
| notes_to_midiA | Write a note sequence (scale, arpeggio or melody) to a MIDI file. Plays the notes in order, one per |
| chords_to_midiA | Write a chord sequence to a MIDI file (block chords, or arpeggiated).
|
| song_to_midiA | Write a melody plus chord accompaniment into one two-track MIDI file. Track 1 plays |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/voho/midi-composer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server