tapscript-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| composer | Write and revise notation. Reads the reference, writes, compiles, reports. |
| builder | Adapt this installation to the machine it is on and verify the result. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| notation reference | How to write TapScript notation. Read this before writing any. |
| host capabilities | What this machine can do: optional libraries, soundfonts, MIDI ports, audio playback. |
| spec: mcp.server | Any MCP client can drive the system, and several can drive one score at once |
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/SuperInstance/tapscript-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server