Skip to main content

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

  1. Clone this repository:

    git clone https://github.com/yourusername/musescore-mcp-server.git
    cd musescore-mcp-server
    
  2. Install dependencies, either in a venv or globally:

    pip install -r requirements.txt
    
  3. Install the musescore-mcp-plugin by copying it into your MuseScore plugins dir (on my mac this was ~/Documents/MuseScore4/plugins)

  4. 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)

Source distribution for iflow-mcp_jordansucher-musescore 0.1.0
File Size Uploaded
iflow_mcp_jordansucher_musescore-0.1.0.tar.gz 3.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_jordansucher-musescore 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page