MuseScore MCP Server
Servidor MCP de MuseScore
Un servidor del Protocolo de Contexto de Modelo (MCP) que proporciona control programático sobre MuseScore a través de un sistema de complementos basado en WebSocket. Esto permite a los asistentes de IA como Claude componer música, añadir letras, navegar por partituras y controlar MuseScore directamente.

Requisitos previos
MuseScore 3.x o 4.x
Python 3.8+
Claude Desktop o un cliente MCP compatible
Related MCP server: Ableton Copilot MCP
Configuración
1. Instalar el complemento de MuseScore
Primero, guarda el código del complemento QML en tu directorio de complementos de MuseScore:
macOS: ~/Documents/MuseScore4/Plugins/musescore-mcp-websocket.qml
Windows: %USERPROFILE%\Documents\MuseScore4\Plugins\musescore-mcp-websocket.qml
Linux: ~/Documents/MuseScore4/Plugins/musescore-mcp-websocket.qml
2. Habilitar el complemento en MuseScore
Abre MuseScore
Ve a Plugins → Gestor de plugins
Busca "MuseScore API Server" y marca la casilla para habilitarlo
Haz clic en OK
3. Configurar el entorno de Python
git clone <your-repo>
cd mcp-agents-demo
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install fastmcp websockets4. Configurar Claude Desktop
Añade esto a tu archivo de configuración de Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"musescore": {
"command": "/path/to/your/project/.venv/bin/python",
"args": [
"/path/to/your/project/server.py"
]
}
}
}Nota: Actualiza las rutas para que coincidan con la ubicación real de tu proyecto.
Ejecución del sistema
Orden de operaciones
Inicia MuseScore primero con una partitura abierta
Ejecuta el complemento de MuseScore: Ve a Plugins → MuseScore API Server
Deberías ver la salida de la consola:
"Starting MuseScore API Server on port 8765"
Luego inicia el servidor MCP de Python o reinicia Claude Desktop
[insertar captura de pantalla de diferentes funcionalidades, armonización, escritura de melodías, como GIFs con zoom]
Desarrollo y pruebas
Para el desarrollo, utiliza las herramientas de desarrollo de MCP:
# Install MCP dev tools
pip install mcp
# Test your server
mcp dev server.py
# Check connection status
mcp dev server.py --inspectVer la salida de la consola
Para ver la salida de la consola del complemento de MuseScore, ejecuta MuseScore desde la terminal:
macOS:
/Applications/MuseScore\ 4.app/Contents/MacOS/mscoreWindows:
cd "C:\Program Files\MuseScore 4\bin"
MuseScore.exeLinux:
musescore4Características
Este servidor MCP proporciona un control integral de MuseScore.
🌟 NUEVO en esta bifurcación: ¡Polifonía multipista automática e impecable y mapeo de diseño temporal a LilyPond!
Navegación y control del cursor
get_cursor_info()- Obtiene la posición actual del cursor y la información de seleccióngo_to_measure(measure)- Navega a un compás específicogo_to_beginning_of_score()/go_to_final_measure()- Navega al inicio/finalnext_element()/prev_element()- Mueve el cursor elemento por elementonext_staff()/prev_staff()- Mueve entre pentagramasselect_current_measure()- Selecciona todo el compás actualselect_custom_range(start_tick, end_tick, start_staff, end_staff)- Herramienta de corte para extraer frases que abarcan varios compases y pentagramas
Integración de polifonía y LilyPond
Relleno de ritmo temporal: Las voces con espacios o silencios reciben automáticamente secuencias de espaciado de LilyPond (
s4.) para mantener su lugar matemático con precisión.Renderizado de voz concurrente: Matrices completas de 4 voces (
\voiceOne,\voiceTwo, etc.) estructuradas correctamente y fragmentadas por pentagrama para un procesamiento avanzado por parte del Agente.
Creación de notas y silencios
add_note(pitch, duration, advance_cursor_after_action)- Añade notas con tono MIDIadd_rest(duration, advance_cursor_after_action)- Añade silenciosadd_tuplet(duration, ratio, advance_cursor_after_action)- Añade tresillos (u otros grupos de valoración especial)
Gestión de compases
insert_measure()- Inserta un compás en la posición actualappend_measure(count)- Añade compases al final de la partituradelete_selection(measure)- Elimina la selección actual o un compás específico
Letras y texto
add_lyrics_to_current_note(text)- Añade letras a la nota actualadd_lyrics(lyrics_list)- Añade letras por lotes a varias notasset_title(title)- Establece el título de la partitura
Información de la partitura
get_score()- Obtiene el análisis y la estructura completa de la partituraping_musescore()- Prueba la conexión con MuseScoreconnect_to_musescore()- Establece la conexión WebSocket
Utilidades
undo()- Deshace la última acciónset_time_signature(numerator, denominator)- Cambia el compásprocessSequence(sequence)- Ejecuta múltiples comandos por lotes
Música de muestra
Consulta la carpeta /examples para ver archivos de MuseScore de muestra que demuestran varios estilos musicales:
Asian Instrumental - Pieza instrumental tradicional de inspiración asiática
String Quartet - Arreglo clásico para cuarteto de cuerda
Cada ejemplo incluye:
.mscz- Archivo de MuseScore (editable).pdf- Partitura.mp3- Vista previa de audio
Ejemplos de uso
Crear una melodía simple
# Set up the score
await set_title("My First Song")
await go_to_beginning_of_score()
# Add notes (MIDI pitch: 60=C, 62=D, 64=E, etc.)
await add_note(60, {"numerator": 1, "denominator": 4}, True) # Quarter note C
await add_note(64, {"numerator": 1, "denominator": 4}, True) # Quarter note E
await add_note(67, {"numerator": 1, "denominator": 4}, True) # Quarter note G
await add_note(72, {"numerator": 1, "denominator": 2}, True) # Half note C
# Add lyrics
await go_to_beginning_of_score()
await add_lyrics_to_current_note("Do")
await next_element()
await add_lyrics_to_current_note("Mi")
await next_element()
await add_lyrics_to_current_note("Sol")
await next_element()
await add_lyrics_to_current_note("Do")Operaciones por lotes
# Add multiple lyrics at once
await add_lyrics(["Twin-", "kle", "twin-", "kle", "lit-", "tle", "star"])
# Use sequence processing for complex operations
sequence = [
{"action": "goToBeginningOfScore", "params": {}},
{"action": "addNote", "params": {"pitch": 60, "duration": {"numerator": 1, "denominator": 4}, "advanceCursorAfterAction": True}},
{"action": "addNote", "params": {"pitch": 64, "duration": {"numerator": 1, "denominator": 4}, "advanceCursorAfterAction": True}},
{"action": "addRest", "params": {"duration": {"numerator": 1, "denominator": 4}, "advanceCursorAfterAction": True}}
]
await processSequence(sequence)Historial de estrellas
Solución de problemas
Problemas de conexión
"Not connected to MuseScore":
Asegúrate de que MuseScore se esté ejecutando con una partitura abierta
Ejecuta el complemento de MuseScore (Plugins → MuseScore API Server)
Comprueba que el puerto 8765 no esté bloqueado por el firewall
Problemas con el complemento
El complemento no aparece: Comprueba que el archivo
.qmlesté en el directorio de complementos correctoEl complemento no se habilita: Reinicia MuseScore después de colocar el archivo del complemento
Sin salida de consola: Ejecuta MuseScore desde la terminal para ver los mensajes de depuración
Problemas con el servidor de Python
"No server object found": El objeto del servidor debe llamarse
mcp,serveroappa nivel de móduloErrores de WebSocket: Asegúrate de que el complemento de MuseScore se esté ejecutando antes de iniciar el servidor de Python
Tiempo de espera de conexión: El complemento de MuseScore debe estar ejecutándose activamente, no solo habilitado
Limitaciones de la API
Letras: Solo se admite la primera estrofa en la API del complemento de MuseScore 3.x
Configuración del título: Utiliza múltiples métodos de respaldo debido a las limitaciones de acceso a los marcos
Persistencia de la selección: Algunas operaciones pueden afectar a la selección actual
Estructura de archivos
mcp-agents-demo/
├── .venv/
├── server.py # Python MCP server entry point
├── musescore-mcp-websocket.qml # MuseScore plugin
├── requirements.txt
├── README.md
└── src/ # Source code modules
├── __init__.py
├── client/ # WebSocket client functionality
│ ├── __init__.py
│ └── websocket_client.py
├── tools/ # MCP tool implementations
│ ├── __init__.py
│ ├── connection.py # Connection management tools
│ ├── navigation.py # Score navigation tools
│ ├── notes_measures.py # Note and measure manipulation
│ ├── sequences.py # Batch operation tools
│ ├── staff_instruments.py # Staff and instrument tools
│ └── time_tempo.py # Timing and tempo tools
└── types/ # Type definitions
├── __init__.py
└── action_types.py # WebSocket action type definitionsReferencia de tono MIDI
Valores de tono MIDI comunes como referencia:
Do central: 60
Escala de Do Mayor: 60, 62, 64, 65, 67, 69, 71, 72
Cromática: Do=60, Do#=61, Re=62, Re#=63, Mi=64, Fa=65, Fa#=66, Sol=67, Sol#=68, La=69, La#=70, Si=71
Referencia de duración
Formato de duración: {"numerator": int, "denominator": int}
Redonda:
{"numerator": 1, "denominator": 1}Blanca:
{"numerator": 1, "denominator": 2}Negra:
{"numerator": 1, "denominator": 4}Corchea:
{"numerator": 1, "denominator": 8}Negra con puntillo:
{"numerator": 3, "denominator": 8}
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseDqualityDmaintenanceA Model Context Protocol server that allows AI assistants like Claude and Cursor to create music and control Sonic Pi programmatically through OSC messages.23915MIT
- AlicenseCqualityBmaintenanceA Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.237992MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables AI assistants like Claude to generate lyrics, songs, and background music through Mureka's APIs.109MIT
- AlicenseBqualityBmaintenanceA Model Context Protocol server that enables AI agents to create fully mixed and mastered tracks in REAPER DAW, supporting project management, MIDI composition, audio recording, and mixing automation.58124MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
A Model Context Protocol server for Wix AI tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ghchen99/mcp-musescore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server