Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MAINSTAGE_BACKUP_DIRNoBackups of changed files; set to 'off' to disable them.~/Library/Application Support/mainstage-mcp/backups
MAINSTAGE_PLUGIN_DIRSNoWhere list_installed_plugins looks, separated by ':'./Library/Audio/Plug-Ins:~/Library/Audio/Plug-Ins
MAINSTAGE_CONCERTS_DIRNoFolder(s) containing your .concert files, separated by ':'.~/Music/MainStage
MAINSTAGE_LIBRARY_DIRSNoPatch library folder(s), separated by ':'. Defaults to the standard Logic/MainStage library locations.
MAINSTAGE_PLAYBACK_TEMPLATENoA .cst file used as a template for Playback strips. Defaults to auto-detection.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Tools for building Apple MainStage concerts.

Typical workflow when the user names a song:

  1. Work out tempo, time signature and which keyboard sounds the song needs (use your own knowledge or a web search if available).

  2. search_sounds for each sound (try several keywords, e.g. "brass", "analog brass").

  3. create_song_patch with the chosen sounds. Default faders to 0 dB unless the user says otherwise.

  4. Optionally add_playback with an audio file the user points you to (find_audio_files).

Concerts are edited on disk. MainStage must not have the concert open, otherwise it would overwrite the changes. If a tool reports that the concert is open, tell the user to close it and call the tool again (optionally with wait_seconds so it waits for the user). Never invent sound names: only use names returned by search_sounds.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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

Tools

Functions exposed to the LLM to take actions

NameDescription
mainstage_statusB

Is MainStage running and which concert windows are open.

list_concertsB

List the .concert files in the configured concert folder(s).

list_patchesB

Patch list of a concert (in order, sets shown as nested entries).

get_patchB

Details of one patch: tempo, time signature, channel strips with sound, dB, pan, mute, plug-ins.

search_soundsC

Search the installed Logic/MainStage sound library (instrument patches).

find_soundB

Where can I find a sound like this? Searches the sound library, the channel strips used in your concerts, exported patch files and installed plug-in names. German/English instrument names work.

list_sound_categoriesB

Categories of the sound library with the number of sounds in each.

refresh_sound_libraryA

Rescan the sound library (after installing new content).

list_installed_pluginsB

Third-party Audio Unit / VST plug-ins installed on this Mac (Apple's built-in instruments are not listed).

create_song_patchC

Create a new patch for a song with sounds from the library, tempo, time signature and mixer settings.

set_channelC

Change fader (dB), pan (-1…+1) or mute of a channel strip in a patch.

set_patch_settingsC

Change tempo, time signature or transpose of an existing patch.

find_audio_filesB

Find audio files (mp3, wav, aiff, m4a, …) in a folder, e.g. backing tracks for a song.

add_playbackB

Add a Playback channel strip playing the given audio file to a patch.

Uses an existing Playback channel strip (from your concerts or MAINSTAGE_PLAYBACK_TEMPLATE) as template, so output routing and plug-in settings follow your usual setup.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target a distinct resource+action (concerts vs. patches vs. channel strips vs. sounds vs. plug-ins). The one soft overlap is search_sounds vs. find_sound, which both hit the sound library, though the descriptions differentiate exact-name search from broad 'find me something like this' lookup.

Naming Consistency4/5

Nearly all tools follow a snake_case verb_noun pattern (list_patches, get_patch, set_channel, create_song_patch, refresh_sound_library). The only deviation is mainstage_status, which uses a bare noun phrase rather than a verb.

Tool Count5/5

14 tools is well within the well-scoped range for a domain covering concerts, patches, channel strips, sound library, and plug-ins. Each tool maps to a concrete inspection or mutation operation with no obvious filler.

Completeness3/5

Read and update paths are solid (list/get patch, set_patch_settings, set_channel) and creation exists via create_song_patch, but there is no delete/rename/duplicate patch, no patch reordering, and no way to create or open a concert — only list it. These are notable gaps for a full patch lifecycle despite core workflows being covered.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues