MuseScore

v1.0.0Developer Toolsstable

A Model Context Protocol server that provides programmatic control over MuseScore through a WebSocket-based plugin system, allowing AI assistants to compose music, add lyrics, navigate scores, and control MuseScore directly.

fastmcpmcp-servermusic
Share:
48
Stars
0
Downloads
0
Weekly
0/5

What is MuseScore?

MuseScore is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to model context protocol server that provides programmatic control over musescore through a websocket-based plugin system, allowing ai assistants to compose music, add lyrics, navigate scores, and contr...

A Model Context Protocol server that provides programmatic control over MuseScore through a WebSocket-based plugin system, allowing AI assistants to compose music, add lyrics, navigate scores, and control MuseScore directly.

This server falls under the Developer Tools category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • A Model Context Protocol server that provides programmatic c

Use Cases

Compose music and add lyrics with AI assistance
Control MuseScore directly and navigate scores programmatically
ghchen99

Maintainer

LicenseMIT License
Languageqml
Versionv1.0.0
UpdatedMay 17, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx musescore-mcp-server

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use MuseScore

The MuseScore MCP Server enables AI assistants to compose, edit, and navigate music scores in MuseScore 4 through a WebSocket-based plugin system. It exposes tools for adding notes and rests, managing lyrics, setting time signatures, controlling score navigation, and executing batch sequences of musical operations — all driven by natural language through Claude or other MCP clients. Composers, music educators, and developers who want to use AI to assist with music notation tasks without manual score editing will find this server a powerful bridge between conversational AI and professional notation software.

Prerequisites

  • MuseScore 4 installed on your machine (https://musescore.org)
  • Python 3.9+ with pip available
  • fastmcp and websockets Python packages installed
  • An MCP-compatible client such as Claude Desktop
  • A MuseScore QML plugin installed at ~/Documents/MuseScore4/Plugins/musescore-mcp-websocket.qml
1

Clone the repository and set up Python environment

Clone the mcp-musescore repository and create a Python virtual environment, then install the required dependencies.

git clone https://github.com/ghchen99/mcp-musescore.git
cd mcp-musescore
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install fastmcp websockets
2

Install the MuseScore WebSocket plugin

Copy the QML plugin file to your MuseScore plugins directory so MuseScore can expose a WebSocket interface for the MCP server to connect to.

# macOS/Linux
cp musescore-mcp-websocket.qml ~/Documents/MuseScore4/Plugins/

# Windows
copy musescore-mcp-websocket.qml %USERPROFILE%\Documents\MuseScore4\Plugins\
3

Enable the plugin in MuseScore

Open MuseScore 4, go to Plugins > Manage Plugins, find 'MuseScore MCP WebSocket' in the list, and enable it. Then start it via Plugins > MuseScore API Server each session.

4

Configure Claude Desktop to run the Python MCP server

Edit your Claude Desktop config to point to the Python virtual environment's interpreter and the server.py script. Use the absolute path to your virtual environment's Python binary.

{
  "mcpServers": {
    "musescore": {
      "command": "/absolute/path/to/mcp-musescore/.venv/bin/python",
      "args": ["/absolute/path/to/mcp-musescore/server.py"]
    }
  }
}
5

Launch in the correct order

Always start components in this order: (1) Open MuseScore 4 with a score loaded, (2) Activate the plugin via Plugins > MuseScore API Server, (3) Restart Claude Desktop to load the MCP server. The server connects to MuseScore over WebSocket on localhost.

MuseScore Examples

Client configuration

Claude Desktop configuration for the MuseScore MCP server using the virtual environment Python interpreter.

{
  "mcpServers": {
    "musescore": {
      "command": "/Users/yourname/mcp-musescore/.venv/bin/python",
      "args": ["/Users/yourname/mcp-musescore/server.py"]
    }
  }
}

Prompts to try

Example prompts for composing music, adding lyrics, navigating scores, and using batch sequencing.

- "Set the title of the current score to 'Moonlight Sonata Sketch'"
- "Go to the beginning of the score and add a C4 quarter note followed by E4 and G4"
- "Add the lyrics 'Twin-kle twin-kle lit-tle star' to the notes starting at measure 1"
- "Insert a new measure after measure 4 and add a whole rest"
- "Set the time signature to 3/4 at the current position"
- "Show me the current cursor position and what note is selected"

Troubleshooting MuseScore

WebSocket connection refused — MCP server cannot connect to MuseScore

Make sure MuseScore is open with a score loaded AND the plugin has been activated via Plugins > MuseScore API Server before starting Claude Desktop. The plugin must be running first for the WebSocket server on localhost to be available.

Plugin does not appear in MuseScore's Plugins menu

Verify the .qml file is in the correct plugins directory: ~/Documents/MuseScore4/Plugins/ on macOS/Linux or %USERPROFILE%\Documents\MuseScore4\Plugins\ on Windows. Restart MuseScore after copying the file. If the plugin still doesn't appear, go to Plugins > Manage Plugins and check for any error messages.

Notes are added but at the wrong pitch or duration

MIDI pitch numbers are used for note input: middle C (C4) = 60, D4 = 62, E4 = 64, G4 = 67. Duration is specified as a fraction object with numerator and denominator (e.g. quarter note = {numerator: 1, denominator: 4}). Verify your prompt specifies the exact pitch and duration you intend.

Frequently Asked Questions about MuseScore

What is MuseScore?

MuseScore is a Model Context Protocol (MCP) server that model context protocol server that provides programmatic control over musescore through a websocket-based plugin system, allowing ai assistants to compose music, add lyrics, navigate scores, and control musescore directly. It connects AI assistants to external tools and data sources through a standardized interface.

How do I install MuseScore?

Follow the installation instructions on the MuseScore GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with MuseScore?

MuseScore works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is MuseScore free to use?

Yes, MuseScore is open source and available under the MIT License license. You can use it freely in both personal and commercial projects.

Browse More Developer Tools MCP Servers

Explore all developer tools servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "musescore-mcp-server": { "command": "npx", "args": ["-y", "musescore-mcp-server"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use MuseScore?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides