About Melrose Mcp
melrose-mcp is an MCP server built on packages from melrōse, a tool for composing and playing music through programmed expressions. It is suited to LLM-driven music playback through a MIDI receiver.
Key features
- 01Play musical expressions
- 02Set playback tempo
- 03List MIDI devices
- 04Change output device
Use cases
- 01Play a composed note sequence
- 02Adjust music playback tempo
- 03Select a MIDI output device
MCP support
This stdio MCP server lets MCP clients control melrōse through tools including melrose_play, melrose_bpm, melrose_devices, and melrose_change_output_device.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEmelrose-mcp
melrōse is a tool to create and play music by programming melodies. It uses a custom language to compose notes and create loops and tracks to play.
melrose-mcp is an MCP server (STDIO) that uses the packages from the melrōse tool.
installation
This mcp server requires the Go SDK for installation. To produce music, you need to setup a MIDI receiver such as a DAW or a hardware synthesizer.
go install github.com/emicklei/melrose-mcp@latest
tools
- melrose_play
- melrose_bpm
- melrose_devices
- melrose_change_output_device
session
change the tempo in melrose to a lower value
melrose_bmp request:
{
`bpm`: `80`
}
llm response:
I've reduced the tempo to 80 beats per minute from the default of 120 BPM. This creates a more relaxed and slower pace for any musical expressions we play.
play a tune from Claude Debussy
llm response:
I'll create a small segment inspired by Claude Debussy's impressionist style using the Melrose language at our current tempo of 80 BPM.
melrose_play request:
{
`expression`: `sequence('(F4 A4 D5) 4(F4 A4 D5) (G4 B4 E5) 4(G4 B4 E5) (A4 C5 F5) 4(A4 C5 F5) (G4 B4 E5) 4(G4 B4 E5) (F4 A4 D5) 8= 8(E4 G4 C5) 4(F4 A4 D5)')`
}
melrose_play response:
12.749963417s
configuration in your client
Below an example to configure it in Claude Desktop.
{
"mcpServers": {
"melrōse": {
"command": "<YOUR DIRECTORY TO THE BINARY>/melrose-mcp",
"args": []
}
}
}
example prompts
- play the music sequence C D E
- play the first bar of fur elise
- play the famous tune from Mike Oldfield called Tubular Bells
- play the notes of Frere Jacques
- play the C# chord
To help your LLM understand the Melrōse language better, you can use this context.
Contributions
Fixes, suggestions, documentation improvements are all welcome. Fork this project and submit small Pull requests. Discuss larger ones in the Issues list. You can also sponsor Melrōse via Github Sponsors.
Software is licensed under MIT. © 2025 ernestmicklei.com
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.