polynodes-osc-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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| polynodes_play_stopA | Start or stop PolyNodes playback. Args: params: state=1.0 to play, state=0.0 to stop. Returns: JSON confirmation of the sent OSC message. |
| polynodes_preset_slotB | Select a preset slot (1-10) on PolyNodes. Args: params: slot number 1-10. Returns: JSON confirmation. |
| polynodes_set_gainB | Set gain for a macro/meso/micro layer (-80 to 20 dB). Args: params: level ('macro','meso','micro') and value in dB. Returns: JSON confirmation. |
| polynodes_set_dry_wetB | Set the dry/wet balance (0.0=dry original, 1.0=wet synthesis). Args: params: value 0.0-1.0. Returns: JSON confirmation. |
| polynodes_gain_soloA | Solo a specific layer (macro/meso/micro). Args: params: level and state (1.0=solo, 0.0=unsolo). Returns: JSON confirmation. |
| polynodes_set_envelope_timeC | Set attack/decay envelope time for macro/meso/micro agents (0.01-0.5). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_set_playback_rateB | Set playback rate for agents. Macro: 0.3-10, Meso: 0.3-20, Micro: 0.3-30. Args: params: level and value. Returns: JSON confirmation. |
| polynodes_set_playback_rate_mod_rangeC | Set the stochastic modulation range for playback rate (0.0-0.75). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_granular_switchB | Turn the granulator on or off. Args: params: state 1.0=on, 0.0=off. Returns: JSON confirmation. |
| polynodes_granular_durationC | Set granular chunk duration (10-1000). Args: params: value. Returns: JSON confirmation. |
| polynodes_granular_duration_mod_rangeC | Set granular duration modulation range (0.0-0.75). Args: params: value. Returns: JSON confirmation. |
| polynodes_filter_switchB | Turn bandpass filter on/off for a layer. Args: params: level and state. Returns: JSON confirmation. |
| polynodes_set_filter_freqC | Set bandpass filter center frequency (80-8000 Hz). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_set_filter_mod_rangeB | Set bandpass filter modulation range (0.0-0.75). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_comb_switchB | Turn comb filter on/off for a layer. Args: params: level and state. Returns: JSON confirmation. |
| polynodes_set_comb_delayB | Set comb filter delay. Macro: 10-3000, Meso: 10-1000, Micro: 10-300. Args: params: level and value. Returns: JSON confirmation. |
| polynodes_set_comb_mod_rangeC | Set comb filter modulation range (0.0-0.75). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_blackhole_switchC | Turn the Black Hole DSP interactable on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_blackhole_forceB | Set Black Hole gravitational force per layer (0.0-1.0). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_whitehole_switchB | Turn the White Hole DSP interactable on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_whitehole_forceB | Set White Hole reflection force per layer (0.0-1.0). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_ringmod_switchA | Turn Ring Modulator on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_ringmod_freqC | Set ring modulator center frequency per layer (1.0-3.0). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_crush_switchB | Turn Bitcrusher/Decimater on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_crush_bit_levelC | Set bitcrusher bit depth level (0.0-1.0). Args: params: value. Returns: JSON confirmation. |
| polynodes_crush_rangeC | Set bitcrusher sampling frequency range (0.0-5.0). Args: params: value. Returns: JSON confirmation. |
| polynodes_resonator_switchB | Turn Resonator on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_resonator_freq_distC | Set resonator frequency distribution (1.0-3.0). Args: params: value. Returns: JSON confirmation. |
| polynodes_resonator_balanceB | Set resonator wet/dry balance (0.0-0.5). Args: params: value. Returns: JSON confirmation. |
| polynodes_cuboid_switchA | Turn a cuboid (C1/C2/C3) on or off. Args: cube: 1, 2, or 3. state: 0.0=off, 1.0=on. Returns: JSON confirmation. |
| polynodes_cuboid_return_levelC | Set cuboid FX return level per layer (1.0-80.0). Args: params: level and value. Returns: JSON confirmation. |
| polynodes_isomorph_switchC | Turn IsoMorph modulation on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_isomorph_mod_switchB | Turn on/off a specific isomorphic modulation target (freq/amp/res). Args: param: 'freq', 'amp', or 'res'. state: 0.0 or 1.0. Returns: JSON confirmation. |
| polynodes_isomorph_mod_depthB | Set isomorphic modulation depth for freq/amp/res (0.0-2.0). Args: params: param and value. Returns: JSON confirmation. |
| polynodes_isomorph_bp_centerC | Set isomorphic bandpass center frequency (0-5000). Args: params: value. Returns: JSON confirmation. |
| polynodes_navigation_random_triggerC | Trigger random navigation mode changes. Args: params: state 1.0=on. Returns: JSON confirmation. |
| polynodes_rearrange_triggerC | Trigger Re-Arr mode (rearranges input sample chunks). Args: params: state. Returns: JSON confirmation. |
| polynodes_poly_gates_switchB | Turn Poly Gates on or off (BPM-synced layer gating). Args: params: state. Returns: JSON confirmation. |
| polynodes_tuning_pb_switchC | Turn tuning scale application on PB rate on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_tuning_res_switchC | Turn tuning scale application on resonator filter on or off. Args: params: state. Returns: JSON confirmation. |
| polynodes_camera_zoomC | Zoom the 3D camera (positive=in, negative=out). Args: params: value. Returns: JSON confirmation. |
| polynodes_camera_rotateC | Rotate the 3D camera (value in radians). Args: params: value. Returns: JSON confirmation. |
| polynodes_set_bpmB | Set the sequencer BPM (10-300). Args: params: value. Returns: JSON confirmation. |
| polynodes_list_osc_addressesA | List all available PolyNodes OSC addresses and their parameter ranges. Returns: JSON with all OSC addresses grouped by category. |
| polynodes_send_raw_oscA | Send a raw OSC message to PolyNodes. Use this for any OSC address. Args: address: Full OSC address path. value: Float value. Returns: JSON confirmation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 45 tools
Most tools target distinct parameters (e.g., set_gain vs set_dry_wet), but the 45-tool set includes many similar switch/set tools that could be confused without careful reading. The presence of send_raw_osc overlaps with every specific tool, creating potential ambiguity.
All tools use snake_case with a polynodes_ prefix, but naming patterns mix verb-first (set_gain) and noun-first (granular_switch, gain_solo) conventions. This inconsistency makes it harder to predict tool names.
45 tools is excessive for a single server; many parameters could be consolidated into generic setters or handled via send_raw_osc. The count falls well above the 25+ threshold for 'too many'.
The surface covers a wide range of synthesis parameters and includes list_osc_addresses and send_raw_osc for full control. Missing read/query tools and preset save operations are minor gaps given the raw OSC escape hatch.