
ghchen99/mcp-musescore
Developer toolsA Model Context Protocol (MCP) server that provides programmatic control over MuseScore, via a WebSocket-based plugin system.
Overview
A Model Context Protocol (MCP) server that provides programmatic control over MuseScore, via a WebSocket-based plugin system.
README
MuseScore MCP Server
A Model Context Protocol (MCP) server that provides programmatic control over MuseScore, via a WebSocket-based plugin system. This allows AI assistants like Claude to compose music, add lyrics, navigate and analyse scores, restructure them with repeats, and mark them up with colors and highlights, directly in MuseScore.
What you can do
Ask Claude in plain language; it picks the tools. For example:
- Compose and edit: “Write a C major arpeggio in bar 3”, “Add the lyrics ‘Twin-kle twin-kle’ from bar 1”, “Set the tempo to 90 at bar 17”.
- Read large scores: the score is read 16 bars at a time as compact LilyPond, optionally only some staves, so even a 20-staff score fits.
- Compress a score with repeats: “Find the repeated passages and put them between repeat barlines”. The server finds bars and passages that repeat, adds repeat barlines, 1st/2nd endings and play counts, and removes the duplicate bars.
- Build drum charts: “Map the sections of the drum part” gives a road map (groove bar, exact and near copies, fills, and where the crashes fall). “Turn the copies into repeat signs” writes 1-, 2- or 4-bar measure-repeat signs automatically. “Make a drums-only chart with the groove written once and a 7x count” copies the score, keeps only the drums and collapses each run of identical bars. With the drum-chart skill, “make a drum chart from the open score” runs the whole workflow (see the example use case).
- Keep the song’s bar numbers: “Number the bars as played” makes the displayed numbers count repeated bars, so a compact chart still matches the original song.
- Highlight and color: “Highlight the crash hits”, “Box the dynamics”, “Highlight the repeat signs and time signatures in light blue”, “Color the fill on beats 3-4 of bar 13 green”, “Label bar 6 ‘Groove x7’”, “Add these cues in small grey italics at the start of each section: …”.
- Finish the page: “Tidy the title and call it a drum chart” cleans up the title frame; “Print what changed at the end” adds a summary of the differences from the original after the last bar, so it ends up in the PDF.
- Iterate: everything the tools add can be removed again (“remove the ** marks”, “clear the crash highlights”, “reset the bar numbers”), so you can refine the result step by step.
Example use case: a drum chart from a Songsterr tab
How the drum-chart skill is used day to day, from a song on Songsterr to a printable drum chart.
Once: set up the plugin and the server (Setup), then install the skill in Claude Desktop (Installing a skill).
For each song:
-
Songsterr → Guitar Pro. Open the song on Songsterr and export it as a Guitar Pro file (
.gp,.gp5…). -
Import it in MuseScore with File → Open. Don’t save it: the skill never saves the full score. If MuseScore says the file is corrupted, carry on: the damage is usually in another instrument, which the skill removes.
-
Focus on the drum part. Open the drum part in its own tab (Parts, then the drum kit), or stay on the full score. Either way the skill keeps only the drum staff, after backing up the full score to
~/.mcp-musescore/backups. -
Start the plugin: Plugins → MuseScore API Server.
-
Call the skill. In Claude Desktop, ask “make a drum chart from the open score”.
-
Answer when prompted. Claude proposes a section map (sections, bar ranges, which grooves and phrases collapse into “× N”) and asks, in one message:
- which near copies to merge, and what each merge would drop (e.g. “bar 24 like 26: drops the kick on 5.5”);
- whether to remove the ghost notes;
- where the hi-hat is half-open;
- which cymbal rolls to simplify.
After your OK it works on its own. The first time it saves the chart, MuseScore asks where (an imported score has no file yet): pick a name like
- drums.mscz. -
The chart, in the same MuseScore tab:
- each groove or phrase written once between repeat barlines, with its play count;
- section labels with their bar counts, e.g. “Chorus 1 (2x4)”;
- fills in green, stops in red, crashes, dynamics and time signatures highlighted;
- bar numbers that still match the song;
- a tidy title: song, artist, “Drums”;
- the changes from the original after the last bar, and the song structure on its own page.
To change something, ask in the same chat (e.g. “don’t merge bar 24”, “the hi-hat is half-open in the bridge too”): Claude redoes only that part.
-
Export to PDF: save (Ctrl+S), then File → Export → PDF.
Documentation
| Page | What’s in it |
|---|---|
| Setup and running | Prerequisites, installing the plugin, registering the server with Claude Desktop (with uv or a virtual environment), Ubuntu notes, starting order, updating, sample scores |
| Tool reference | Reading and navigating the score, notes, measures, tempo, instruments, highlighting and coloring, batch operations, the score viewer, version requirements, examples |
| Repeats and drum charts | Compressing a score with repeats, drum-chart tools, measure-repeat signs and how they are written, drum notation, chart examples |
| Agent skills | The bundled skills and how to install them in Claude Desktop or Claude Code |
| Development and testing | Tests, the mock plugin, running the real plugin headless, console output, file structure |
| Troubleshooting | Connection, plugin, server, score-file and skill problems, API limitations |
Star History
Install
This server does not publish a one-line install command.
Open the repository installation guide New to MCP? Start with the mcpskill.org guide →