Skip to main content

MCP server for MuseScore integration with LLM clients

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_jordansucher_musescore-0.1.0.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_jordansucher_musescore-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_jordansucher_musescore-0.1.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_jordansucher_musescore-0.1.0.tar.gz
Algorithm Hash digest
SHA256 645d88da2ad3451f2c1131ed89982f12b36e8ac2ad39a9e2d4695dc2c092a710
MD5 9cfeefbe7d24fe8dd936d67043db3307
BLAKE2b-256 5c1f06f813cb9e498ac3ce53b73e4ae4fafb30156884194518fd70083aab848b

See more details on using hashes here.

File details

Details for the file iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_jordansucher_musescore-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 296a0d72e5567fd6b56209433379039105b82bd4de10c32c16321ff798bb8189
MD5 3ff348c200ad69faef0d05e6c5165425
BLAKE2b-256 0d90127d436cbe3f330ff4433297d4befbc6b3cd099832b2bc2bb7de822b7710

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page