Skip to main content
Glama

Split or clean up audio with your account

create_free_audio_job

Split stems, isolate vocals, or remove noise or reverb using the same account allowance as the website. Connect a free account with OAuth or an agent key. No paid subscription is required for the free allowance. Returns an upload URL, then use get_free_audio_job.

Input Schema

NameRequiredDescriptionDefault
toolYessplit_stems: vocals and instrumental. split_lead_backing: lead vocal, backing vocals, instrumental, and the instrumental with backing vocals. remove_noise: background noise out of a voice recording. remove_reverb: room echo and reverb out of a voice recording.
fileNameYesThe audio file's name with its extension: WAV, MP3, FLAC, M4A or OGG.
sizeBytesYesThe file's exact size in bytes.
outputFormatNoFormat of the files you get back. Use wav unless the user asks for another.wav
durationSecondsNoThe audio's length in seconds, if you can measure it. NiceVois measures the file itself after upload, so leave this out rather than guess.

Output Schema

NameRequiredDescriptionDefault
idYes
toolYes
errorNo
linksYes
priceNo
stageNo
statusYes
uploadYes
messageNo
outputsYes
fileNameNo
toolNameYes
createdAtNo
websiteUrlYes
durationSecondsNo
pollAfterSecondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedOutput schema / properties / outputs / items / required
      Previous value: -[
      -  "stem",
      -  "name",
      -  "description",
      -  "downloadUrl"
      -]New value: +[
      +  "stem",
      +  "name",
      +  "downloadUrl"
      +]
    • changedOutput schema / properties / upload / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "headers": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "propertyNames": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "method": {
      -        "const": "PUT",
      -        "type": "string"
      -      },
      -      "receivedBytes": {
      -        "maximum": 9007199254740991,
      -        "minimum": -9007199254740991,
      -        "type": "integer"
      -      },
      -      "url": {
      -        "format": "uri",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "method",
      -      "url",
      -      "headers",
      -      "receivedBytes"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "headers": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "method": {
      +        "const": "PUT",
      +        "type": "string"
      +      },
      +      "receivedBytes": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "url": {
      +        "format": "uri",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "method",
      +      "url",
      +      "headers"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "tool",
      -  "toolName",
      -  "status",
      -  "price",
      -  "upload",
      -  "outputs",
      -  "pollAfterSeconds",
      -  "websiteUrl",
      -  "links"
      -]New value: +[
      +  "id",
      +  "tool",
      +  "toolName",
      +  "status",
      +  "upload",
      +  "outputs",
      +  "pollAfterSeconds",
      +  "websiteUrl",
      +  "links"
      +]
  2. Changed1 schema field changed
    • removedOutput schema / properties / price / const
      Removed value: -"free"
  3. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare non-readonly, open-world, non-destructive; the description adds real context: it consumes a shared website allowance, requires OAuth or an agent key, needs no paid subscription, and is a two-step create-then-upload flow returning an upload URL. That disclosure goes materially beyond the annotations. It stops short of saying what the allowance costs per job or what happens when the allowance is exhausted.

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?

Purpose is front-loaded, which is good, but 'using the same account allowance as the website' and 'No paid subscription is required for the free allowance' restate the same free-tier point across two sentences. Tightening would remove a redundant line without losing information.

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

Completeness4/5

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

With an output schema present and full schema descriptions, the description supplies the missing operational layer: authentication route, allowance model, and the follow-up get_free_audio_job call. An agent could call this correctly. Limits on allowance consumption per job and supported size ceilings are the only notable omissions.

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 coverage is 100%, with enum values and format guidance fully documented, so the baseline is 3. The description contributes one useful implication – that no audio bytes are passed, instead an upload URL is returned – which explains why fileName/sizeBytes exist, but adds nothing about the individual parameters.

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?

States a specific action set (split stems, isolate vocals, remove noise/reverb) on a specific resource (audio job) and signals the free-allowance tier that separates it from create_audio_job. It never names that paid sibling, so the differentiation is only implied by 'free account' and 'no paid subscription'.

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?

The description gives a clear next-step ('Returns an upload URL, then use get_free_audio_job'), which is genuine workflow guidance. But it never says when to choose this over create_audio_job, nor any exclusions such as file size or duration limits, so selection between the two creation tools is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources