Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

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

This server publishes no instructions, or was last inspected before Glama recorded them.

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
analyze_featuresC

Describe a piece as sixteen numbers per bar -- density, register, tension, syncopation, dynamics and the rest -- so a model can perceive what is written.

apply_directivesA

Apply a bandleader's directive JSON to a piece or an ensemble session and return the result as data: the directives as they were read, what the arrangement was before and after, and the sixteen features per bar of each. Use conduct_score instead when you want the timing report in prose.

compile_scoreA

Compile notation to MIDI and audio, returning the arrangement summary and any diagnostics. Pass either a path or inline content.

conduct_scoreA

Apply a bandleader's directive JSON to a piece and report what it did to the ensemble's timing: how the arrivals moved together and how far each player's hands moved to keep them there.

directive_referenceA

Read the conductor's directive vocabulary -- the JSON a bandleader sends, which actions the timing layer acts on, and what the windows and targets mean. Call this before writing directives for the first time in a session.

ensemble_joinA

Claim one voice of a session. A voice has one owner at a time, so claiming is how agents avoid choosing the same part. Returns everything needed to start writing.

ensemble_leaveB

Release a voice you hold so another agent can take it.

ensemble_logA

Read the session's change log, oldest first. This is how a joining agent finds out what has already happened.

ensemble_openA

Open a shared session several agents can write to, or reopen one that exists. Sets the key, tempo, metre and form every part is written against.

ensemble_readA

Read a session in one call: key, tempo, metre, form, which voices exist and who holds them, what every voice plays in the bars you are about to write, your own part, the version to write against, and what has changed recently.

ensemble_renderC

Merge the parts and compile the session to MIDI, and optionally audio.

ensemble_reportA

Report what a listener on the stage actually hears: each voice's distance, speech time, propagation delay and the moment its player has to act, plus the spread at the chosen listener and at every other one.

ensemble_statusA

The short view of a session: version, voices, who holds what, bar count and whether the merged score still compiles. Omit the name to list sessions.

ensemble_write_partA

Write your voice's part. The notation is parsed and checked against the session header before anything reaches disk. Pass the base_version you read; if the voice has moved on the write is refused and you are given the current part to rebase onto.

list_filesB

List files in the working directory.

notation_referenceA

Read the TapScript notation reference. Call this before writing notation for the first time in a session.

probe_hostA

Report what this machine can do: platform, optional libraries, soundfonts, MIDI ports, audio playback, network. Use it before choosing how to render or connect.

read_fileB

Read a text file from the working directory or the project.

read_libraryB

Read one file from the bundled notation library, by name or title.

record_decisionB

Append a line to the build journal, recording a decision and why it was made.

search_libraryA

Search the bundled notation library for reference material by title, key or style.

speech_profilesA

List the instrument speech profiles a [Stage] block can name, with how long each takes to sound and how far into the attack the ear places it.

stage_referenceA

Read how to write a [Stage] block: positions, listeners, speech profiles and feel. Call this before writing arrival-centric timing for the first time in a session.

transpose_scoreA

Transpose a notation file to another key, writing the result next to it.

verify_specsA

Run the project's specs and report what passes and what fails. Use this after making a change to check whether it worked.

write_fileA

Write a text file into the working directory, creating parent directories.

write_scoreA

Write TapScript notation to a .tap file. The notation is parsed first and the result reports any problems, so use this rather than write_file for music.

Prompts

Interactive templates invoked by user choice

NameDescription
composerWrite and revise notation. Reads the reference, writes, compiles, reports.
builderAdapt this installation to the machine it is on and verify the result.

Resources

Contextual data attached and managed by the client

NameDescription
notation referenceHow to write TapScript notation. Read this before writing any.
host capabilitiesWhat this machine can do: optional libraries, soundfonts, MIDI ports, audio playback.
spec: mcp.serverAny MCP client can drive the system, and several can drive one score at once

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/SuperInstance/tapscript-mcp'

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