MuseScore MCP Server
This MCP (Model Context Protocol) server integrates MuseScore with LLM clients like Claude Desktop, enabling basic music composition through natural language.
Brief demo here: https://www.canva.com/design/DAGlHeR706g/4UcXvK23I1axWOfm6lSSxQ/edit
Features
The server allows an MCP-connected LLM to:
- Connect to MuseScore and manipulate an open score
- Add notes and rests
- Select and delete
- Create tuplets
- Undo a change
- Move from staff to staff
Limitations
- Can not understand multiple voices within a staff or navigate between them
Requirements
- Python 3.9+
- MuseScore 3 or 4 installed
- MCP Python SDK
Installation
-
Clone this repository:
git clone https://github.com/yourusername/musescore-mcp-server.git cd musescore-mcp-server -
Install dependencies, either in a venv or globally:
pip install -r requirements.txt -
Install the musescore-mcp-plugin by copying it into your MuseScore plugins dir (on my mac this was ~/Documents/MuseScore4/plugins)
-
Configure your LLM with the MCP server (server.py). If you are using Claude Desktop and a venv, this can be done by creating a claude_desktop_config file like so:
{ "mcpServers": { "musescore": { "command": "bash", "args": [ "-c", "source /path/to/venv/activate && python3 /path/to/server.py" ] } }
Usage
Prepare MuseScore
Open musescore and whatever score you want to use. Then, connect the musescore-mcp-plugin and launch it by selecting it from the plugins menu.
Example Queries
Once connected, you can ask Claude questions like:
- "Help me come up with some possible chords for the melody in my score
- Compose a simple melody and show me 4 ways to harmonize it
- Extend the melody in measures 1-12 with 4 measures that match the style of this piece
Development
If you want to add features to the MuseScore plugin and test them, the testClient.html file in this repo may be a useful development tool - simply extend it to call whatever functions you add.
Metadata
Release files for iflow-mcp_jordansucher-musescore 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_jordansucher_musescore-0.1.0.tar.gz | 3.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.1 kB
Release files / iflow_mcp_jordansucher_musescore-0.1.0.tar.gz
| Download URL | iflow_mcp_jordansucher_musescore-0.1.0.tar.gz |
|---|---|
| Size | 3.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
645d88da2ad3451f2c1131ed89982f12b36e8ac2ad39a9e2d4695dc2c092a710
|
|
BLAKE2b-256 checksum How to use checksums |
5c1f06f813cb9e498ac3ce53b73e4ae4fafb30156884194518fd70083aab848b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
296a0d72e5567fd6b56209433379039105b82bd4de10c32c16321ff798bb8189
|
|
BLAKE2b-256 checksum How to use checksums |
0d90127d436cbe3f330ff4433297d4befbc6b3cd099832b2bc2bb7de822b7710
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|