Skip to main content

CI PyPI Integration Python 3.14+ License: MIT

mcp-score

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: beta.

Quick demo

"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.

What it does

  • 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-generate skill. In other MCP clients, the generate_score tool runs the script and score_generation_guide supplies 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_score tool exports PDF, PNG, MIDI or audio from a score file through the MuseScore command line; MuseScore must be installed but not running.

Supported applications

Application Versions Status
MuseScore Studio 4.4.2 and later Supported; tested in CI on 4.4, 4.6 and 4.7. 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.

Install

Requires Python 3.14 or later.

pip install mcp-score-server
# or
uv tool install mcp-score-server

Then:

mcp-score install-plugin   # MuseScore plugin, for live editing
mcp-score install-skill    # score-generate skill, for Claude Code

Connect your MCP client

Claude Code:

claude mcp add mcp-score -- mcp-score serve

Claude 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"] }
  }
}

Use it with MuseScore

  1. Open a score in MuseScore Studio 4.4.2 or later.
  2. Plugins > Manage plugins > enable MCP Score Bridge, then Plugins > MCP Score Bridge. Keep its window open.
  3. Ask your assistant to connect to MuseScore.

Details and troubleshooting: MuseScore plugin.

Documentation

Document Description
Getting started Set up mcp-score and generate your first score
Tool reference All MCP tools and CLI commands
MuseScore plugin Plugin installation and WebSocket protocol
Architecture System design and key decisions

Contributing

See CONTRIBUTING.md. Built in spare time, largely with Claude Code, and reviewed by a human before merge.

Author

Thomas Skovlund Hansen — skovlund.dev · thomas@skovlund.dev

License

MIT

Release files for mcp-score-server 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 mcp-score-server 0.1.0
File Size Uploaded
mcp_score_server-0.1.0.tar.gz 200.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-score-server 0.1.0
File Interpreter ABI Platform
mcp_score_server-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 251.8 kB

Release files / mcp_score_server-0.1.0.tar.gz

Download URL mcp_score_server-0.1.0.tar.gz
Size 200.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e2820d6dd7c9555b52e6635d873b342d03d0638cacafb8fe9ec3362e966c3f74
BLAKE2b-256 checksum
How to use checksums
d3f3da4f32d3da855a3243387b609c978d3fb2c57cdd0edc167415f3205b208a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / mcp_score_server-0.1.0-py3-none-any.whl

Download URL mcp_score_server-0.1.0-py3-none-any.whl
Size 51.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05cca71a9718facda54a169745da426382b76915777e1cf973f60fc6eb23b659
BLAKE2b-256 checksum
How to use checksums
a7203430271ba3ecabe97659397810ed1391491ed5048a7f777b7513f3877d8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

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