Music notation for AI assistants. Describe a piece in plain language and get a MusicXML score; with MuseScore open, read and edit the live score by conversation.
Works with any MCP client (Claude Code, Claude Desktop, LM Studio, and others). Status: alpha.
"Create a big band chart: 32-bar AABA form, key of Bb, slow blues at 66 BPM, with rhythm changes and rehearsal marks at each section."
The assistant writes a complete music21 script, runs it, and hands you a MusicXML file ready to open in MuseScore, Dorico, or any notation app.
With the MuseScore plugin running, you can go further:
"Read the melody in bars 9-16 and arrange it as a trombone soli following the chord progression."
The assistant reads the live score, applies musical judgement, and writes the arrangement back, all through conversation.
- Generate scores. The assistant writes a music21 script that exports MusicXML, which opens in MuseScore, Dorico, or any notation app. In Claude Code this is driven by the bundled
score-generateskill. In other MCP clients, thegenerate_scoretool runs the script andscore_generation_guidesupplies the same instructions. - Edit live scores. MCP tools connect to a running MuseScore and read passages, add notes, dynamics and chord symbols, set barlines, keys, time signatures and tempo, append measures, transpose, and undo.
- Render. The
render_scoretool exports PDF, PNG, MIDI, audio or MusicXML from a score file through the MuseScore command line; MuseScore must be installed but not running.
| Application | Versions | Status |
|---|---|---|
| MuseScore Studio | 4.4.2 and later | Supported; CI tests the oldest supported line, a middle release and the newest. Earlier versions lack the plugin WebSocket API. |
| Dorico | 4 and later | Experimental. Undocumented Remote Control API, command-only, not verified against a running instance. |
| Any notation app | MusicXML import | Generated scores open anywhere MusicXML does. |
Requires Python 3.14 or later.
pip install mcp-score-server
# or
uv tool install mcp-score-serverThen:
mcp-score install-plugin # MuseScore plugin, for live editing
mcp-score install-skill # score-generate skill, for Claude CodeClaude Code:
claude mcp add mcp-score -- mcp-score serveClaude Desktop and other clients: run the command mcp-score with the argument serve, for example in claude_desktop_config.json:
{
"mcpServers": {
"mcp-score": { "command": "mcp-score", "args": ["serve"] }
}
}- Open a score in MuseScore Studio 4.4.2 or later.
- Plugins > Manage plugins > enable MCP Score Bridge, then Plugins > MCP Score Bridge. Keep its window open.
- Ask your assistant to connect to MuseScore.
Details and troubleshooting: MuseScore plugin.
| Document | Description |
|---|---|
| Getting started | Set up mcp-score and generate your first score |
| Releases | What changed in each version |
| Tool reference | All MCP tools and CLI commands |
| MuseScore plugin | Plugin installation and WebSocket protocol |
| Architecture | System design and key decisions |
See CONTRIBUTING.md. Built in spare time, largely with Claude Code, and reviewed by a human before merge.
Thomas Skovlund Hansen — skovlund.dev · thomas@skovlund.dev