rvc-training
Server Details
Train portable RVC v2 voice models from audio in the cloud and download the .pth, .index, and ZIP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Each tool targets a distinct resource-action pair (training vs image training vs conversion vs requirements/quote/start/download). The consistent 'training' vs 'image_training' qualifiers prevent overlap between the two domains.
All tools follow a clear verb_noun snake_case pattern (create_, get_, list_, quote_, start_, download_). The parallel naming for voice training and image training (e.g., create_training_job vs create_image_training_job) is predictable and consistent.
18 tools is slightly above the typical 3-15 range, but each tool serves a necessary step in the training/conversion workflows (requirements, quote, create, start, poll, download). The count is justified by the server covering both voice and image training plus conversion.
The full lifecycle for training and conversion is covered: requirements gathering, quoting, job creation, upload, start, status checks, and output download. Minor gaps exist, such as no cancel/delete job operations and no dedicated list for image training jobs, but these are workable.
Available Tools
18 toolscreate_image_training_jobCreate an image LoRA training jobAInspect
Use after quote_image_training. Declares the images by name and size and returns one PUT upload URL per image slot. Upload every image before calling start_image_training. The first run per account is free; later runs reserve the quoted price from the NiceVois balance.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Omit to accept the recommended steps for the image count. | |
| images | Yes | One entry per image the user will upload. | |
| modelName | Yes | What the finished LoRA should be called. | |
| subjectType | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | No | |
| error | No | |
| links | No | |
| steps | No | |
| status | Yes | |
| message | No | |
| uploads | No | |
| createdAt | No | |
| startedAt | No | |
| imageCount | No | |
| completedAt | No | |
| downloadUrl | No | |
| subjectType | No | |
| triggerWord | No | |
| billingSource | No | |
| progressStage | No | |
| uploadedCount | No | |
| priceQuoteCents | No | |
| progressPercent | No | |
| estimatedCompletionAt | No | |
| estimatedTotalSeconds | No | |
| estimatedRemainingSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate readOnlyHint=false and openWorldHint=true, and the description adds important behavioral context: it returns PUT upload URLs (confirming a state-changing operation) and mentions pricing implications. This goes beyond the annotations without contradicting them.
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 sentences with no filler. The most critical information (workflow order and upload requirement) is front-loaded, and the pricing note is placed last, making the description easy to scan and act upon.
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 tool that creates a training job, the description covers the essential workflow (quoting, uploading, starting), return value (upload URLs), and cost behavior. With an output schema available, it doesn't need to enumerate outputs further. It slightly assumes the agent knows to have a quote, but the explicit 'Use after' mitigates that.
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 75%, and the description adds minimal detail about individual parameters. It does tie the 'images' parameter to the upload URL concept, but steps, modelName, and subjectType are left to the schema. Given the high schema coverage, a baseline of 3 is appropriate, and the description adds only a marginal extra layer of meaning.
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 role: it declares images and returns upload URLs, and it is positioned in the workflow after quoting and before starting training. This gives a specific verb–resource pair and distinguishes it from related siblings like create_training_job or quote_image_training.
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?
Explicit sequencing is provided: 'Use after quote_image_training' and 'Upload every image before calling start_image_training'. It also explains the free first run and balance reservation, giving agents clear decision points for when 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.
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 | ||
| 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?
The description clearly discloses that the tool allocates a slot but does not start GPU work until start_training is called, and explains the consent handling behavior. This goes beyond the annotations (readOnlyHint=false, destructiveHint=false) to explain the asynchronous nature and side effects, which is valuable.
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 concise, using three sentences to cover purpose, usage, and behavior. It is front-loaded with the primary action and returns, then adds important caveats. No redundant 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?
Given the complexity (8 parameters, output schema exists), the description adequately covers the essential behavioral aspects like consent and the non-blocking nature. However, with low schema coverage, more detail on parameters like epochs, fileName, and contentType could improve completeness, but the output schema may clarify return values.
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 only 25%, with most parameters lacking descriptions. However, the description explains the purpose of acceptsStandingAgreement and how it relates to consent, which is critical for correct usage. It also implies the other parameters (fileName, sizeBytes, etc.) are standard metadata, but could benefit from more detail.
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 creates a private NiceVois job and returns a one-time PUT upload URL, distinguishing it from siblings like start_training and list_training_jobs. It specifies the resource (training job) and the action (create), with clear scope (private).
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 provides explicit guidance on when to use this tool (to create a job before uploading audio) and when not to ask for consent (if standing agreement exists). It also gives a specific flow for handling CONSENT_REQUIRED responses, which is essential for correct usage.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| modelId | Yes | The id returned by list_voice_models. | |
| 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. | |
| 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. |
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?
Annotations only declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds meaningful behavior beyond these: the tool does not directly return the conversion result but a 'private upload instruction,' and it instructs that only the source vocal should be uploaded. This conveys an upload-then-poll workflow that annotations alone would not reveal. No contradiction with 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?
Three short sentences with the usage context front-loaded before the workflow steps. Every sentence earns its place; no filler. Slightly more could be trimmed, but it is appropriately tight.
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 is present, so return values need not be explained in the description. The description covers the essential workflow (private upload instruction, upload source vocal, then call get_voice_conversion with same ID), which is sufficient for an agent to proceed correctly. Minor gap: it does not mention the upload size limit or byte verification that sizeBytes enables, but the schema covers that.
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 all 5 parameters with definitions (modelId, fileName, sizeBytes, transpose, durationSeconds). The description adds no additional parameter meaning beyond what the schema provides, so the 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?
States a specific verb (create), resource (voice conversion), and scope (private voice model, one vocal recording). The description also differentiates from get_voice_conversion by framing it as the follow-up call, which helps an agent distinguish the creation step from the retrieval step.
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 the trigger condition ('when the user has selected a private voice model and wants to convert one vocal recording') and lays out the required follow-up sequence (upload source vocal, then call get_voice_conversion). It does not name explicit exclusions or alternative tools, but the stated context is clear enough to route an agent.
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. Each download uses the source audio's duration from the account's conversion-download minutes. If the exact file was downloaded before, ask before retrying and then set confirmRepeat true.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Prefer cleaned unless the user specifically asks for standard RVC. | |
| 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?
The description reveals a non-obvious side effect: each download consumes source-audio duration from the account's conversion-download minutes. It also discloses the duplicate-file behavior and the need to set confirmRepeat true, which is meaningful behavioral context 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?
Three concise sentences, each carrying necessary information: usage precondition, billing side effect, and duplicate retry rule. 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?
For a download operation with an output schema and annotations already present, the description covers the key context: when to call, what cost is incurred, and how to handle duplicate downloads. It provides enough behavioral and procedural context for an agent to invoke the tool correctly.
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 describes kind and confirmRepeat, and the description reinforces confirmRepeat's purpose. However, with only 50% schema description coverage, conversionId and eventId remain largely undocumented by both the schema and the description. The description adds some value but does not fully compensate for those gaps.
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 ('Download'), a specific resource ('completed voice conversion output'), and the exact trigger condition ('Use after get_voice_conversion says the job is complete'). This makes the tool's purpose distinct from the sibling creation and status-checking tools.
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 clear when-to-use guidance: only after the job is complete and the user wants cleaned or standard output. It also specifies the duplicate-download protocol. It does not explicitly name an alternative to use when the job is still running, but that is strongly implied by the precondition.
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 and destructiveHint=false, and the description adds useful behavioral context by listing what the tool returns: input formats, model choices, workflow, free-beta policy, and outputs. It does not contradict the annotations or imply side effects.
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 trigger condition and followed by a concise list of deliverables. Every sentence earns its place with no filler or redundancy.
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, a read-only annotation profile, and a provided output schema, the description covers the tool's purpose and return scope sufficiently. It is complete for an informational requirements 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 tool has zero parameters, so there is no parameter burden for the description to carry. The schema is empty and fully covered, and the description appropriately focuses on use case and return content rather than 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?
The description opens with 'Use this when...' and names the exact scenarios: RVC vocal conversion or comparing normal RVC with NiceVois-cleaned results. It then enumerates the returned content, making the tool's purpose and scope clear and distinguishing it from sibling creation/conversion tools.
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 the tool: when a user wants to convert vocals with RVC or compare RVC results with NiceVois. It provides clear context but does not mention when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_image_training_jobCheck an image LoRA training jobARead-onlyInspect
Use this to check truthful stage, progress percent, ETA, and the download link for one image training job. Poll reasonably; do not call more often than every 20 seconds - a typical run takes 20 to 60 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | No | |
| error | No | |
| links | No | |
| steps | No | |
| status | Yes | |
| message | No | |
| uploads | No | |
| createdAt | No | |
| startedAt | No | |
| imageCount | No | |
| completedAt | No | |
| downloadUrl | No | |
| subjectType | No | |
| triggerWord | No | |
| billingSource | No | |
| progressStage | No | |
| uploadedCount | No | |
| priceQuoteCents | No | |
| progressPercent | No | |
| estimatedCompletionAt | No | |
| estimatedTotalSeconds | 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, and the description adds useful behavioral context: expected polling cadence, typical runtime, and what metrics are checked. There is no contradiction with 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?
Two sentences, front-loaded with purpose and response fields, followed by a concise rate-limit warning. Every sentence earns its place with no unnecessary jargon or repetition.
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 a single simple parameter, an output schema, and annotations covering the safety profile, the description provides the necessary purpose and polling guidance. It could be slightly stronger by explicitly directing users away from get_training_job or related create tools, but it is not incomplete for a simple status check.
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 0% and the description does not explain the jobId parameter beyond referring to 'one image training job.' The parameter is a simple self-evident identifier, but the description adds no real semantic value over the schema field definition.
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 opens with 'Use this to check...' and names a specific resource ('one image training job') plus the exact data returned: stage, progress percent, ETA, and download link. This clearly distinguishes it from generic siblings like get_training_job. The 'truthful' typo is minor and does not obscure the intended meaning.
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 operational context: 'Poll reasonably; do not call more often than every 20 seconds' and expected runtime of 20–60 minutes. It does not mention alternatives or exclusion criteria relative to sibling tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_image_training_requirementsGet image LoRA training requirementsARead-onlyInspect
Use this when a user wants to train an image LoRA (a portable .safetensors style/subject model) from their own images without a local GPU. Returns the real image formats, counts, step range, base model, workflow, and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| steps | Yes | |
| output | Yes | |
| pricing | Yes | |
| service | Yes | |
| workflow | Yes | |
| baseModel | Yes | |
| imageCount | Yes | |
| imageFormats | Yes | |
| subjectTypes | Yes | |
| authentication | 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 agent knows this is a safe read operation. The description adds value beyond annotations by listing exactly what information is returned (formats, counts, step range, base model, workflow, pricing). It does not contradict annotations and provides useful behavioral context about the tool's purpose, though it omits any mention of response structure or potential errors, which is acceptable given the read-only nature.
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. It front-loads the usage context ('Use this when...') and then lists the concrete outputs. Every clause earns its place, making it easy for an agent to quickly grasp the tool's purpose and when to invoke it.
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 and an output schema exists (though not shown), the description covers all essential information an agent needs: the specific use case (image LoRA training without local GPU) and the full list of return values. It is complete for a read-only information retrieval tool. The output schema presumably defines the structure, so the description need not repeat that.
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, and the schema is empty. Per the rubric, a baseline of 4 applies. The description does not add parameter-specific semantics because there are none; instead, it clarifies the tool's output, which is the relevant semantic content. Since the schema offers no constraints or enums, the description compensates by explaining the tool's function and return values.
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 function: it returns training requirements for image LoRA models. It specifies the resource ('image LoRA training requirements') and the concrete outputs (formats, counts, step range, base model, workflow, pricing). This distinguishes it from generic training requirement tools like get_training_requirements and get_conversion_requirements by specifying 'image LoRA'.
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 it: 'when a user wants to train an image LoRA ... from their own images without a local GPU.' This is clear and actionable. However, it does not explicitly name alternatives or state when NOT to use it (e.g., for voice conversion or generic training). With 16 sibling tools, adding explicit exclusion would improve guidance, but the current guidance is sufficient for most cases.
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_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_image_trainingQuote an image LoRA trainingARead-onlyInspect
Use this before creating an image training job. Returns the exact price for the requested steps and image count, whether the account's free run is still available, and whether the current balance covers it.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Training steps. Out-of-range values are clamped, not rejected. | |
| imageCount | Yes | How many images the user will upload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| steps | Yes | |
| canStart | Yes | |
| imageCount | Yes | |
| availableCents | No | |
| shortfallCents | No | |
| estimatedMinutes | No | |
| quotedPriceCents | Yes | |
| recommendedSteps | No | |
| freeTrialAvailable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations already declare readOnlyHint=true and destructiveHint=false, the bar is lower. The description adds value by specifying the exact outputs (price, free run, balance coverage) and the timing (before creation), which goes beyond the safety profile.
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 zero waste. The primary usage instruction is front-loaded, and each clause adds distinct value (price, free run, balance). No redundancy.
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 quote tool with two well-documented parameters and an output schema (not shown but noted), the description covers the essential context: when to use it and what it returns. No critical gaps.
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 fully documents both parameters. The description's mention of 'requested steps and image count' maps directly to the parameters but adds no additional semantic meaning beyond what the schema already provides.
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 specifies a clear verb ('quote') and resource ('image training'), and states it returns exact price, free run availability, and balance coverage. This distinguishes it from siblings like quote_training (generic) and create_image_training_job (creation).
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?
Provides explicit context: 'Use this before creating an image training job.' This tells when to use it, but does not mention alternatives or exclusions. Clear context without explicit when-not guidance.
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 | ||
| 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=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds useful behavioral context by listing the specific outputs (payable amount, balance, welcome-credit effect, shortfall, feasibility, private link) and the condition for the link (when more balance is needed). This goes beyond the annotation basics.
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, efficient sentence that front-loads the critical usage timing ('Call after inspecting the audio and before creating a job') and then lists the returned items. There is zero fluff; every word adds value.
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 that an output schema exists (as indicated in context signals), the description does not need to detail the return format. It covers the key usage context, the timing, the outputs, and the conditional private link. It feels complete for the tool's simple purpose, though it could benefit from a note on parameter relevance.
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 schema description coverage at 0%, the description must compensate, but it does not explain what 'epochs' and 'durationSeconds' mean or how they influence the quote. The tool name and context imply they are training parameters, but no explicit semantics are given. This is a significant gap for an agent to correctly construct the 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 states a clear specific action: quote an RVC training job. It explicitly names the verb 'Quote' and the resource 'RVC training job', and distinguishes it from siblings like create_training_job by saying it returns the payable amount and feasibility before creation. The mention of 'exact payable amount' and 'feasibility' makes the purpose unambiguous.
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 provides a clear usage context: 'Call after inspecting the audio and before creating a job.' This tells the agent when in the workflow to invoke it, but does not explicitly name alternatives or conditions when not to use it. Sibling tools like get_training_requirements exist, but no exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_image_trainingStart image LoRA trainingAInspect
Use this only after every image was successfully PUT to its upload URL from create_image_training_job. Starts the isolated cloud GPU training run.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | No | |
| error | No | |
| links | No | |
| steps | No | |
| status | Yes | |
| message | No | |
| uploads | No | |
| createdAt | No | |
| startedAt | No | |
| imageCount | No | |
| completedAt | No | |
| downloadUrl | No | |
| subjectType | No | |
| triggerWord | No | |
| billingSource | No | |
| progressStage | No | |
| uploadedCount | No | |
| priceQuoteCents | No | |
| progressPercent | No | |
| estimatedCompletionAt | No | |
| estimatedTotalSeconds | No | |
| estimatedRemainingSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true (external effects). The description adds that it starts a training run on an isolated cloud GPU, which conveys resource usage. However, it does not describe any side effects (e.g., billing, cancellation, or what happens on failure). Given that annotations already cover the safety profile, the description provides enough but not rich behavioral 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 with no filler. The critical precondition is front-loaded, and the action is stated clearly. Every word adds value.
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 exists, the description covers the essential precondition and the action. It tells the agent exactly when to invoke it and what it does. It could explicitly state that jobId is the identifier from create_image_training_job, but the reference is implicit. Overall, the description is complete enough for correct invocation.
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 provides only a jobId string with no description, and schema coverage is 0%. The description indirectly implies jobId comes from create_image_training_job ('from create_image_training_job' refers to the upload URLs, but the job ID is part of that context). However, it does not explicitly state that jobId is the ID returned by create_image_training_job, so the description adds some meaning but does not fully compensate for the missing parameter documentation.
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 action ('Starts') and the resource ('isolated cloud GPU training run'), and the tool name specifies 'image training' to differentiate from generic start_training. The precondition referencing create_image_training_job further clarifies that this is the second step in an image-training workflow, so an agent can distinguish it from other start tools.
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 the tool: 'Use this only after every image was successfully PUT to its upload URL from create_image_training_job.' This gives a clear precondition and names the prerequisite tool. It implicitly tells the agent not to use it before that step, which is strong usage 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. Dates show when Glama detected each change.
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
5 tool updates
- First observed
create_training_job - First observed
get_training_job - First observed
get_training_requirements - First observed
list_training_jobs - First observed
start_training
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Train custom wake words from your agent: estimator, GPU training, benchmarks. Card or crypto.
- VocunoOAuthcom.vocuno
AI music studio: song generation with vocals, covers, stems, voice conversion, mastering, editing.
Provision private AI model endpoints on dedicated GPUs (Llama, Qwen, Mistral). Pay per minute.
AI transcription from URLs or files. 119 languages, diarization, SRT/VTT/text export.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceLocal multilingual TTS (24 languages incl. Ukrainian) with zero-shot voice cloning, voice design, and speech editing via HTTP API and MCP server.3-
- FlicenseAqualityDmaintenanceEnables AI models to speak and sing using retro-style formant speech synthesis, converting text or phoneme strings to WAV audio via MCP tools.146-
- 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 track1120MIT
- AlicenseBqualityFmaintenanceAn enhanced server for ElevenLabs that enables high-quality text-to-speech, voice cloning, and multi-speaker dialogue management. It features advanced conversational tools for transcript retrieval, history tracking, and emotional audio synthesis using the v3 model.29668MIT