MuseScore MCP Server
An MCP server driving an open MuseScore score: the agent writes notes, lyrics and repeats and adds color markup.
- 145 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The server edits the open score and can change or delete bars.
- The plugin opens a local WebSocket port through which MuseScore accepts commands.
Install
- Works in
Manual install
uvx --from "fastmcp>=4,<5" fastmcp install claude-desktop server.py --name musescore --python 3.13 --with-requirements requirements.txtRun it from the cloned repository folder. Before that, copy the `musescore-mcp-websocket.qml` plugin into the MuseScore plugins folder.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server edits the open score and can change or delete bars.
- The plugin opens a local WebSocket port through which MuseScore accepts commands.
This is third-party code. Review the repository files before installing.
What it does
A Python MCP server links an agent to an open MuseScore score through a QML plugin and WebSocket. The agent writes notes into a given bar, adds lyrics, changes tempo, reads the score 16 bars at a time as compact LilyPond and marks it up with colors and boxes. The server has 57 public tools. Separate tools compress a score with repeats: they find identical bars, add repeat barlines, endings and play counts. For drums there is a section map, measure-repeat signs and a chart built from the drum part only. The `musescore-drum-chart` skill runs this whole workflow, for example from a Songsterr tab to a print-ready chart.
Who it is for. Musicians and arrangers who work in MuseScore 4 and edit scores in conversation with Claude.
Good fit when
- Write a C major arpeggio in bar 3 and add lyrics from bar 1.
- A twenty-staff score does not fit the context, so it is read 16 bars at a time.
- A drum chart from a Guitar Pro import is collapsed with repeats and play counts.
- Fills, stops and crashes in the part are highlighted in color before printing.
Not a fit when
- MuseScore is closed or the API server plugin is not running: the server talks to the program over WebSocket.
- Your MuseScore is older than 4.7: the newer features were tested only on 4.7.6.
- The score exists as a single copy with no backup: the tools edit the open document.
Example request
Find the repeated passages in the open score and put them between repeat barlines with play counts.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
It needs MuseScore 4.x, Python 3.13 and an MCP client such as Claude Desktop. Copy the `musescore-mcp-websocket.qml` plugin into the MuseScore plugins folder, enable it in Plugin Manager and start it before each session from the Plugins menu, item MuseScore API Server. The order is MuseScore with an open score and the plugin first, then the server. Newer tools were tested on version 4.7.6. Snap and Flatpak installs may keep plugins in another folder. The drum chart skill is uploaded to Claude Desktop as a separate ZIP archive.
How to disable. Remove the `musescore` entry from your MCP client configuration and disable the MuseScore API Server plugin in Plugin Manager. The `musescore-mcp-websocket.qml` file can be removed from the plugins folder.
FAQ
How do I connect the server to Claude Desktop?
From the repository folder run `uvx --from "fastmcp>=4,<5" fastmcp install claude-desktop server.py --name musescore --python 3.13 --with-requirements requirements.txt`. The command writes the configuration for you.
What must be running before I start?
MuseScore with an open score, then the plugin from the Plugins menu, item MuseScore API Server. The console prints that the server starts on port 8765.
What does the musescore-drum-chart skill do?
It works on a drums-only copy, drafts a section map, waits for your approval and collapses groups of bars into repeats. The skill never saves the original full score.
Can the changes be undone?
Yes. Everything the tools add can be removed in the same plain words: remove the asterisks, clear the crash highlights, reset bar numbering.
Is Claude Desktop required?
No, any MCP client works. The README treats Claude Desktop as the main option, and the skills in `skills/` can also go into Claude Code by copying or linking them into `~/.claude/skills`.
Discussion
No questions or reviews yet.
Related
MCP serversMCP Music Studio: music in chat with an agent
mcp-music-studio
An MCP server where an agent writes ABC sheet music or a Strudel live beat and the player with an editor opens in chat
An MCP server with 181 tools: an agent writes MIDI, mixes and masters tracks in REAPER without sending the project to the cloud.
A Spotify MCP server: the agent searches music, controls playback, queue and volume, and builds and edits playlists and the library
A skill that turns a song recording into a five-piece school band arrangement: MIDI, PDF and an editable MuseScore file
MCP server for REAPER: an agent creates projects, tracks and MIDI, adds effects, mixes, masters and renders a track
An MCP server for Ableton Live: the agent creates tracks, places clips and builds arrangements straight in the open project
README in short
The README shows what the server does: write and edit notes, read large scores, compress them with repeats, build drum charts and mark them up with color. It then walks through a Songsterr to PDF example and links the documentation.