Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MSCORE_PATHNoPath to MuseScore executable if not in standard location

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_musescore_pathA

Return the detected MuseScore executable path on this machine.

convert_scoreA

Convert a score file to another format.

Args: score_b64: Base64-encoded content of the input file. input_suffix: Extension of the input file without dot, e.g. "mscz". output_format: Target format — pdf | musicxml | mid | mp3 | wav | flac | ogg | png | svg.

Returns: PNG (multi-page): {"format": "png", "pages": N, "data": [b64, ...]} Text formats (musicxml, svg): {"format": str, "data": str} Binary formats: {"format": str, "data": b64}

batch_convertA

Convert multiple score files in a single MuseScore process using -j.

Each job dict must have:

  • in_b64 (str): base64-encoded input file

  • in_suffix (str): input extension, e.g. "mscz"

  • out_format (str): output format, e.g. "pdf"

Returns results in the same order as jobs.

export_partsA

Export each instrument part from a score as a separate file.

First converts to MusicXML to discover part names and count, then uses MuseScore's JSON job format to export each part by index.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". output_format: Format for each part output (pdf, musicxml, png, etc.).

Returns: List of {"part_index": int, "part_name": str, "format": str, "data": ...}.

export_png_pagesA

Export each page of a score as a PNG image.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". dpi: Output resolution in dots per inch (1–2400, default 150). trim: If True, trim whitespace borders (0 px margin).

Returns: List of base64-encoded PNG strings, one per page, in order.

transpose_by_keyA

Transpose a score to a target key using the MuseScore CLI.

Requires MuseScore 3.3+ with --score-transpose support.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". target_key: Target major key — C G D A E B F# C# F Bb Eb Ab Db Gb Cb. direction: "up", "down", or "closest" (default).

Returns: Base64-encoded mscz of the transposed score.

transpose_by_intervalA

Transpose a score by a fixed number of semitones via the MuseScore CLI.

Requires MuseScore 3.3+ with --score-transpose support.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". semitones: Number of semitones to transpose (1–24). direction: "up" or "down".

Returns: Base64-encoded mscz of the transposed score.

transpose_for_instrumentA

Adjust the transposition offset for a transposing instrument part.

Modifies the MusicXML element — useful for converting between transposing instruments (e.g. Bb clarinet ↔ concert pitch, alto sax → tenor sax).

Pass either instrument (shorthand) or explicit chromatic + diatonic. Known instruments: concert, bb_clarinet, bb_trumpet, bb_soprano_sax, bb_tenor_sax, eb_alto_sax, eb_baritone_sax, f_horn, a_clarinet.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". instrument: Instrument shorthand name (optional). chromatic: Semitone offset written→sounding (optional). diatonic: Diatonic step offset written→sounding (optional). part_index: Which part to affect (0-based). None = all parts.

Returns: Modified MusicXML as a UTF-8 string.

change_tempoB

Change the tempo by modifying MusicXML and elements.

Replaces all existing tempo markings in the score.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". bpm: New tempo in beats per minute (1–400). beat_unit: Beat unit for the metronome marking: quarter, half, eighth, whole.

Returns: Modified MusicXML as a UTF-8 string.

change_time_signatureA

Change the time signature by modifying MusicXML elements.

Note: only the time signature element is changed — notes and beaming are not automatically adjusted.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". beats: Beats per measure (e.g. 3 for 3/4). beat_type: Note value of one beat (1, 2, 4, 8, 16, or 32).

Returns: Modified MusicXML as a UTF-8 string.

get_score_infoA

Return basic metadata and structural info about a score.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz".

Returns: Dict with title, composer, initial key, time signature, tempo, part names, and measure count.

get_key_signatureA

Return all key signature changes in the score with their measure positions.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz".

Returns: List of {"measure": int, "key": str, "mode": str, "fifths": int}, ordered by measure number.

list_instrumentsA

Return instrument/part info including transposition and pitch range.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz".

Returns: List of dicts with part_index, name, abbreviation, is_transposing, transpose (chromatic/diatonic), range (lowest/highest MIDI note name).

update_metadataA

Update score metadata fields and return the modified MusicXML.

Only fields explicitly provided (non-None) are changed.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". title: Work title. subtitle: Movement title / subtitle. composer: Composer name. lyricist: Lyricist name. copyright: Copyright / rights string.

Returns: Modified MusicXML as a UTF-8 string.

analyze_harmonyA

Analyze chord progressions and tonal center using music21.

Requires pip install music21.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz".

Returns: Dict with detected_key, confidence, and a list of chords [{offset, measure, chord, roman_numeral}, ...].

apply_styleB

Apply a MuseScore style file (.mss) to a score and re-export.

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". style_b64: Base64-encoded .mss style file content.

Returns: Base64-encoded mscz with the style applied.

run_pluginA

Run a MuseScore QML plugin on a score.

The plugin must already be installed in MuseScore's plugin directory. Plugins can perform score manipulations (e.g. note coloring, analysis).

Args: score_b64: Base64-encoded score file. input_suffix: Input extension, e.g. "mscz". plugin_name: Name of the plugin as registered in MuseScore (without .qml).

Returns: Base64-encoded mscz after plugin execution.

create_from_musicxmlA

Convert a MusicXML string into a MuseScore .mscz file.

Useful for creating MuseScore files from externally generated MusicXML.

Args: musicxml: MusicXML content as a UTF-8 string.

Returns: Base64-encoded mscz file.

midi_to_scoreA

Convert a MIDI file to a MuseScore .mscz file.

Args: midi_b64: Base64-encoded MIDI (.mid) file content. quantization: Quantization resolution as a note value denominator (4=quarter, 8=eighth, 16=sixteenth, 32=thirty-second). Default is "16". midi_import_options_b64: Optional base64-encoded MIDI import options JSON file (MuseScore's -M flag format).

Returns: Base64-encoded mscz file.

watch_folderA

Watch a folder for new .mscz files and auto-convert them.

Monitors the folder for up to duration_seconds, converting any new .mscz files that appear into the requested output formats.

Args: folder_path: Absolute path to the folder to watch. output_formats: List of output formats, e.g. ["pdf", "musicxml"]. output_folder: Where to write converted files. Defaults to folder_path. duration_seconds: How long to watch (max 300s).

Returns: {"converted": [{"source": str, "outputs": [str, ...]}, ...], "errors": [{"source": str, "error": str}, ...]}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/strongbeen04/MUSESCORE-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server