mcp-score

mcp-score

AI-powered music notation server that lets you create and edit scores using natural language, integrating with MuseScore for live manipulation.

Category
Visit Server

README

CI PyPI Python 3.13+ License: MIT

mcp-score

AI-powered music notation. Describe what you want in plain English -- get a publication-ready score in MuseScore.

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

Claude writes a complete music21 script, executes it, and hands you a MusicXML file ready to open in MuseScore, Dorico, Sibelius, 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."

Claude reads the live score, applies musical intelligence, and writes the arrangement back -- all through natural language.

Installation

pip install mcp-score

Or with uv:

uv tool install mcp-score

Then set up the components you need:

# Install the score generation skill (for Claude Code)
mcp-score install-skill

# Install the MuseScore plugin (for live score manipulation)
mcp-score install-plugin

# Or install both at once
mcp-score install

Components

mcp-score has three components that work together:

MCP server

A Python MCP server with 18 tools for live score manipulation across MuseScore, Dorico, and Sibelius: connect/disconnect, read passages, add chords, set barlines, transpose, and more. Runs via mcp-score serve (or just mcp-score).

Score generation skill

A Claude Code skill that teaches Claude to write music21 Python scripts for score generation. Installed to ~/.claude/skills/score-generate/. This handles the "create a score from scratch" use case -- no MCP round-trips needed.

MuseScore plugin

A QML plugin that runs a WebSocket server inside MuseScore 4, enabling the MCP server to read from and write to the active score in real time. Supports 19 commands including navigation, note input, chord symbols, rehearsal marks, barlines, key/time signatures, tempo, transposition, and undo.

Configuration

Claude Code

Add the MCP server to your project or global settings:

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

The score generation skill is installed separately with mcp-score install-skill and activates automatically when you ask Claude to create a score.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-score": {
      "command": "mcp-score",
      "args": ["serve"]
    }
  }
}

MuseScore plugin setup

After mcp-score install-plugin:

  1. Open MuseScore 4
  2. Go to Plugins > Plugin Manager
  3. Enable MCP Score Bridge
  4. The plugin starts a WebSocket server on port 8765

See MuseScore plugin docs for details.

CLI reference

mcp-score serve            Run the MCP server (default)
mcp-score run <script>     Run a Python script with music21 available
mcp-score install          Install skill and MuseScore plugin
mcp-score install-skill    Install the score-generate skill to ~/.claude/skills/
mcp-score install-plugin   Install the QML plugin to MuseScore's Plugins directory
mcp-score help             Show help

Documentation

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

Contributing

See CONTRIBUTING.md for development setup, code style, and PR process.

Author

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

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured