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
MCP server

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.
All reasons and checks

ghchen99/mcp-musescore

Install

Manual install

uvx --from "fastmcp>=4,<5" fastmcp install claude-desktop server.py --name musescore --python 3.13 --with-requirements requirements.txt

Run 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 review

Extended 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.

An MCP server with 181 tools: an agent writes MIDI, mixes and masters tracks in REAPER without sending the project to the cloud.

MCP serverExtended access118Repository stars

A Spotify MCP server: the agent searches music, controls playback, queue and volume, and builds and edits playlists and the library

MCP serverBroad access506Repository stars

A skill that turns a song recording into a five-piece school band arrangement: MIDI, PDF and an editable MuseScore file

SkillExtended access237Repository stars

MCP server for REAPER: an agent creates projects, tracks and MIDI, adds effects, mixes, masters and renders a track

MCP serverExtended access185Repository stars

An MCP server for Ableton Live: the agent creates tracks, places clips and builds arrangements straight in the open project

MCP serverExtended access3.3KRepository stars

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.

README badge

Report a problem