MuseScore
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.
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
Maintainer
Works with
Installation
Manual Installation
npx musescore-mcp-serverConfiguration
Configuration Details
claude_desktop_config.json
Performance
Response Metrics
Resource Usage
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
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 websocketsInstall 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\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.
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"]
}
}
}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.
MuseScore Alternatives — Similar Developer Tools Servers
Looking for alternatives to MuseScore? Here are other popular developer tools servers you can use with Claude, Cursor, and VS Code.
Ecc
★ 188.2kThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Javaguide
★ 155.8kJava 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Gemini CLI
★ 104.5kA secure MCP server that wraps the Google Gemini CLI, allowing clients to query Gemini models using local OAuth sessions without requiring an API key. It provides tools for model interaction and diagnostics with built-in protection against command in
Awesome MCP Servers
★ 87.3k⭐ Curated list of Model Context Protocol (MCP) servers - tools that extend Claude Desktop, Cursor, Windsurf, and other MCP clients with custom capabilities.
MCP Servers
★ 86.0kModel Context Protocol Servers
CC Switch
★ 77.5kA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Gemini CLI & Hermes Agent. Only official website: ccswitch.io
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.
Set Up MuseScore in Your Editor
Choose your AI client for step-by-step setup instructions.
Quick Config Preview
Add this to your claude_desktop_config.json or .cursor/mcp.json
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.