NiceVois
Server Details
Free stem, vocal, noise, reverb and format tools. Train RVC voices; convert vocals and whole songs.
- Status
- Healthy
- Uptime
- 100.0% over 73 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 19 tools
Most tools map clearly to distinct resources and lifecycle stages, but the paid/free pairs create_audio_job vs create_free_audio_job and get_audio_job vs get_free_audio_job overlap closely and rely on descriptions to separate them. The training and conversion tools are otherwise well differentiated by stage and purpose.
All tool names use a consistent snake_case verb_noun pattern such as create_audio_job, get_training_job, list_voice_models, and download_voice_conversion_output. There are no mixed conventions or vague standalone verbs.
Nineteen tools is on the heavy side for this domain, especially because the free and paid audio paths duplicate create/get operations that could potentially be parameterized. The remaining training, conversion, account, and requirement tools are mostly justified, making the overall count borderline rather than unreasonable.
The surface covers the main workflows well: audio processing job creation, polling, and download; training account, quote, job creation, start, and status; voice model import and listing; and voice conversion creation, polling, and download. Minor gaps exist around cancellation/deletion and broader job or model management, but agents can complete the core workflows.
Available Tools
19 toolscreate_audio_jobRun any NiceVois audio toolAInspect
Every NiceVois audio tool. With a connected account it runs on that account (a subscriber's unlimited use applies): split_stems, split_lead_backing, remove_noise, remove_reverb, enhance_vocal (Vocal Enhancer, Lite and Unlimited), generate_harmony (upper and lower harmonies from a solo lead vocal). convert_format (audio format converter) is free and also works with no account. Returns an upload URL; then use get_audio_job.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | ||
| fileName | Yes | The file's name with its extension. | |
| sizeBytes | Yes | The file's exact size in bytes. | |
| outputFormat | No | Audio tools: wav (default), flac, mp3 or ogg. convert_format (required): wav, mp3, aac (M4A), flac, ogg, or an advanced format such as wav24, alac or aiff. | |
| durationSeconds | No | Length in seconds if measured; NiceVois measures the file itself after upload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| tool | No | |
| error | No | |
| links | No | |
| price | No | |
| stage | No | |
| status | No | |
| upload | No | |
| message | No | |
| outputs | No | |
| fileName | No | |
| toolName | No | |
| createdAt | No | |
| websiteUrl | No | |
| durationSeconds | No | |
| pollAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-readonly, non-destructive, open-world operation. The description adds useful behavior beyond that: account entitlement/subscriber unlimited use, the free convert_format exception, and the upload-URL-then-get_audio_job workflow. It does not cover auth mechanics or failure behavior, but it adds meaningful operational context.
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 front-loaded with the tool scope and then adds account, free-tier, and workflow context. It is somewhat dense with enumerated tool names and parentheticals, but every sentence supports selection or invocation.
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 multi-tool audio job creation endpoint with an output schema and 80% schema coverage, the description supplies the important non-schema context: supported tools, account requirement, free convert_format exception, and post-creation step. Remaining gaps around detailed parameter behavior and job lifecycle are covered by structured fields or are minor.
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 80%, so the schema already explains fileName, sizeBytes, outputFormat, and durationSeconds well. The description does not add parameter-level meaning beyond listing the allowed tool values, which are already captured by the enum.
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 states that this tool supports every NiceVois audio tool and lists the available operations, making the resource and scope clear. It does not explicitly say 'creates an audio job' and does not name create_free_audio_job as a sibling alternative, but an agent can still tell what this 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?
It gives a clear account-based usage condition: with a connected account the selected tool runs on that account, and convert_format is free and also works with no account. It also states the follow-up workflow ('Returns an upload URL; then use get_audio_job'), though it does not explicitly route no-account users to create_free_audio_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_free_audio_jobSplit or clean up audio with your accountAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | split_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. | |
| fileName | Yes | The audio file's name with its extension: WAV, MP3, FLAC, M4A or OGG. | |
| sizeBytes | Yes | The file's exact size in bytes. | |
| outputFormat | No | Format of the files you get back. Use wav unless the user asks for another. | wav |
| durationSeconds | No | The 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
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| tool | Yes | |
| error | No | |
| links | Yes | |
| price | No | |
| stage | No | |
| status | Yes | |
| upload | Yes | |
| message | No | |
| outputs | Yes | |
| fileName | No | |
| toolName | Yes | |
| createdAt | No | |
| websiteUrl | Yes | |
| durationSeconds | No | |
| pollAfterSeconds | Yes |
TDQS
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.
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.
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.
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.
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.
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.
create_training_jobCreate an RVC training uploadAInspect
Creates a private NiceVois job and returns a one-time PUT upload URL. Do not ask for consent before the first attempt because NiceVois remembers the current standing account agreement. If the server returns CONSENT_REQUIRED, ask for one acceptance of the linked standing agreement and retry once with acceptsStandingAgreement=true. This allocates a private training slot but does not start GPU work until the audio is uploaded and start_training is called.
| Name | Required | Description | Default |
|---|---|---|---|
| epochs | Yes | ||
| fileName | Yes | Original WAV, MP3, FLAC, M4A, or OGG filename. | |
| modelName | Yes | ||
| sizeBytes | Yes | ||
| contentType | Yes | ||
| submissionId | Yes | ||
| trainingEngine | No | rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass); returns a complete ZIP, not an RVC index. Requires a training pass or an eligible subscription. | |
| durationSeconds | Yes | ||
| acceptsStandingAgreement | No | Set only when the user explicitly accepts the linked standing voice-training agreement after CONSENT_REQUIRED. Omit for accounts that have already accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| links | Yes | |
| epochs | No | |
| status | Yes | |
| upload | Yes | |
| etaText | No | |
| message | No | |
| artifacts | Yes | |
| createdAt | No | |
| expiresAt | No | |
| modelName | No | |
| startedAt | No | |
| updatedAt | No | |
| completedAt | No | |
| currentEpoch | No | |
| durationSeconds | No | |
| estimatedCompletionAt | No | |
| estimatedRemainingSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses key behavioral details: it returns a one-time PUT upload URL, allocates a private training slot, and does not start GPU work until upload and start_training. It also explains the CONSENT_REQUIRED retry flow and the acceptsStandingAgreement flag, which is valuable operational context.
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 front-loaded with purpose and return behavior, then covers consent handling and lifecycle constraints. Every sentence adds useful operational information without wasted wording.
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?
The description covers the create/upload/start lifecycle and consent behavior well, and an output schema exists so return values need not be detailed. However, for a 9-parameter tool with only 33% schema description coverage, the lack of parameter explanations leaves a significant completeness gap.
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 only 33%, so the description should compensate for undocumented parameters. Instead, it adds little meaning for most parameters such as epochs, modelName, submissionId, sizeBytes, contentType, and durationSeconds, and its mention of acceptsStandingAgreement largely restates the schema.
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 states a specific verb and resource: it creates a private NiceVois training job and returns a one-time PUT upload URL. It also clarifies the lifecycle relative to start_training, but it does not explicitly differentiate itself from other creation siblings such as create_audio_job or create_voice_conversion.
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 gives clear consent-handling guidance and indicates that start_training must be called after upload before GPU work begins. However, it does not explicitly state when to choose this tool over sibling creation tools or describe any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_voice_conversionCreate an RVC vocal conversionAInspect
Use this when the user has selected a private voice model and wants to convert one vocal recording. Returns a private upload instruction. Upload only the source vocal, then call get_voice_conversion with the same conversion ID. Creating it counts one of the account's conversions (three free per account, each up to five minutes long; it comes back if the conversion fails); listening and downloads are free.
| Name | Required | Description | Default |
|---|---|---|---|
| modelId | Yes | A voice id from list_voice_models: one of the user's models, or a licensed library voice (ids starting house_). | |
| fileName | Yes | Original WAV, MP3, FLAC, M4A, or OGG vocal filename. | |
| sizeBytes | No | Exact byte size of the source audio. Supply it whenever the client can measure the file so interrupted uploads are verifiable and safely resumable. | |
| transpose | No | Pitch shift in semitones, from -24 through 24. Use 0 when no shift was requested. | |
| wholeSong | No | true for a finished song with music (for example a Suno track): NiceVois separates it, converts the lead with this voice, keeps the instrumental and backing vocals, and returns the finished cover plus each stem. Leave out for an isolated vocal. | |
| durationSeconds | Yes | Measured duration of the source audio in seconds. NiceVois uses this to verify that the account can download the result before cloud work. | |
| acceptsVoiceLibraryTerms | No | Only after VOICE_LIBRARY_TERMS_REQUIRED, once the user has accepted the linked Voice Library Terms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | No | |
| stage | No | |
| status | Yes | |
| upload | Yes | |
| outputs | Yes | |
| timings | No | |
| fileName | No | |
| createdAt | No | |
| modelName | No | |
| transpose | No | |
| restoration | No | |
| stageMessage | No | |
| providerState | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the quota cost model (one conversion per create, three free, five-minute cap, credit returned on failure), that listening and downloads are free, and that the call returns a private upload instruction rather than a result. These are consequential, non-obvious behaviors for a non-readOnly, openWorld 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?
Front-loaded with the trigger condition and the follow-up call, then the quota rules. It is a single dense paragraph with no filler, though the billing and workflow details packed into one block make it slightly harder to scan than a split would be.
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?
With an output schema present, the description needn't explain return values, and it instead covers the parts the schema cannot: the upload handoff, the follow-up tool, and the quota accounting. Nothing an agent needs to invoke this correctly is missing.
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 modelId, transpose, wholeSong, durationSeconds and the terms flag in detail. The description only echoes the 'private voice model' selection and the upload-only-source constraint, adding little parameter-level meaning beyond the structured fields — the correct baseline of 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?
States a specific verb and resource ('convert one vocal recording') plus the precondition ('user has selected a private voice model'), which cleanly separates it from create_audio_job and create_training_job. An agent can distinguish it from every sibling without opening a schema.
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?
Gives an explicit trigger condition ('when the user has selected a private voice model and wants to convert one vocal recording') and a follow-up step ('Upload only the source vocal, then call get_voice_conversion with the same conversion ID'). It does not explicitly rule out the audio-job siblings, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_voice_model_importPrepare a private RVC model uploadAInspect
Use this when the user wants to convert with an existing private RVC .pth file or complete model ZIP instead of a voice trained in their NiceVois library. Returns a one-time PUT upload instruction. After uploading, call list_voice_models to select the imported voice.
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | Original .pth or .zip filename. | |
| sizeBytes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| status | Yes | |
| upload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it states that the tool returns a one-time PUT upload instruction, implying a temporary upload URL and requiring an external upload step. It also hints at the tool being non-mutating (it only prepares) and non-destructive, aligning with the annotations (readOnlyHint=false, destructiveHint=false). However, it does not detail authentication requirements or what happens if the upload is not completed, which would be extra context.
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 two sentences, front-loaded with the primary purpose and usage trigger, and clearly explains the return and next step. It contains zero filler and every sentence adds value, making it an excellent example of conciseness and structure.
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 presence of an output schema (which likely describes the PUT upload instruction) and the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description is fairly complete. It explains the purpose, the trigger, and the follow-up action. However, it could briefly mention that the upload URL is temporary or that the tool does not actually upload the file, which would improve completeness, but the current description covers the essential workflow.
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 schema already provides clear descriptions for both parameters: fileName as the original .pth or .zip filename, and sizeBytes with a max limit. The description adds no additional parameter-specific meaning beyond what the schema states, and with schema coverage at 50% (the schema describes both parameters but may not cover all aspects like encoding or extensions), the baseline 3 is appropriate.
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: to prepare a private RVC model upload, specifying what the user wants (convert with an existing private RVC .pth file or ZIP) and that it returns a one-time PUT upload instruction. This distinguishes it from siblings like creating a training job or converting with a library voice, and it is consistent with the name.
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 explicitly states when to use this tool ('when the user wants to convert with an existing private RVC .pth file or complete model ZIP instead of a voice trained in their NiceVois library') and provides a clear next step ('After uploading, call list_voice_models to select the imported voice'). This provides strong usage guidance and names an alternative action (using a library voice) and a follow-up action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_voice_conversion_outputDownload a completed voice conversionAInspect
Use after get_voice_conversion says the job is complete and the user wants the cleaned or standard output. Downloads are free; the conversion was counted once when it started. If the exact file was downloaded before, ask before retrying and then set confirmRepeat true.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | cleaned (recommended) or normal for a vocal conversion; for a whole-song cover, any kind listed in files, for example cover, instrumental or vocal_combined. | |
| eventId | No | ||
| conversionId | Yes | ||
| confirmRepeat | No | Only true after the user explicitly confirms downloading the same artifact again. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accepted | Yes | |
| downloadUrl | Yes | |
| downloadCount | Yes | |
| secondsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare it is not read-only, not destructive, and open-world; the description adds real economics (downloads are free, billing was counted once at conversion start) and a repeat-download safety protocol requiring user confirmation. It does not cover auth/permission requirements or whether output links expire, keeping it short of a 5.
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?
Three short sentences, with the precondition and the artifact scope front-loaded and the repeat-safety caveat last. No filler or restatement of the title.
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?
An output schema exists, so return values need no explanation; the description covers the gating call, billing implications, and the repeat-confirmation workflow. The only material omission is the role of eventId, which neither schema nor description explains.
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 coverage is 50%: kind and confirmRepeat are already documented in the schema, and the description merely reinforces confirmRepeat's rule. The undocumented eventId is never explained in the description, so it does not compensate for the coverage gap.
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 states a specific verb+resource (download the completed voice conversion output) and names the artifacts available (cleaned vs standard). It implicitly separates itself from get_voice_conversion by tying invocation to that tool's completion status, though it never explicitly contrasts with the other download-ish siblings such as get_audio_download.
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?
Gives an explicit precondition ('Use after get_voice_conversion says the job is complete') and an explicit branch condition for the repeat case ('If the exact file was downloaded before, ask before retrying and then set confirmRepeat true'). The when-to-use and when-to-ask-first conditions are both spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audio_downloadGet a download link for an audio outputAInspect
Returns a short-lived link to one output of a completed audio job. Download it or give it to the user straight away.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| output | Yes | One of the stems listed by get_audio_job, for example vocal, instrumental, clean, upper or converted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| downloadUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavior beyond the annotations: the link is short-lived and should be used immediately. It does not explain why readOnlyHint is false despite the retrieval-style operation, nor does it disclose permissions or whether repeated calls create new links.
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 tight sentences front-load the purpose and then the required action. There is no redundant restatement of the tool name or title.
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?
The description covers the key operational fact, link expiration, and the tool has an output schema plus annotations covering safety. It could be slightly more complete by explicitly routing to get_audio_job for valid output stems, but nothing critical is missing.
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 50% schema description coverage, the output parameter is documented in the schema while jobId is not. The description contributes 'completed audio job' as a constraint on jobId and 'one output' as the meaning of output, but it adds no format or selection guidance beyond the schema.
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 states a specific verb and resource: it returns a link to one output of a completed audio job. It is clear enough to distinguish from create_audio_job and generic job inspection, though it does not explicitly name sibling tools like get_audio_job or download_voice_conversion_output.
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 phrase 'completed audio job' implies the prerequisite that the job must already be finished, and 'Download it or give it to the user straight away' gives a usage action. However, it does not explicitly say when to use this versus get_audio_job for listing outputs or download_voice_conversion_output for conversion outputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audio_jobCheck an audio jobARead-onlyInspect
Use after create_audio_job and the upload, until the job is completed or failed. When complete it lists each output; call get_audio_download for the ones the user wants.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The id returned by create_audio_job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| tool | No | |
| error | No | |
| links | No | |
| price | No | |
| stage | No | |
| status | No | |
| upload | No | |
| message | No | |
| outputs | No | |
| fileName | No | |
| toolName | No | |
| createdAt | No | |
| websiteUrl | No | |
| durationSeconds | No | |
| pollAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, closed-world read, so the description correctly spends its words on lifecycle behavior instead: polling pattern, terminal states, and that results are enumerated only once complete. It does not cover rate limiting or empty-output cases, which keeps it from a 5.
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 tight sentences ordered by lifecycle: prerequisite first, terminal condition second, follow-up action last. Nothing is redundant with the title or schema.
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 polling tool with full schema coverage, an output schema, and safety annotations, the description supplies the missing behavioral layer (polling, terminal states, handoff). Only edge behavior such as transient errors or status value meanings is left unstated, and those are minor.
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 coverage is 100% and the jobId field already documents 'The id returned by create_audio_job.' The description only indirectly references this origin, adding no format or validation detail beyond the schema, so baseline 3 applies.
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 makes clear this is the status-check counterpart to create_audio_job, polled until the job reaches a terminal state, and that it enumerates outputs on success. The verb 'check' only appears in the title, not the description, but the resource and lifecycle role are unmistakable and clearly distinct from get_audio_download.
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 states exactly when to call it (after create_audio_job plus the upload), how long to keep calling (until completed or failed), and what to do next (get_audio_download for selected outputs). The alternative sibling is named rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversion_requirementsGet RVC voice conversion requirementsARead-onlyInspect
Use this when a user wants to convert vocals with RVC or compare a normal RVC result with NiceVois cleaned consonants and breaths. Returns the real input formats, model choices, workflow, current free-beta policy, and outputs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| outputs | Yes | |
| pricing | Yes | |
| service | Yes | |
| workflow | Yes | |
| modelInputs | Yes | |
| authentication | Yes | |
| wholeSongCover | Yes | |
| sourceAudioFormats | Yes | |
| transposeSemitones | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered; the description adds that the answer reflects the 'current free-beta policy', signaling time-sensitive content. It does not say the call is parameterless or that results are static/instantaneous, and the output schema already covers the return shape.
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: the trigger condition first, then an enumerated content list. Front-loaded and free of filler, though the second sentence reads as a comma-separated inventory rather than a tight summary.
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 zero-parameter, read-only lookup with an output schema, the description supplies what the agent actually needs: when to call it and what subject matter comes back. Nothing critical is missing, though a pointer to create_voice_conversion as the follow-up action would close the loop.
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?
Zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate beyond the empty schema.
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?
States a specific resource (RVC voice conversion requirements) and enumerates what the answer contains: input formats, model choices, workflow, free-beta policy, outputs. It implicitly contrasts with the sibling create_voice_conversion (which performs conversion) by being the requirements lookup, but never names that sibling.
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?
Opens with an explicit trigger: use this when a user wants to convert vocals with RVC or compare a normal RVC result with NiceVois cleaned consonants. That gives a clear when-to-use condition, though it never states exclusions or points to get_training_requirements for the analogous training path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_free_audio_jobCheck a free audio jobARead-onlyInspect
Use this after create_free_audio_job and the upload, no more than every 10 seconds, until the job is completed or failed. When it completes, it lists every output file (for example lead vocal, backing vocals, instrumental) with a download link.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The id returned by create_free_audio_job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| tool | Yes | |
| error | No | |
| links | Yes | |
| price | No | |
| stage | No | |
| status | Yes | |
| upload | Yes | |
| message | No | |
| outputs | Yes | |
| fileName | No | |
| toolName | Yes | |
| createdAt | No | |
| websiteUrl | Yes | |
| durationSeconds | No | |
| pollAfterSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond read-only annotations, the description discloses a concrete polling rate limit ('no more than every 10 seconds'), the terminal states ('completed or failed'), and what the completed response contains (output files with download links). These are meaningful operational details for correct invocation.
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 with no filler. The polling cadence and lifecycle condition are front-loaded, and the return-content note is included only where useful.
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 simple one-parameter polling tool with annotations and an output schema, the description covers the key behavioral gaps: when to call, how often, when to stop, and what completion yields. Nothing essential is missing.
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 coverage is 100%, and the single jobId parameter is already documented in the schema as the id returned by create_free_audio_job. The description reinforces that same relationship but adds no additional syntax or constraints beyond the structured field.
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 implies polling a free audio job created by create_free_audio_job, and states it runs until the job completes or fails. It does not explicitly differentiate this from the sibling get_audio_job, but the 'free' workflow context and named create_free_audio_job make its purpose clear.
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 gives explicit usage context: call after create_free_audio_job and the upload, poll no more than every 10 seconds, and stop when completed or failed. It does not name alternatives or exclusions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_training_accountCheck NiceVois training balanceARead-onlyInspect
Call before quoting or creating a training job. Returns the connected account's welcome-credit status, available and reserved balance, balance packs, and a private browser link that keeps checkout on this same agent identity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| balance | Yes | |
| freeRuns | Yes | |
| products | No | |
| signedIn | No | |
| accountUrl | No | |
| freeTraining | No | |
| checkoutEnabled | Yes | |
| freeRunMaxEpochs | No | |
| freeRunMaxDurationSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context beyond that: it explains the account-scoped nature of the call and the private browser link that preserves agent identity through checkout, which is a meaningful side effect an agent needs to know about.
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 with no filler: the usage precondition is front-loaded, and the returned data is enumerated without redundancy. Every clause earns its place.
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?
With an output schema present, return-field details are already structured. The description covers when to invoke it, what to expect, and the identity-preserving checkout-link behavior. Nothing an agent needs to call it correctly is missing.
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, so there is no parameter syntax to document. The description clarifies that it operates on the connected account's identity, which is useful context and merits the baseline 4 for a parameterless 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 states a specific purpose: a preflight check of the connected account's training balance and credits, returning welcome-credit status, available/reserved balance, balance packs, and a checkout link. It clearly distinguishes this account-level balance tool from siblings like get_training_job, which operate on individual jobs.
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 explicitly tells the agent when to call this tool — before quoting or creating a training job — which is clear, actionable guidance. However, it does not name alternatives or state when not to use it (e.g., when checking an existing job's status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_training_jobCheck an RVC training jobARead-onlyInspect
Use this to check truthful stage, completed epochs, ETA, and artifact readiness for one private NiceVois training job. Poll reasonably; do not call more often than every 15 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| links | Yes | |
| epochs | No | |
| status | Yes | |
| upload | Yes | |
| etaText | No | |
| message | No | |
| artifacts | Yes | |
| createdAt | No | |
| expiresAt | No | |
| modelName | No | |
| startedAt | No | |
| updatedAt | No | |
| completedAt | No | |
| currentEpoch | No | |
| durationSeconds | No | |
| estimatedCompletionAt | No | |
| estimatedRemainingSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds value by explicitly stating it is for a 'private' training job and that the tool is meant for polling (implying it is non-mutating and safe to call repeatedly, with a rate hint). No contradictions found.
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 two sentences with zero waste. All information is relevant and front-loaded: first sentence states the tool's purpose and scope, second adds a crucial usage constraint. Every word earns its place.
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 it has an output schema (so return structure is documented), only 1 required parameter with clear purpose, and annotations already cover safety, the description covers all necessary ground. It explains what the tool does, how to use it (polling with rate limit), and distinguishes it from siblings. No gaps remain.
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 coverage is 0%, meaning the description must compensate. It does not describe the 'jobId' parameter explicitly, but the tool's purpose ('check one training job') strongly implies jobId identifies which job. With only one required parameter, the context is sufficient. A brief clarification of what jobId looks like would merit a 5.
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 uses a specific verb ('check'), states a clear resource ('one private NiceVois training job'), and explicitly lists what it retrieves ('stage, completed epochs, ETA, and artifact readiness'). This effectively distinguishes it from sibling tools like create_training_job or list_training_jobs.
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 explicitly tells when to use this tool ('to check one training job') and provides proactive usage guidance ('poll reasonably; do not call more often than every 15 seconds'). This helps the agent avoid misuse or excessive calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_training_requirementsGet RVC training requirementsARead-onlyInspect
Use this before training an AI voice to confirm NiceVois input formats, duration and epoch limits, consent requirements, outputs, retention, and the exact upload workflow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| outputs | Yes | |
| service | Yes | |
| workflow | Yes | |
| maxEpochs | Yes | |
| minEpochs | Yes | |
| agreementUrl | Yes | |
| consentModel | Yes | |
| paidTraining | Yes | |
| freeAllowance | Yes | |
| maxAudioBytes | Yes | |
| retentionDays | Yes | |
| authentication | Yes | |
| consentVersion | Yes | |
| supportedFormats | Yes | |
| maxDurationSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context by enumerating exactly what information the tool confirms, including consent requirements and retention, which goes beyond the 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?
The description is a single, well-structured sentence that front-loads the usage instruction ('Use this before training') and then efficiently lists the key requirement categories. Every phrase adds value with no redundancy or filler.
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 zero-parameter, read-only requirements tool with an output schema, the description is complete. It tells the agent when to use it, what to expect (formats, limits, consent, outputs, retention, upload workflow), and implicitly distinguishes it from action-oriented sibling tools.
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 zero parameters, so the baseline is 4. There are no parameter semantics to explain, and the description appropriately focuses on the tool's informational output rather than inputs.
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: to retrieve RVC training requirements before training. It lists specific content areas (input formats, duration/epoch limits, consent, outputs, retention, upload workflow), which distinguishes it from sibling tools like create_training_job or start_training that perform actions rather than provide requirements.
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 explicitly says 'Use this before training an AI voice,' giving clear temporal guidance for when to invoke the tool. It does not explicitly name alternatives or exclusions, but the pre-training context is strong enough to guide selection among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_voice_conversionCheck an RVC vocal conversionARead-onlyInspect
Use this when checking one private NiceVois conversion. Poll no more than once every 10 seconds. Report the returned stage without inventing progress. When complete, present the NiceVois cleaned version first and use download_voice_conversion_output for the version the user requests.
| Name | Required | Description | Default |
|---|---|---|---|
| conversionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | No | |
| stage | No | |
| status | Yes | |
| upload | Yes | |
| outputs | Yes | |
| timings | No | |
| fileName | No | |
| createdAt | No | |
| modelName | No | |
| transpose | No | |
| restoration | No | |
| stageMessage | No | |
| providerState | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already marking this as read-only and non-destructive, the description adds meaningful behavior beyond that: it discloses polling cadence, instructs the agent to report the actual returned stage without inventing progress, and prescribes output ordering. These are non-obvious behaviors not available from annotations or schema.
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?
Three short sentences, each earning its place: one sets the use case, one sets polling and accuracy expectations, one prescribes the post-completion action. The most important instruction is front-loaded, and there is no filler.
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?
The task is a simple read/status check with a single parameter. An output schema is present, so return-value documentation is already covered. The description adds all necessary operational guidance: polling limit, honest reporting, and the correct downstream tool.
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 schema has 0% description coverage and the prose does not mention conversionId, its origin, or how it relates to create_voice_conversion. Though the tool name and the word 'conversion' hint at the identifier's meaning, the description provides almost no value beyond the schema's property name and constraints.
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 names a specific verb ('check') and resource ('one private NiceVois conversion'), and the title reinforces 'Check an RVC vocal conversion.' It clearly separates this polling/status tool from related creation and download operations, so an agent knows what it does without inspecting the schema.
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 gives explicit when-to-use context ('Use this when checking') and a hard usage rule ('Poll no more than once every 10 seconds'). It also names the companion tool to use after completion, download_voice_conversion_output, providing a clear alternative and handoff.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_free_audio_toolsList the free NiceVois audio toolsARead-onlyInspect
Use this to see NiceVois's free audio tools (discovery needs no account; processing shares your account allowance): split a song into vocals and instrumental (vocal remover, acapella, karaoke instrumental), split lead vocals from backing vocals, remove background noise, and remove reverb or echo. Returns each tool's id, the accepted formats, and a website link to give the user when you cannot upload their file yourself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| price | Yes | |
| tools | Yes | |
| service | Yes | |
| workflow | Yes | |
| inputFormats | Yes | |
| noFileAccess | Yes | |
| maxAudioBytes | Yes | |
| outputFormats | Yes | |
| accountRequired | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/non-destructive/closed-world, so the safety profile is covered; the description adds genuinely new context—no-account requirement for listing versus shared allowance for processing—plus the practical guidance to hand the website link to the user when upload isn't possible. It doesn't mention rate limits or catalog size, but the important behavioral traits are disclosed.
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?
A single front-loaded sentence with the usage trigger first, followed by the tool inventory and return contents. The parenthetical list of synonyms (vocal remover, acapella, karaoke instrumental) is slightly verbose but earns its place for matching user phrasing.
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?
An output schema exists, so return values need not be spelled out, yet the description still summarizes the key fields (id, accepted formats, website link) and gives the downstream action to take with them. For a parameterless listing tool with full annotation coverage, nothing an agent needs is missing.
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 takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly implies a parameterless catalog call without introducing any false input expectations.
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?
States a specific verb and resource ('see NiceVois's free audio tools') and then enumerates the actual tool categories (vocal split, lead/backing split, noise removal, de-reverb). This makes it clearly distinguishable from the sibling processing tools like create_free_audio_job and get_free_audio_job, which act on a single job rather than cataloging options.
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?
Explicitly frames discovery vs. processing ('discovery needs no account; processing shares your account allowance') and gives a concrete trigger ('when you cannot upload their file yourself'). It stops short of naming the sibling to call after discovery, but the when-to-use condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_training_jobsList private RVC training jobsARead-onlyInspect
Use this to find the authenticated user's recent NiceVois jobs before asking for a job ID they may not know.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| retentionDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is safe. The description adds that it lists only 'recent' jobs and for the 'authenticated user', which is useful but not extensive. No additional behavioral details like pagination or sorting are provided.
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 sentence that is front-loaded with the action and resource, and every word adds meaning. No redundant or filler content.
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 has no parameters, clear annotations, and an output schema that describes return values, the description covers the essential purpose and usage guidance. It could mention that it only lists recent jobs, but the output schema likely defines the structure. Overall, it's complete for this simple tool.
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 no parameters, and schema description coverage is 100% (trivially). The description adds context by specifying 'recent' and 'authenticated user's', which clarifies the scope implied by the empty schema. A score of 4 reflects that the description effectively handles the parameter-free case.
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 'list' and the resource 'private RVC training jobs', and specifies it returns the authenticated user's recent jobs. It distinguishes itself from siblings like 'get_training_job' which likely retrieves a single job by ID.
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 explicitly states to use this tool before asking for a job ID, providing clear use-case context. However, it doesn't explicitly mention when not to use it or compare directly with siblings like 'get_training_job' or 'start_training'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_voice_modelsList private RVC voice modelsARead-onlyInspect
Use this when the user wants to convert audio and you need to select one of their private NiceVois-trained or uploaded RVC voices. Do not ask for a model ID before calling this tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes | |
| billing | Yes | |
| allowance | No | |
| usedToday | Yes | |
| dailyLimit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the readonly nature is covered. The description adds transparent context about what the tool returns access to: the user's private NiceVois-trained or uploaded RVC voices, and signals that calling it is a prerequisite before conversion. This is meaningful beyond the structured 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?
The description is two sentences with no filler. It front-loads the primary use case and immediately follows with an actionable constraint, making the tool's purpose and invocation behavior easy to absorb.
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 zero parameters, an output schema, and read-only annotations, the description provides the necessary context for a simple list-and-select tool. It states when to invoke it, what it exposes, and a behavioral rule that prevents the agent from prompting for unnecessary input. No critical guidance is missing.
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, so there is little parameter-specific semantics to add. The description reinforces the zero-input expectation by instructing the agent not to ask for a model ID first, which compensates for any potential ambiguity about required inputs.
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?
Description names a specific verb (list/select) and resource (private RVC voice models), and clarifies the exact use case: choosing one of the user's private NiceVois-trained or uploaded RVC voices for conversion. This clearly distinguishes it from sibling tools like create_voice_conversion or list_training_jobs without needing to inspect schemas.
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?
Explicitly states the condition for use: 'when the user wants to convert audio and you need to select one of their private NiceVois-trained or uploaded RVC voices.' It also gives a concrete behavior rule: do not ask for a model ID before calling. It lacks explicit when-not-to-use or alternative tool routing, but the clear trigger instruction is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_trainingQuote an RVC training jobARead-onlyInspect
Call after inspecting the audio and before creating a job. Returns the exact payable amount, current balance, welcome-credit effect, shortfall, feasibility, and the private balance-page link when more balance is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| epochs | Yes | ||
| trainingEngine | No | rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass), which chooses its own settings and requires a training pass or an eligible subscription. | |
| durationSeconds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| epochs | Yes | |
| canStart | Yes | |
| currency | Yes | |
| accountUrl | No | |
| payableCents | Yes | |
| freeRunApplied | Yes | |
| shortfallCents | Yes | |
| durationSeconds | Yes | |
| quotedPriceCents | No | |
| balanceAfterCents | No | |
| balanceBeforeCents | No | |
| recommendedProduct | No | |
| subscriptionCreditAppliedCents | No | |
| subscriptionCreditRemainingCents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/non-destructive, so safety is covered; the description adds the useful behavioral fact that this is a preview step whose output includes welcome-credit effect, shortfall, feasibility, and a balance-page link. It does not say whether the quote expires, is cached, or how it reacts to infeasible inputs, which keeps it below 5.
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?
A single tightly packed sentence with the workflow trigger first and the payoff list second. Every clause carries information an agent needs; nothing is repeated from the title or schema.
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?
An output schema exists, so the return list need not be spelled out, and the pre-job sequencing is well covered. However, with only 2 required inputs poorly documented and no mention of quote validity, failure modes, or how the quote relates to start_training, the definition is adequate but incomplete for a pricing-gate tool.
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 only 33% and the description adds nothing about durationSeconds or epochs — neither of which is documented in the schema either. The description mentions no parameter at all, leaving half the inputs uninterpreted, so it fails to compensate for the coverage gap.
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?
States a specific verb and resource ('quote an RVC training job') and enumerates what the quote contains (payable amount, balance, shortfall, feasibility), which clearly separates it from create_training_job and get_training_account. It stops short of naming the sibling it replaces, so a 4 rather than a 5.
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?
'Call after inspecting the audio and before creating a job' gives a concrete position in the workflow and implies the alternative (skip the quote and call create_training_job at your own risk). It never names a sibling tool explicitly and gives no explicit exclusion cases, so it is clear context without full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_trainingStart RVC trainingAInspect
Use this only after the source audio was successfully PUT to the upload URL returned by create_training_job. Starts the private cloud RVC training job.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| links | Yes | |
| epochs | No | |
| status | Yes | |
| upload | Yes | |
| etaText | No | |
| message | No | |
| artifacts | Yes | |
| createdAt | No | |
| expiresAt | No | |
| modelName | No | |
| startedAt | No | |
| updatedAt | No | |
| completedAt | No | |
| currentEpoch | No | |
| durationSeconds | No | |
| estimatedCompletionAt | No | |
| estimatedRemainingSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint=false) and non-destructiveness. The description adds the context of starting training after upload, but does not disclose other behaviors like asynchronicity, potential long execution time, response format, or error conditions. It provides adequate but not rich behavioral context beyond 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?
The description is a single sentence, which is concise, but it omits necessary parameter explanation and behavioral details. Conciseness is valued, but not at the cost of essential information. It could be slightly expanded without losing efficiency.
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 has only one parameter and an output schema that is not described, the description should cover prerequisites (mentioned), response semantics (missing), error possibilities, and async behavior. The context of starting a training job implies possible long-running or queued execution, but no such detail is provided. The description is insufficient for complete 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 schema description coverage is 0%, so the description carries the full burden of explaining the only parameter (jobId). However, the description never explicitly states that jobId is the ID returned by create_training_job. It only implies this by referencing the upload URL from create_training_job. An agent would benefit from a clear statement like 'The jobId returned by create_training_job.' This omission fails to add meaning beyond the bare schema.
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 ('Starts') and the resource ('the private cloud RVC training job'), distinguishing it from sibling tools like create_training_job (which prepares the job) and get_training_job (which checks status). It is specific and immediately informative.
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 explicitly says 'Use this only after the source audio was successfully PUT to the upload URL returned by create_training_job,' providing a clear precondition and referencing the correct sibling tool. This tells the agent exactly when and after what step to invoke this tool.
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.
2 tool updates
- Changed
create_training_job1 field changed- changed
Input schema / properties / trainingEngine / descriptionPrevious value: -"rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass); returns a complete ZIP, not an RVC index."New value: +"rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass); returns a complete ZIP, not an RVC index. Requires a training pass or an eligible subscription."
- Changed
quote_training1 field changed- changed
Input schema / properties / trainingEngine / descriptionPrevious value: -"rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass), which chooses its own settings."New value: +"rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass), which chooses its own settings and requires a training pass or an eligible subscription."
5 tool updates
- Changed
create_audio_job2 fields changed- changed
Output schema / properties / outputs / items / requiredPrevious value: -[ - "stem", - "name", - "description", - "downloadUrl" -]New value: +[ + "stem", + "name", + "downloadUrl" +] - changed
Output schema / properties / upload / anyOfPrevious 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" + } +]
- Changed
create_free_audio_job3 fields changed- changed
Output schema / properties / outputs / items / requiredPrevious value: -[ - "stem", - "name", - "description", - "downloadUrl" -]New value: +[ + "stem", + "name", + "downloadUrl" +] - changed
Output schema / properties / upload / anyOfPrevious 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" + } +] - changed
Output schema / requiredPrevious value: -[ - "id", - "tool", - "toolName", - "status", - "price", - "upload", - "outputs", - "pollAfterSeconds", - "websiteUrl", - "links" -]New value: +[ + "id", + "tool", + "toolName", + "status", + "upload", + "outputs", + "pollAfterSeconds", + "websiteUrl", + "links" +]
- Changed
get_audio_job2 fields changed- changed
Output schema / properties / outputs / items / requiredPrevious value: -[ - "stem", - "name", - "description", - "downloadUrl" -]New value: +[ + "stem", + "name", + "downloadUrl" +] - changed
Output schema / properties / upload / anyOfPrevious 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" + } +]
- Changed
get_free_audio_job3 fields changed- changed
Output schema / properties / outputs / items / requiredPrevious value: -[ - "stem", - "name", - "description", - "downloadUrl" -]New value: +[ + "stem", + "name", + "downloadUrl" +] - changed
Output schema / properties / upload / anyOfPrevious 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" + } +] - changed
Output schema / requiredPrevious value: -[ - "id", - "tool", - "toolName", - "status", - "price", - "upload", - "outputs", - "pollAfterSeconds", - "websiteUrl", - "links" -]New value: +[ + "id", + "tool", + "toolName", + "status", + "upload", + "outputs", + "pollAfterSeconds", + "websiteUrl", + "links" +]
- Changed
list_free_audio_tools1 field changed- changed
Output schema / properties / accountRequired / constPrevious value: -falseNew value: +true
8 tool updates
- Added
create_audio_job - Changed
create_training_job1 field changed- added
Input schema / properties / trainingEngineAdded value: +{ + "description": "rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass); returns a complete ZIP, not an RVC index.", + "enum": [ + "rvc", + "nicevois" + ], + "type": "string" +}
- Changed
create_voice_conversion3 fields changed- added
Input schema / properties / acceptsVoiceLibraryTermsAdded value: +{ + "const": true, + "description": "Only after VOICE_LIBRARY_TERMS_REQUIRED, once the user has accepted the linked Voice Library Terms.", + "type": "boolean" +} - changed
Input schema / properties / modelId / descriptionPrevious value: -"The id returned by list_voice_models."New value: +"A voice id from list_voice_models: one of the user's models, or a licensed library voice (ids starting house_)." - added
Input schema / properties / wholeSongAdded value: +{ + "description": "true for a finished song with music (for example a Suno track): NiceVois separates it, converts the lead with this voice, keeps the instrumental and backing vocals, and returns the finished cover plus each stem. Leave out for an isolated vocal.", + "type": "boolean" +}
- Changed
download_voice_conversion_output3 fields changed- changed
Input schema / properties / kind / descriptionPrevious value: -"Prefer cleaned unless the user specifically asks for standard RVC."New value: +"cleaned (recommended) or normal for a vocal conversion; for a whole-song cover, any kind listed in files, for example cover, instrumental or vocal_combined." - removed
Input schema / properties / kind / enumRemoved value: -[ - "cleaned", - "normal" -] - added
Input schema / properties / kind / patternAdded value: +"^[a-z][a-z0-9_]{0,39}$"
- Added
get_audio_download - Added
get_audio_job - Changed
get_conversion_requirements2 fields changed- changed
Output schema / properties / wholeSongCover / properties / agentSupport / constPrevious value: -"discovery_only"New value: +"rest_and_mcp" - changed
Output schema / properties / wholeSongCover / properties / status / constPrevious value: -"private_preview"New value: +"live"
- Changed
quote_training1 field changed- added
Input schema / properties / trainingEngineAdded value: +{ + "description": "rvc (default): Standard RVC, portable .pth and .index. nicevois: NiceVois Training (Seed-VC with a finishing pass), which chooses its own settings.", + "enum": [ + "rvc", + "nicevois" + ], + "type": "string" +}
3 tool updates
- Changed
create_free_audio_job1 field changed- removed
Output schema / properties / price / constRemoved value: -"free"
- Changed
get_free_audio_job1 field changed- removed
Output schema / properties / price / constRemoved value: -"free"
- Changed
list_free_audio_tools1 field changed- removed
Output schema / properties / price / constRemoved value: -"free"
3 tool updates
- Added
create_free_audio_job - Added
get_free_audio_job - Added
list_free_audio_tools
5 tool updates
- Removed
create_image_training_job - Removed
get_image_training_job - Removed
get_image_training_requirements - Removed
quote_image_training - Removed
start_image_training
1 tool update
- Changed
quote_image_training1 field changed- added
Output schema / properties / subscriptionCoversTrainingAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +}
5 tool updates
- Added
create_image_training_job - Added
get_image_training_job - Added
get_image_training_requirements - Added
quote_image_training - Added
start_image_training
1 tool update
- Changed
create_voice_conversion1 field changed- added
Input schema / properties / sizeBytesAdded value: +{ + "description": "Exact byte size of the source audio. Supply it whenever the client can measure the file so interrupted uploads are verifiable and safely resumable.", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +}
1 tool update
- Changed
quote_training2 fields changed- added
Output schema / properties / subscriptionCreditAppliedCentsAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - added
Output schema / properties / subscriptionCreditRemainingCentsAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +}
3 tool updates
- Changed
create_voice_conversion2 fields changed- changed
Input schema / properties / durationSeconds / descriptionPrevious value: -"Measured duration of the source audio in seconds. NiceVois uses this to reserve cleaned voice-conversion download minutes before cloud work."New value: +"Measured duration of the source audio in seconds. NiceVois uses this to verify that the account can download the result before cloud work." - changed
Output schema / properties / outputs / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "cleaned": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "downloadUrl": { - "format": "uri", - "type": "string" - }, - "listenUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "listenUrl", - "downloadUrl" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "normal": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "downloadUrl": { - "format": "uri", - "type": "string" - }, - "listenUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "listenUrl", - "downloadUrl" - ], - "type": "object" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "normal", - "cleaned" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "cleaned": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "downloadUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listenUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "listenUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "normal": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "downloadUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listenUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "listenUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "normal", + "cleaned" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Added
download_voice_conversion_output - Changed
get_voice_conversion1 field changed- changed
Output schema / properties / outputs / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "cleaned": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "downloadUrl": { - "format": "uri", - "type": "string" - }, - "listenUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "listenUrl", - "downloadUrl" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "normal": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "downloadUrl": { - "format": "uri", - "type": "string" - }, - "listenUrl": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "listenUrl", - "downloadUrl" - ], - "type": "object" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "normal", - "cleaned" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "cleaned": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "downloadUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listenUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "listenUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "normal": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "downloadUrl": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listenUrl": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "listenUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "normal", + "cleaned" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Changed
create_voice_conversion1 field changed- changed
Input schema / properties / durationSeconds / descriptionPrevious value: -"Measured duration of the source audio in seconds. NiceVois uses this to reserve cleaned-output minutes before cloud work."New value: +"Measured duration of the source audio in seconds. NiceVois uses this to reserve cleaned voice-conversion download minutes before cloud work."
2 tool updates
- Changed
create_voice_conversion2 fields changed- added
Input schema / properties / durationSecondsAdded value: +{ + "description": "Measured duration of the source audio in seconds. NiceVois uses this to reserve cleaned-output minutes before cloud work.", + "exclusiveMinimum": 0, + "maximum": 86400, + "type": "number" +} - changed
Input schema / requiredPrevious value: -[ - "modelId", - "fileName" -]New value: +[ + "modelId", + "fileName", + "durationSeconds" +]
- Changed
list_voice_models1 field changed- added
Output schema / properties / allowanceAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] +}
5 tool updates
- Added
create_voice_conversion - Added
create_voice_model_import - Added
get_conversion_requirements - Added
get_voice_conversion - Added
list_voice_models
3 tool updates
- Added
get_training_account - Changed
get_training_requirements3 fields changed- added
Output schema / properties / freeAllowanceAdded value: +{ + "additionalProperties": false, + "properties": { + "anonymousWebsiteRuns": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "codingAgentOAuthCountsAsConnectedAccount": { + "type": "boolean" + }, + "connectedAccountRuns": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "maxDurationSeconds": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "maxEpochs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "anonymousWebsiteRuns", + "connectedAccountRuns", + "maxEpochs", + "maxDurationSeconds", + "codingAgentOAuthCountsAsConnectedAccount" + ], + "type": "object" +} - added
Output schema / properties / paidTrainingAdded value: +{ + "additionalProperties": false, + "properties": { + "accountStatusTool": { + "type": "string" + }, + "balanceType": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "maxDurationSeconds": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "maxEpochs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "quoteBeforeUpload": { + "type": "boolean" + }, + "quoteTool": { + "type": "string" + } + }, + "required": [ + "enabled", + "currency", + "balanceType", + "quoteBeforeUpload", + "maxEpochs", + "maxDurationSeconds", + "accountStatusTool", + "quoteTool" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "service", - "workflow", - "supportedFormats", - "minEpochs", - "maxEpochs", - "maxDurationSeconds", - "maxAudioBytes", - "outputs", - "retentionDays", - "consentModel", - "consentVersion", - "agreementUrl", - "authentication" -]New value: +[ + "service", + "workflow", + "supportedFormats", + "minEpochs", + "maxEpochs", + "maxDurationSeconds", + "maxAudioBytes", + "outputs", + "retentionDays", + "consentModel", + "consentVersion", + "agreementUrl", + "authentication", + "freeAllowance", + "paidTraining" +]
- Added
quote_training
Related MCP Connectors
Audio AI tools: transcription with speakers, stems, noise removal, MIDI, speech, voices and music.
- VocunoOAuthcom.vocuno
AI music studio: song generation with vocals, covers, stems, voice conversion, mastering, editing.
49 audio tools: trim, convert, normalize, remove vocals, split stems, transcribe, and more.
Transcribe with speaker labels, split stems, remove noise, separate speakers, convert audio to MIDI.
Related MCP Servers
- AlicenseBqualityBmaintenanceAn AI stem separation and audio restoration partner for Ultimate Vocal Remover (UVR5). Speak in natural language to extract vocals, drums, bass, guitar and piano, combine separation models and clean up recordings, then bring the resulting stems back to your DAW. Your audio stays on your computer.341AGPL 3.0
- AlicenseAqualityCmaintenanceRemove vocals, extract instrumentals, and split any song into up to six stems — directly from Claude Desktop, Cursor, or any MCP client. Supports local audio files, YouTube URLs, and SoundCloud track119 npmMIT
- AlicenseAqualityBmaintenanceEnables AI agents to turn song requests into ready-to-send audio files by searching and downloading tracks, trimming clips, separating vocals, applying RVC voice conversion, and mixing the result with accompaniment. Supports original-clip and full-cover modes with environment self-checks.3MIT
- AlicenseBqualityDmaintenanceProvides AI-powered audio generation and processing through the MusicGPT API, enabling music creation, voice conversion, audio manipulation, stem extraction, and audio analysis capabilities.2419 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.