SuperCollider MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SuperCollider MCP Serverplay a soft atmospheric pad for 3 seconds"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SuperCollider MCP Server
A Model Context Protocol (MCP) server for controlling SuperCollider audio synthesis. This server enables AI assistants like Claude to generate and control real-time audio synthesis through natural language descriptions.
Features
Natural Language Sound Synthesis: Describe sounds in plain English and have them synthesized in real-time
10 Built-in Synth Types: sine, pluck, bell, bass, pad, kick, snare, hihat, atmosphere, sweep
Server Lifecycle Management: Boot, quit, and monitor SuperCollider server status
Pattern Sequencing: Create rhythmic patterns and melodic sequences
Audio Recording: Record synthesis output to files
Raw Code Execution: Execute custom SuperCollider code for advanced control
TypeScript & Type-Safe: Fully typed with Zod schema validation
Related MCP server: SuperCollider MCP Server
Prerequisites
Node.js 18+
SuperCollider installed locally (download here)
Installing SuperCollider
macOS:
Download from https://supercollider.github.io/downloads
Drag
SuperCollider.appto/Applications/The MCP server will auto-detect it
Linux (Ubuntu/Debian):
sudo apt-get install supercolliderLinux (Arch):
sudo pacman -S supercolliderWindows:
Download installer from https://supercollider.github.io/downloads
Run the installer
The MCP server will auto-detect it
Custom Installation Path
If SuperCollider is installed in a non-standard location, set the environment variable:
export SCLANG_PATH="/path/to/sclang"
# Optional: export SCSYNTH_PATH="/path/to/scsynth"Installation
npm install
npm run buildUsage
With Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"supercollider": {
"command": "node",
"args": ["/absolute/path/to/supercollider-mcp/dist/index.js"]
}
}
}Windows: %APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after updating the config.
With MCP Inspector (for testing)
npm run inspectorStandalone Development
npm run devAvailable Tools
Setup & Diagnostics
sc_health_check
Check if SuperCollider is installed and configured correctly. Run this first if you have any issues.
// No parameters required
sc_health_check()Returns:
✅ Success: SuperCollider path and confirmation
❌ Error: Installation instructions for your platform
Core Server Management
sc_boot
Boot the SuperCollider audio server. Must be called before any sound synthesis.
// No parameters required
sc_boot()sc_quit
Quit the SuperCollider server and clean up resources.
sc_status
Get current server status including CPU usage and running synths.
Sound Synthesis
sc_play_synth (Recommended for AI)
Play a synthesized sound based on a natural language description. This is the primary tool for sound generation.
Examples:
"play a bell sound at C4"
"play a low bass tone for 2 seconds"
"play a bright plucked string"
"play a soft atmospheric pad"
"play a short snare"
"play a sweep from 100hz to 2000hz over 3 seconds"
{
"description": "play a bell sound at C5 for 2 seconds"
}The parser understands:
Note names: C4, D#5, Bb3, etc.
Frequencies: 440hz, 880hz, etc.
Descriptive terms: high, low, bright, deep, soft, loud, short, long
Synth types: bell, bass, pad, pluck, kick, snare, hihat, sweep, atmosphere
Spatial terms: left, right (for panning)
sc_play_synth_advanced
Play a specific synth with explicit parameters for precise control.
Available synths: sine, pluck, bell, bass, pad, kick, snare, hihat, atmosphere, sweep
{
"synthName": "bell",
"freq": 523.25,
"amp": 0.4,
"duration": 2,
"pan": 0.5
}Parameters:
freq: Frequency in Hz (default: 440)amp: Amplitude 0-1 (default: 0.3)duration: Duration in seconds (default: 1)pan: Pan position -1 (left) to 1 (right) (default: 0)decay: Decay time for pluck synth (default: 2)cutoff: Filter cutoff frequency for bass/padstartFreq,endFreq: For sweep synth
sc_play_pattern
Play a rhythmic pattern or sequence of notes.
{
"pattern": [
{ "synth": "kick", "delay": 0 },
{ "synth": "snare", "delay": 0.5 },
{ "synth": "hihat", "delay": 0.25, "amp": 0.2 },
{ "synth": "hihat", "delay": 0.25, "amp": 0.2 },
{ "synth": "kick", "delay": 0.5 }
]
}sc_stop_all
Stop all currently playing synths immediately.
Advanced Control
sc_execute
Execute raw SuperCollider code for custom synthesis and advanced control.
{
"code": "{ SinOsc.ar([440, 442], 0, 0.2) }.play;"
}Recording
sc_record_start
Start recording audio output to a file.
{
"filename": "my-composition.wav"
}Files are saved to the recordings/ directory.
sc_record_stop
Stop the current recording.
Example Conversation Flow
User: "I want to hear a dreamy bell sound"
Claude:
Using sc_boot to start SuperCollider server...
Using sc_play_synth with description "bell sound at C5"...The server will synthesize a bell-like tone using FM synthesis.
User: "Now play a bass line"
Claude:
Using sc_play_pattern with:
- Low bass notes
- Rhythmic timingSynth Descriptions
sine
Pure sine wave tone. Clean and simple.
pluck
Plucked string simulation using the Karplus-Strong algorithm. Good for guitar-like sounds.
bell
Bell-like FM synthesis. Bright and metallic.
bass
Filtered sawtooth wave. Deep bass tones.
pad
Warm, detuned sawtooth pad. Good for ambient backgrounds.
kick
Kick drum with frequency envelope.
snare
Snare drum with noise and tone components.
hihat
Hi-hat cymbal using filtered noise.
atmosphere
Atmospheric noise with slow filter modulation. Good for ambient textures.
sweep
Frequency sweep/riser. Goes from startFreq to endFreq over duration.
Architecture
src/
├── index.ts # MCP server implementation
├── supercollider.ts # SuperCollider process management
└── synth-library.ts # Synth definitions and NLP parserKey Components:
SuperColliderServer: Manages sclang process lifecycle and code execution
Synth Library: Pre-defined SynthDefs for common sound types
NLP Parser: Converts natural language to synth parameters
MCP Tools: Exposed functions for AI interaction
Integration with MXF
This server is designed to work with the Model Exchange Framework (MXF) for multi-agent music composition. Future enhancements will include:
Event-driven synthesis triggered by MXF events
Shared memory for musical context (key, tempo, style)
Coordination with MIDI MCP server for external control
Agent collaboration on compositional tasks
Development
Build
npm run buildWatch mode (for development)
npm run devType checking
npx tsc --noEmitTroubleshooting
"sclang not found"
Make sure SuperCollider is installed and sclang is in your PATH:
which sclang # Should show the path to sclangOn macOS, you may need to add to your PATH:
export PATH="/Applications/SuperCollider.app/Contents/MacOS:$PATH"Server won't boot
Check that no other SuperCollider instances are running
Verify SuperCollider works standalone:
sclangCheck server output in the MCP logs
No sound output
Verify your system audio is working
Check SuperCollider audio device settings
Try
Server.default.options.device = "your-device-name";viasc_execute
Future Enhancements
Real-time parameter modulation
MIDI input/output integration
Sample playback and manipulation
Effects processing (reverb, delay, filters)
Visual waveform/spectrum display
Multi-server support (supernova)
Preset management
MXF event bus integration
Collaborative composition with multiple agents
License
MIT
Contributing
Contributions welcome! Please open an issue or PR.
Available Tools
11 toolssc_bootA
Boot the SuperCollider audio server. Must be called before any sound synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool boots the server and that this is required before synthesis, which covers the essential behavior. However, it doesn't mention potential side effects, error conditions, or what 'booting' entails technically (e.g., startup time, resource allocation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place: the first states the core action, the second provides critical usage guidance. There's zero wasted text, and the information is front-loaded with the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema) and the clear sibling context, the description is nearly complete. It explains what the tool does and when to use it. The main gap is lack of information about what happens after booting completes or potential failure modes, but for a zero-parameter initialization tool, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, maintaining focus on the tool's purpose and usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Boot') and target resource ('SuperCollider audio server'), distinguishing it from siblings like sc_status or sc_quit. It explicitly defines the tool's purpose as starting the audio server, which is distinct from execution or playback tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Must be called before any sound synthesis.' This clearly indicates it's a prerequisite for other audio-related operations and distinguishes it from alternatives like sc_execute or sc_play_synth that would fail without the server being booted first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_executeB
Execute raw SuperCollider code. Use this for advanced synthesis control or custom SynthDefs.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The SuperCollider code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the action ('Execute') but lacks details on behavioral traits such as permissions needed, whether it's destructive (e.g., could stop other processes), rate limits, or error handling. This is a significant gap for a tool that executes code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main purpose. However, the second sentence could be more specific (e.g., explaining what 'advanced' means) to earn a higher score, but it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing raw code, no annotations, and no output schema, the description is incomplete. It doesn't cover safety aspects, return values, or error conditions, which are crucial for such a tool. More context is needed to adequately guide an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'code' fully described in the schema. The description adds no additional meaning beyond implying the code is for SuperCollider, which is already clear from the tool name and schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Execute') and resource ('raw SuperCollider code'), specifying it's for 'advanced synthesis control or custom SynthDefs.' However, it doesn't explicitly differentiate from siblings like sc_play_synth or sc_play_synth_advanced, which might also involve code execution but are more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'advanced synthesis control or custom SynthDefs,' suggesting when to use it (for raw/advanced tasks) but doesn't explicitly state when not to use it or name alternatives. For example, it doesn't clarify if sc_play_synth is for simpler tasks, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_health_checkA
Check if SuperCollider is installed and configured correctly. Run this first if you have issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only diagnostic operation but doesn't specify what 'configured correctly' means, what output to expect, or potential error conditions. It adds basic context about when to run it but lacks details on behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that are front-loaded with the core purpose followed by usage guidance. Every word earns its place with no redundancy or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a diagnostic tool with no annotations and no output schema, the description is minimal but adequate. It explains what the tool does and when to use it, but lacks details on what 'correctly' means or what the output format might be, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description doesn't need to explain parameters, and it appropriately focuses on the tool's purpose without unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and resource ('SuperCollider'), and it distinguishes from siblings by focusing on installation/configuration verification rather than execution or control functions like sc_boot or sc_execute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use this tool ('Run this first if you have issues'), which clearly differentiates it from alternatives like sc_status (which might check runtime status) or other siblings that perform actions rather than diagnostic checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_play_patternB
Play a rhythmic pattern or sequence of notes. Useful for creating melodies, beats, or musical phrases.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Array of note events with timing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'plays' patterns, implying an audio output action, but doesn't disclose critical behavioral traits such as whether playback is immediate or scheduled, if it requires audio resources, what happens on errors, or if it affects other playback (e.g., overlapping with sc_play_synth). This leaves significant gaps for an agent to understand how to invoke it correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two sentences that efficiently convey the core purpose and usage context without any wasted words. Every sentence earns its place by adding value, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (playing audio patterns), lack of annotations, and no output schema, the description is minimally adequate but incomplete. It covers the basic purpose and usage context but fails to address behavioral aspects like audio output handling, error conditions, or interaction with sibling tools, which are crucial for correct agent invocation in a musical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'pattern' parameter well-documented as an 'array of note events with timing' and detailed sub-properties. The description adds no additional parameter semantics beyond this, so it meets the baseline of 3 by not detracting from the schema's information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Play') and resource ('rhythmic pattern or sequence of notes'), and distinguishes it from siblings like sc_play_synth by focusing on patterns rather than single notes. However, it doesn't explicitly differentiate from sc_play_synth_advanced, leaving some ambiguity about sibling relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by stating it's 'useful for creating melodies, beats, or musical phrases,' which suggests when to use it. However, it doesn't explicitly state when to choose this tool over alternatives like sc_play_synth or sc_play_synth_advanced, nor does it mention any exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_play_synthA
Play a synthesized sound based on a natural language description. This is the primary tool for sound synthesis. Examples: "play a bell sound at C4", "play a low bass tone for 2 seconds", "play a plucked string sound"
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Natural language description of the sound to create (e.g., "bell at C5", "deep bass", "short snare") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a blocking/non-blocking operation, latency expectations, error conditions, or what happens if invalid descriptions are provided. For a synthesis tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus three examples, all front-loaded and zero waste. The first sentence states the core purpose, the second establishes its primary role, and the examples are tightly focused on demonstrating valid inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with good schema coverage, the description is adequate but has gaps. No output schema exists, so the description should ideally mention what gets returned (e.g., success confirmation, sound ID, error). The behavioral aspects are under-specified given the complexity of sound synthesis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'description' parameter. The description adds value by providing three concrete examples of valid descriptions, but doesn't add syntax or format details beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('play') and resource ('synthesized sound'), and distinguishes it from siblings by specifying it's for 'sound synthesis based on natural language description' rather than pattern playback (sc_play_pattern) or advanced synthesis (sc_play_synth_advanced).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating 'This is the primary tool for sound synthesis' and gives three concrete examples, but doesn't explicitly say when to use alternatives like sc_play_synth_advanced or sc_play_pattern. The examples help illustrate appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_play_synth_advancedB
Play a specific synth with explicit parameters. Available synths: sine, pluck, bell, bass, pad, kick, snare, hihat, atmosphere, sweep
| Name | Required | Description | Default |
|---|---|---|---|
| synthName | Yes | Name of the synth to play | |
| freq | No | Frequency in Hz (default: 440) | |
| amp | No | Amplitude 0-1 (default: 0.3) | |
| duration | No | Duration in seconds (default: 1) | |
| pan | No | Pan position -1 (left) to 1 (right) (default: 0) | |
| decay | No | Decay time for pluck synth (default: 2) | |
| cutoff | No | Filter cutoff frequency for bass/pad (default: varies) | |
| startFreq | No | Start frequency for sweep (default: 100) | |
| endFreq | No | End frequency for sweep (default: 2000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool plays a synth but doesn't disclose behavioral traits like whether it's a read-only operation, if it requires specific audio context, latency considerations, error handling, or what happens when multiple synths are played simultaneously. The description is minimal and lacks crucial behavioral context for an audio synthesis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and provides essential context (available synths). Every word earns its place with zero waste, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an audio synthesis tool with 9 parameters and no annotations or output schema, the description is incomplete. It doesn't explain what 'play' means in practice (e.g., real-time audio output, file generation), performance implications, or error conditions. For a tool with rich parameters and no structured safety hints, more behavioral context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 9 parameters with descriptions and defaults. The description adds no parameter-specific information beyond listing available synth names (which is already in the schema's enum). Baseline is 3 since the schema does all the heavy lifting, and the description doesn't add meaningful semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Play') and resource ('a specific synth'), specifies the available synth types, and distinguishes it from sibling tools like 'sc_play_synth' (likely a simpler version) and 'sc_play_pattern' (for patterns rather than single synth notes). It provides specific, actionable information about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing available synths, suggesting it should be used when explicit control over synth parameters is needed. However, it doesn't explicitly state when to use this tool versus alternatives like 'sc_play_synth' (presumably a simpler version) or 'sc_play_pattern' (for sequences). The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_quitA
Quit the SuperCollider audio server and clean up resources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the main behavioral trait (quitting server and cleaning resources), but lacks details like whether this is reversible, permission requirements, or side effects on ongoing processes. It doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action, no redundant words. Every part earns its place by specifying what is quit and what additional cleanup occurs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a potentially destructive action (quitting a server), the description is minimally adequate. It states what happens but lacks details on return values, error conditions, or dependencies (e.g., requires server to be running).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is fine here, but a baseline of 4 applies since it's a zero-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('quit') and target resource ('the SuperCollider audio server'), plus an additional effect ('clean up resources'). It distinguishes from siblings like sc_boot (start server) and sc_status (check status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you want to stop the server and free resources), but doesn't explicitly state when NOT to use it (e.g., while recording/playing) or name alternatives like sc_stop_all (which stops sounds but not the server).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_record_startB
Start recording audio output to a file
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Output filename (will be saved in recordings/ directory) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Start recording') but omits critical details: whether this requires specific permissions, if it overwrites existing files, how long recording lasts, or what happens on errors. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation with no annotations or output schema), the description is incomplete. It lacks details on behavioral traits (e.g., file handling, recording duration), error conditions, or output expectations, leaving significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'filename' documented in the schema as 'Output filename (will be saved in recordings/ directory)'. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Start recording') and resource ('audio output to a file'), distinguishing it from sibling tools like sc_record_stop (which stops recording) and sc_play_* tools (which play audio). It precisely defines the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for initiating audio recording, but provides no explicit guidance on when to use this tool versus alternatives (e.g., sc_record_stop to stop, or sc_play_* tools for playback). It lacks context about prerequisites or exclusions, leaving usage inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_record_stopB
Stop recording audio
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Stop recording audio' indicates a mutation operation (stopping), but doesn't disclose behavioral traits such as whether this requires specific permissions, what happens to the recorded audio (e.g., saved, discarded), error conditions, or side effects. It's minimal and leaves critical behavior unspecified for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Stop recording audio') with zero waste. It's front-loaded and appropriately sized for a simple tool with no parameters, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with no parameters) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the tool returns, error handling, or behavioral details like whether it stops a specific recording or all recordings. For a mutation tool, this leaves significant gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline is 4 for zero parameters, as there's nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stop recording audio' clearly states the action (stop) and resource (recording audio), making the tool's purpose immediately understandable. It distinguishes from siblings like 'sc_record_start' (start recording) and 'sc_stop_all' (stop all operations). However, it doesn't specify what exactly gets stopped (e.g., a specific recording session vs. all recordings), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when recording needs to be stopped, but provides no explicit guidance on when to use this tool versus alternatives like 'sc_stop_all'. It doesn't mention prerequisites (e.g., requires an active recording session) or exclusions. The context is somewhat clear from the tool name and sibling tools, but lacks explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_statusA
Get the current status of the SuperCollider server (running, CPU usage, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool's purpose (read-only status retrieval) but lacks details on behavioral traits such as response format, latency, error conditions, or whether it requires the server to be running. The description is accurate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get the current status') and provides clarifying examples. There is no wasted verbiage or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally complete. It covers the basic purpose but lacks details on output format or behavioral context that could aid an agent in using it effectively, especially without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description does not add parameter semantics, but this is appropriate given the lack of parameters, warranting a baseline score above 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('current status of the SuperCollider server'), with specific examples of what status includes ('running, CPU usage, etc.'). It distinguishes from siblings like sc_boot (start server), sc_quit (stop server), and sc_health_check (likely more detailed diagnostics) by focusing on real-time operational status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when checking server operational state, but does not explicitly state when to use this tool versus alternatives like sc_health_check or other siblings. No guidance on prerequisites, exclusions, or specific contexts is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_stop_allA
Stop all currently playing synths immediately
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('stop all... immediately') which implies a destructive/mutative operation, but doesn't clarify side effects (e.g., whether audio cuts abruptly, if resources are freed, or if this affects scheduled synths). It lacks details on error conditions or response behavior, leaving gaps for a tool with potential impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core action ('Stop all currently playing synths') and adds a critical modifier ('immediately') efficiently. Every element serves a clear purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple, parameterless action) and lack of annotations/output schema, the description is minimally adequate. It states what the tool does but omits behavioral nuances (e.g., what 'immediately' entails operationally, success/error responses). For a destructive tool with no structured safety hints, it should ideally include more context about effects and limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter-specific information, which is appropriate here. A baseline of 4 is applied as it compensates adequately for the simple parameterless case without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('stop all currently playing synths') and the manner ('immediately'), distinguishing it from siblings like sc_quit (shutdown) or sc_record_stop (recording). It uses a precise verb+resource combination that leaves no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when synths are playing and immediate cessation is needed, but provides no explicit guidance on when to use this versus alternatives like sc_quit or sc_stop (if existed). It doesn't mention prerequisites (e.g., requires synths to be active) or exclusions, leaving usage context partially inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
- First observed
sc_boot - First observed
sc_execute - First observed
sc_health_check - First observed
sc_play_pattern - First observed
sc_play_synth - First observed
sc_play_synth_advanced - First observed
sc_quit - First observed
sc_record_start - First observed
sc_record_stop - First observed
sc_status - First observed
sc_stop_all
TDQS
Most tools have distinct purposes, but sc_play_synth and sc_play_synth_advanced could cause confusion as both handle sound synthesis with overlapping functionality. The descriptions help differentiate them, with sc_play_synth using natural language and sc_play_synth_advanced offering explicit synth selection, but an agent might misselect between them for certain tasks.
All tool names follow a consistent sc_verb_noun pattern with snake_case throughout, such as sc_boot, sc_execute, and sc_play_pattern. This predictability makes it easy for agents to understand and navigate the toolset without naming confusion.
With 11 tools, the count is well-scoped for an audio synthesis server, covering essential operations like booting, playing sounds, recording, and cleanup. Each tool earns its place by addressing a specific aspect of the SuperCollider workflow without being excessive or insufficient.
The toolset provides comprehensive coverage for core audio synthesis tasks, including server management, sound playback, recording, and monitoring. Minor gaps exist, such as the lack of tools for modifying or deleting recorded files or adjusting synth parameters mid-playback, but agents can work around these with existing tools like sc_execute for advanced control.
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 Connectors
AI music and podcast platform for autonomous agents. SoundCloud for AI bots.
Turn any LLM multimodal; generate images, voices, videos, 3D models, music, and more.
MCP server for Producer/Riffusion AI music generation
AI-manageable audio CDN: upload, transcode, normalize, stream & deliver audio, plus grounded docs.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to control synthesizer parameters in real-time by translating natural language commands into OSC messages sent to a JUCE synthesizer application.-
- AlicenseBqualityNot gradedmaintenanceEnables execution of SuperCollider synth code through the Model Context Protocol using supercolliderjs, allowing AI assistants to generate and run audio synthesis programs.213-
- AlicenseAqualityDmaintenanceEnables AI-powered music composition and synthesis by generating Pure Data patches, VCV Rack modules, and MIDI controller mappings through natural language.10154MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to control SuperCollider audio synthesis via OSC, supporting melody, rhythm, and soundscape generation through MCP tools.24MIT
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/BradA1878/mcp-wave'
If you have feedback or need assistance with the MCP directory API, please join our Discord server