Skip to main content
Glama
ismail: agent DAW (MCP server)

ismail: agent DAW (MCP server)

Project Set

project_set

Update a music project's tempo, length, reference, objective, artist tag, or listening preference; use it to align drafts to a target recording or capture how the user wants to hear drafts.

Instructions

Change project settings (tempo, length, bar 1, the reference, the objective, the artist tag, how they hear drafts). Changing bpm keeps notes on the same beats (the song gets faster/slower). reference: the recording this song is measured against, to match it or as inspiration; the reply says what to run next. Reach for it when a reference arrives, even partway through a song, as a target or as inspiration. listen_pref: the person's standing choice of how they hear a draft, in their words ("send every draft to my phone", "just give me the file"); render's and sketch's "hear it" block follows it and says so. '' clears it. artist: the artist tag render writes into its mp3s (default 'ismail'); '' writes no artist tag, for a copy whose artist is added later, by hand. reference_stems = a folder of already-separated stems (drums.wav, bass.wav, ...) for the reference. objective: what the piece is for, in the words of whoever set it (objective_by, default 'user'): a sleep set's might be "stay asleep", a cover's "sound like the 1970 record". Earlier objectives are kept as history; project_info shows the current one, and every version made from this one carries them (derived_from).

Input Schema

NameRequiredDescriptionDefault
bpmNo
nameNo
artistNo
projectYes
tail_secNo
objectiveNo
referenceNo
offset_secNo
length_barsNo
listen_prefNo
objective_byNouser
reference_stemsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.4.0
    • addedInput schema / properties / artist
      Added value: +{
      +  "default": null,
      +  "type": "string"
      +}
    • addedInput schema / properties / listen_pref
      Added value: +{
      +  "default": null,
      +  "type": "string"
      +}
  2. First observedv0.3.0

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and mostly succeeds: it discloses that changing bpm keeps notes on the same beats (song speeds up/slows down), that '' clears listen_pref, that '' writes no artist tag, that prior objectives are retained as history and propagated to derived versions via derived_from, and that the reply names the next command to run. What it omits is the mutation surface as a whole — whether unset fields are left untouched, and whether setting a reference can invalidate existing stems or analysis.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence front-loads the summary correctly and most clauses carry genuine edge-case value. However, the body is a dense run of parentheticals and example quotes with irregular line breaks and no per-parameter structure, making it slower to scan than its content warrants.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema means return values need not be described, and the description does cover the trickiest settings (reference, objective, listen_pref, artist). For a 12-parameter mutation tool with zero annotation and zero schema-description coverage, though, leaving the required 'project' argument and three other parameters undocumented is a real gap an agent will hit on first invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 12 parameters, so the description must do all the work; it explains reference, reference_stems, objective, objective_by (default 'user'), listen_pref, artist (default 'ismail') and the bpm semantics well. But 'length' and 'bar 1' are mentioned only in passing without tying them to length_bars/offset_sec, and name, tail_sec, and the required 'project' parameter are never explained at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Change project settings') and enumerates the settings it touches (tempo, length, bar 1, reference, objective, artist tag, listen preference), so an agent can distinguish it from project_info (which reads the current objective) without opening the schema. It never explicitly contrasts with project_new or project_info for the non-objective fields, so the differentiation is only partially complete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real guidance for one parameter set: 'Reach for it when a reference arrives, even partway through a song,' and the note that project_info shows the current objective while every version carries history. Outside of reference/objective, nothing tells the agent when to call project_set versus project_new, or whether partial updates are safe versus requiring a full settings object.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools