← WebMCP Directory

Tool tree

sushidaw.com

Media & PersonalTools verified
Website
Sushi is a browser-based workspace for importing, writing, and arranging music with Tidal Cycles syntax.
Explore capabilities
    open_studio_sessionAction

    Return the current Sushi project, source revision, tracks, diagnostics, and runtime state.

    View tool JSON
    {
      "name": "open_studio_session",
      "kind": "act",
      "impl": "imperative",
      "description": "Return the current Sushi project, source revision, tracks, diagnostics, and runtime state.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    inspect_strudel_stateAction

    Inspect parsed source blocks, recognized source controls, diagnostics, and the derived Strudel runtime.

    View tool JSON
    {
      "name": "inspect_strudel_state",
      "kind": "act",
      "impl": "imperative",
      "description": "Inspect parsed source blocks, recognized source controls, diagnostics, and the derived Strudel runtime.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    read_strudel_sourceAnswer

    Read the editable draft and last-valid Strudel source, including the current revision and diagnostics.

    View tool JSON
    {
      "name": "read_strudel_source",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the editable draft and last-valid Strudel source, including the current revision and diagnostics.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "which": {
            "type": "string",
            "enum": [
              "draft",
              "lastValid"
            ]
          }
        },
        "additionalProperties": false
      }
    }
    list_editor_templatesAnswer

    List the curated Sushi editor templates available to load, including each template’s stable ID, description, tempo, key, and lane count. Source text is omitted; use view_editor_template for a full source preview.

    View tool JSON
    {
      "name": "list_editor_templates",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the curated Sushi editor templates available to load, including each template’s stable ID, description, tempo, key, and lane count. Source text is omitted; use view_editor_template for a full source preview.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "maxLength": 120
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          }
        },
        "additionalProperties": false
      }
    }
    view_editor_templateAction

    Read one curated Sushi editor template’s metadata and complete Strudel source without changing the current project.

    View tool JSON
    {
      "name": "view_editor_template",
      "kind": "act",
      "impl": "imperative",
      "description": "Read one curated Sushi editor template’s metadata and complete Strudel source without changing the current project.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "templateId"
        ],
        "additionalProperties": false
      }
    }
    load_editor_templateAction

    Replace the current source with a curated Sushi editor template and activate it after Strudel validation. Requires the current source revision and an idempotency transaction ID.

    View tool JSON
    {
      "name": "load_editor_template",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the current source with a curated Sushi editor template and activate it after Strudel validation. Requires the current source revision and an idempotency transaction ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "templateId",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    write_strudel_sourceAction

    Replace the source draft, validate it through Strudel, and activate it only when valid. Requires the current revision and an idempotency transaction ID.

    View tool JSON
    {
      "name": "write_strudel_source",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the source draft, validate it through Strudel, and activate it only when valid. Requires the current revision and an idempotency transaction ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "maxLength": 200000
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "source",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    patch_strudel_sourceAction

    Apply exact, non-overlapping UTF-16 text edits to the current source revision, then validate through Strudel.

    View tool JSON
    {
      "name": "patch_strudel_source",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply exact, non-overlapping UTF-16 text edits to the current source revision, then validate through Strudel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "edits": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "start": {
                  "type": "integer",
                  "minimum": 0
                },
                "end": {
                  "type": "integer",
                  "minimum": 0
                },
                "text": {
                  "type": "string"
                }
              },
              "required": [
                "start",
                "end",
                "text"
              ],
              "additionalProperties": false
            }
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "edits",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    set_tempoAction

    Set the source tempo from 0 to 300 BPM. Sushi writes this as setcpm(bpm / quarterNotesPerCycle) and validates it through Strudel.

    View tool JSON
    {
      "name": "set_tempo",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the source tempo from 0 to 300 BPM. Sushi writes this as setcpm(bpm / quarterNotesPerCycle) and validates it through Strudel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "bpm": {
            "type": "number",
            "minimum": 0,
            "maximum": 300
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "bpm",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    set_keyAction

    Update the canonical const key source declaration and validate it through Strudel.

    View tool JSON
    {
      "name": "set_key",
      "kind": "act",
      "impl": "imperative",
      "description": "Update the canonical const key source declaration and validate it through Strudel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "key",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    delete_trackSensitive Action

    Delete a source-defined track by ID, 1-based track number, or exact track name. Requires the current source revision.

    View tool JSON
    {
      "name": "delete_track",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a source-defined track by ID, 1-based track number, or exact track name. Requires the current source revision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "trackNumber": {
            "type": "integer",
            "minimum": 1
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    rename_trackAction

    Rename a source-defined track by ID, 1-based track number, or exact track name. The new name is written into the Sushi source marker.

    View tool JSON
    {
      "name": "rename_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename a source-defined track by ID, 1-based track number, or exact track name. The new name is written into the Sushi source marker.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "trackNumber": {
            "type": "integer",
            "minimum": 1
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "newName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "newName",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    set_track_rangeAction

    Move or resize a track by ID, 1-based track number, or exact track name to exact musical cycle boundaries. Use 0.25 increments for quarter-bar precision; in the default four-quarter-note cycle, cycle 1 is the start of bar 2.

    View tool JSON
    {
      "name": "set_track_range",
      "kind": "act",
      "impl": "imperative",
      "description": "Move or resize a track by ID, 1-based track number, or exact track name to exact musical cycle boundaries. Use 0.25 increments for quarter-bar precision; in the default four-quarter-note cycle, cycle 1 is the start of bar 2.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "trackNumber": {
            "type": "integer",
            "minimum": 1
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "startCycle": {
            "type": "number",
            "minimum": 0
          },
          "endCycle": {
            "type": "number",
            "minimum": 0
          },
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "startCycle",
          "endCycle",
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    extend_timelineAction

    Advance the editable timeline by the next 30-bar page, capped at the 137-bar maximum. This changes project timeline metadata without changing source text.

    View tool JSON
    {
      "name": "extend_timeline",
      "kind": "act",
      "impl": "imperative",
      "description": "Advance the editable timeline by the next 30-bar page, capped at the 137-bar maximum. This changes project timeline metadata without changing source text.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    validate_strudel_sourceAction

    Evaluate candidate Strudel source for diagnostics without changing the project draft or active revision.

    View tool JSON
    {
      "name": "validate_strudel_source",
      "kind": "act",
      "impl": "imperative",
      "description": "Evaluate candidate Strudel source for diagnostics without changing the project draft or active revision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "maxLength": 200000
          }
        },
        "additionalProperties": false
      }
    }
    lookup_strudel_referenceAnswer

    Search Sushi’s versioned local Strudel reference for functions, sounds, templates, and starter patterns.

    View tool JSON
    {
      "name": "lookup_strudel_reference",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search Sushi’s versioned local Strudel reference for functions, sounds, templates, and starter patterns.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "function",
              "sound",
              "template",
              "pattern"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    control_playbackAction

    Start, pause, resume, stop, or seek the Strudel runtime. Seeking uses musical cycle positions.

    View tool JSON
    {
      "name": "control_playback",
      "kind": "act",
      "impl": "imperative",
      "description": "Start, pause, resume, stop, or seek the Strudel runtime. Seeking uses musical cycle positions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "play",
              "pause",
              "resume",
              "stop",
              "seek"
            ]
          },
          "cycle": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": false
      }
    }
    undo_source_editAction

    Undo the latest shared human or agent source edit when the supplied base revision is still current.

    View tool JSON
    {
      "name": "undo_source_edit",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the latest shared human or agent source edit when the supplied base revision is still current.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }
    redo_source_editAction

    Redo the latest shared source edit when the supplied base revision is still current.

    View tool JSON
    {
      "name": "redo_source_edit",
      "kind": "act",
      "impl": "imperative",
      "description": "Redo the latest shared source edit when the supplied base revision is still current.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "baseRevision",
          "transactionId"
        ],
        "additionalProperties": false
      }
    }