Skip to main content
Glama
EllaZhangCA

Dot RVC Bridge

by EllaZhangCA

Dot RVC Bridge

Give Dot a different voice with your own RVC model, locally on Windows.

English · 简体中文 · Download Windows Easy Edition

A desktop controller, installer, and optional MCP server for routing Dot's playback through a local RVC engine. Includes model import, playback selection, pitch control, original-voice bypass, and start/pause.

This independent community project converts audio played on your PC; it is not an official OpenAI plugin or a native Dot voice API. The first release targets Windows x64 with an NVIDIA GPU. Local use was reported successful on an RTX 3090.

Quick start

  1. Download dot-rvc-bridge-0.3.1-windows-easy.zip from Releases. Extract to a permanent, writable folder. Choose this asset, not GitHub's automatic “Source code” ZIP.

  2. Double-click Setup.cmd. It installs private Python environments, CUDA-enabled PyTorch, the pinned engine, and base inference assets. The first install needs internet access, several GB of downloads, and about 15 GB of free disk space. No manual Python, Node.js, or C++ compiler installation is needed.

  3. If VB-CABLE is missing, setup opens its signed installer. Accept the Windows administrator prompt for BUREL VINCENT, click Install Driver, and restart if requested. Keep your usual microphone and speakers as Windows defaults.

  4. Double-click Start.cmd. Click Import .pth, select your model, choose playback headphones/speakers, then click Start.

  5. In Windows Settings → System → Sound → Volume mixer, set the app hosting Dot to output to CABLE Input (VB-Audio Virtual Cable). Keep Dot's microphone set to your normal microphone. Start a conversation and listen.

If the app is absent from the mixer, play audio in it first. App-level routing can include its other sounds. The launcher does not change Windows defaults or per-app routing.

Dot app → CABLE Input → CABLE Output → RVC → headphones / speakers
Your microphone ─────────────────────────→ Dot

Restore normal sound: enable Original voice while the engine runs, or change the app's Windows output back to your headphones/speakers. Pausing or closing the engine silences audio still routed to the cable.

Related MCP server: reaper-reapy-mcp

Support and limits

v0.3.1 supports

Details

RVC inference checkpoints

Standard v2, f0=1, 18-item configuration, 32/40/48 kHz

Pitch extraction

RMVPE; NVIDIA GPU 0

Pitch control

−24 to +24 semitones

Audio

Windows WASAPI; 48 kHz cable/output route

Model selection

One active profile; import another model to switch

Find and download your own RVC character .pth on Hugging Face. This project does not choose, host, bundle, or automatically download character weights. No local character weights, indexes, converted model bundles, recordings, or personal settings are included. Models undergo structural and size checks; not every checkpoint is compatible. Raw bundles are limited to 100 MB. RVC v1, no-f0 models, training checkpoints, .index retrieval, CPU-only use, and other operating systems are outside this release's supported path. The desktop uses speaker 0 for multi-speaker models.

RVC changes timbre; source rhythm, expression, and pronunciation still matter. Use models and demo audio you have permission to use and share.

The easy ZIP

Includes the bilingual controller, source, official uv 0.13.2, prebuilt fairseq 0.12.2 and ANTLR wheels, manifests, and license notices. This is an online installer. Engine source, PyTorch, base assets, and VB-CABLE are downloaded during setup.

Runtime files stay in .venv/ and runtime/. Moving the folder after installation can break environment paths; install again in a new folder instead. There is no automatic updater.

Troubleshooting

Symptom

Check

Download failed

Retry Setup.cmd with access to GitHub, PyPI, PyTorch, and Hugging Face. Hash mismatches stop installation.

No CABLE devices

Complete driver installation, restart if requested, and relaunch.

Port 18888 occupied

Stop the other RVC instance first; the launcher will not terminate an unrelated process.

No voice after Start

Check app output, CABLE installation, playback selection, and runtime/easy-engine.log.

Device changed/unplugged

Pause, stop the engine, refresh devices, choose the output, and start again.

Import rejected

Use a standard RVC v2 inference .pth with pitch guidance; see runtime/desktop.log.

Double playback

Disable Windows “Listen to this device” on the cable and check other monitoring paths.

The default buffer is 64 × 128 samples at 48 kHz: about 171 ms of input buffering, not measured total latency. See validation scope.

Optional MCP controls

Setup writes a machine-local mcp.json. Use its stdio entry with a compatible local MCP host after the desktop loads the engine. A cloud host's localhost is not your PC; direct Dot-to-MCP control has not been verified for this release.

Tools: get_voice_status, list_local_models, list_voice_models, select_voice_model, set_voice_pitch, set_voice_index_ratio, start_voice_audio, pause_voice_audio, and set_voice_bypass. Configure devices through the desktop or CLI first. The protected service has one active slot and keeps index ratio at zero.

Development

uv run --no-project --python 3.13.5 scripts/bootstrap.py
.venv\Scripts\python.exe -m unittest discover -s tests -v
.venv\Scripts\python.exe scripts/package-source.py

Source installation fetches pinned wheels from this repository's release. Desktop, CLI, and MCP share Engine; adapters implement read_state() and write_setting(). Model import and the legacy CUDA engine use separate environments joined by a validated raw tensor format.

See architecture, extensions, model handling, and release builds.

Original bridge code is MIT licensed. Third-party components, model assets, and VB-CABLE retain their own terms. Thanks to w-okada/voice-changer, RVC, and the underlying model and library authors.

Available Tools

9 tools
get_voice_statusA
Read-only

检查本机 RVC 引擎、模型、音频配置及阻塞原因;不启动录音,不证明实际通话音频已接通。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive/local scope, so the bar is lower; the description still adds real value by bounding the claim — it explicitly does not start recording and does not verify that live call audio is connected. That caveat prevents an agent from over-trusting the result as proof of a working audio path.

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

Conciseness5/5

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

A single front-loaded sentence that packs scope, coverage, and explicit limitations with no filler. Every clause earns its place.

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

Completeness4/5

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

With zero parameters and an output schema present, the description need not explain return values, and its scope/limitation statement is sufficient. It is complete enough for correct invocation, though a hint about what '阻塞原因' surfaces in the response would add marginal value.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4; the description correctly adds no bogus parameter guidance and instead frames the call as a parameterless status probe.

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

Purpose5/5

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

Names a specific verb (检查/check) and enumerates the concrete resources inspected: local RVC engine, models, audio configuration, and blocking reasons. The negative clause (不启动录音) distinguishes it from start_voice_audio, so an agent can separate it from siblings without opening schemas.

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

Usage Guidelines3/5

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

Usage is implied as a diagnostic pre-check (it reports blocking reasons before audio starts), and the exclusion of recording is stated. However, it never says when to prefer this over siblings like list_local_models or list_voice_models, nor any prerequisites.

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

list_local_modelsA
Read-only

列出配置目录里的 .pth 和候选 .index 路径;不反序列化权重,不自动导入或判断兼容性。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false. The description goes beyond that by bounding side effects: it does not deserialize weights, does not auto-import, and does not judge compatibility. That clarifies the tool is a pure filesystem listing, which is genuinely useful context an agent could not derive from 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.

Conciseness5/5

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

A single semicolon-delimited sentence: the positive scope first, then the negative boundaries. Zero filler and fully front-loaded.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and zero parameters means no input documentation is required. The description covers scope and side-effect boundaries adequately; only the relationship to sibling model-selection tools is left implicit.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. The description instead documents what the listing covers, which is the closest analogue to parameter semantics for a no-arg tool.

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

Purpose4/5

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

States a specific verb (列出/list) and resource (配置目录里的 .pth 和候选 .index 路径), so an agent immediately knows this enumerates local model artifacts rather than voice state. It does not explicitly distinguish itself from sibling tools like list_voice_models or select_voice_model, which is the only gap.

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

Usage Guidelines3/5

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

Usage is implied: call this to discover local .pth/.index files before selecting or loading a model. There is no explicit when-to-use statement, no named alternative, and no exclusion, so an agent must infer the discovery-then-select workflow from context alone.

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

list_voice_modelsA
Read-only

列出已导入兼容引擎的 RVC 模型槽位。请用返回的槽位选择角色。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that only slots that are imported and compatible with the engine are returned, which is useful scoping. Even so, it says nothing about ordering, whether empty results are possible, or how the slots relate to the pitch and index controls.

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

Conciseness5/5

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

The description is two short sentences and has no wasted text. It front-loads what the tool returns, then gives the action the agent should take next.

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

Completeness4/5

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

The tool is simple, and an output schema exists, so the description does not need to enumerate the return values. What it covers (what the list contains and its intended downstream use) is enough to call the tool correctly. The only minor gap is the absence of stated ordering or emptiness behavior.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is no parameter behavior for the description to explain. The description correctly does not claim any input, and instead focuses on what the returned slots are for.

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

Purpose4/5

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

The description gives a specific verb and resource: it lists RVC model slots imported by the compatible engine, and it states the scope in a way that separates the tool from sibling list_local_models. It doesn't name the sibling, so an agent has to infer the difference from the 'RVC model slots' phrasing, but the purpose is nonetheless clear.

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

Usage Guidelines3/5

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

The second sentence, “请用返回的槽位选择角色,” implies that the returned values are meant to feed a selection step, most likely select_voice_model. It never explicitly names the follow-up tool, nor does it state when to prefer this tool over list_local_models, leaving the routing implicit.

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

pause_voice_audioA
Idempotent

请求暂停引擎音频,会使仍路由到虚拟线的 Dot 无声。恢复原声请使用旁路并启动,或手动改回耳机输出。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, idempotent=true, destructive=false), so the bar is lower, and the description still adds a real side-effect disclosure: audio routed to the virtual line is silenced. It does not mention permissions, latency, or state-checking, but the effect on the user's audio is the key behavioral fact and it is present.

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

Conciseness4/5

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

A single front-loaded sentence states the action and its effect, followed by the recovery path. No filler, though the packed second clause about bypass/headphone output is slightly dense and could be split for readability.

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

Completeness4/5

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

For a zero-parameter mutation with an output schema present, the description supplies what the schema cannot: the audible consequence and how to revert. It omits any notion of error conditions or whether the pause persists across sessions, but is otherwise adequate.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate — baseline 4 applies. The description correctly avoids inventing parameter semantics.

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

Purpose4/5

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

States a specific verb+resource (pause the engine audio) and describes the concrete effect — Dots routed to the virtual line go silent. It references sibling tools for the reverse operation, giving useful contrast, though it never explicitly frames itself against start_voice_audio as the direct pair.

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

Usage Guidelines3/5

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

Gives guidance for undoing the action ('use bypass and start, or manually switch back to headphone output'), which names alternatives, but provides no guidance on when to choose pause over set_voice_bypass in the first place. Usage is implied rather than stated.

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

select_voice_modelA
Idempotent

在引擎音频暂停时选择已导入的 RVC 模型;回读选择状态,不启动音频或保证预热成功。

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-readonly, idempotent, non-destructive, closed-world behavior; the description usefully adds that the selection state is read back and that warm-up success is not guaranteed. That is genuine 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.

Conciseness5/5

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

A single compact sentence that front-loads the action and the precondition, then lists the two non-guarantees. No filler.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers the precondition and behavioral limits well. The only real gap is the meaning of 'slot'.

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

Parameters2/5

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

The single 'slot' parameter has 0% schema description coverage, and the description never explains what a slot is (index into the imported model list? a fixed channel?). With one undocumented required parameter, the description does not compensate for the schema gap.

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

Purpose4/5

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

States a specific verb+resource: selecting an already-imported RVC model, with the added constraint that the engine audio must be paused. It is distinguishable from siblings like list_voice_models and start_voice_audio, though it does not name an alternative explicitly.

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

Usage Guidelines4/5

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

Gives clear when-to-use context ('while engine audio is paused') and negative scope ('does not start audio', 'does not guarantee warm-up success'), which steers the agent away from expecting playback. It stops short of naming which sibling to call instead for those goals.

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

set_voice_bypassA
Idempotent

开启原声旁路或关闭旁路使用 RVC;保留引擎启停状态,不改变 Windows 音频路由。

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=false, idempotentHint=true, destructiveHint=false). The description adds genuinely non-obvious side-effect context: the engine start/stop state is preserved and Windows audio routing is untouched. That is real behavioral value beyond structured fields.

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

Conciseness4/5

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

A single dense sentence with the action front-loaded and the two constraints (engine state, routing) appended. No filler, though the semicolon-clause structure is slightly packed.

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

Completeness4/5

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

An output schema exists, so return values need not be described. Given it is a non-destructive, idempotent toggle whose side effects and state preservation are disclosed, the definition 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.

Parameters4/5

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

Schema coverage is 0% and the single boolean is documented only as 'Enabled'. The description compensates by defining the polarity semantically: true = original-voice bypass, false = use RVC. That maps the boolean to real behavior, which the schema alone does not.

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

Purpose4/5

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

States a specific verb+resource ('set voice bypass') and explains the two directions: enabling routes the original voice through, disabling routes through RVC voice conversion. This distinguishes it from the audio/model siblings, though it doesn't name a specific alternative tool.

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

Usage Guidelines3/5

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

The two-state behavior implies when each mode applies, but there is no explicit when-to-use guidance versus siblings like start_voice_audio or select_voice_model, and no prerequisites stated. Usage must be inferred.

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

set_voice_index_ratioA
Idempotent

将当前角色检索比例设为 0–1;没有索引文件时只允许 0。

ParametersJSON Schema
NameRequiredDescriptionDefault
ratioYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this is a non-readonly, idempotent, non-destructive write, and the description is consistent with that (idempotent 'set', no destruction). It adds one behavioral constraint (the 0-only case without an index file) but does not explain persistence, latency, what the ratio actually affects, or side effects on voice behavior. Adds some value beyond annotations but not rich context.

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

Conciseness5/5

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

A single front-loaded clause carries the action and its constraint with zero filler. Every element earns its place and the key rule is stated before the edge case.

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

Completeness3/5

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

With an output schema present, the description need not explain return values, and it does supply the value constraint. But it gives no context on what the retrieval ratio governs, why it is bounded at 1, or how it interacts with the voice/index subsystem, leaving meaningful gaps for a mutation tool.

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

Parameters4/5

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

Schema description coverage is 0% and the single 'ratio' parameter has no schema-level documentation, so the description carries the burden. It compensates by stating the valid range (0–1) and a conditional validity rule tied to the presence of an index file, which is genuine semantic content. It still doesn't define the unit or the underlying meaning of the ratio, so it is good but not complete.

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

Purpose4/5

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

States a specific verb (set) and resource (the current character retrieval ratio) with a clear value range of 0–1, so an agent knows exactly what the tool configures. It does not distinguish itself from any sibling, but the siblings cover unrelated operations (pitch, bypass, model selection), so differentiation is implicit rather than stated.

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

Usage Guidelines3/5

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

Provides a real conditional rule — when no index file exists only 0 is permitted — which is meaningful when-to-use guidance for the value. However it offers no comparison to alternatives and no broader context on when this setting should be changed versus left alone, leaving usage largely implied.

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

set_voice_pitchA
Idempotent

将当前 RVC 角色的音高偏移设置为 -24 至 24 个半音;是绝对设置,不是累加。

ParametersJSON Schema
NameRequiredDescriptionDefault
semitonesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false. The description's 'absolute, not cumulative' note reinforces idempotency and is genuinely useful, but it says nothing about out-of-range handling (error vs. clamp) or whether the change applies live to running audio.

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

Conciseness5/5

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

One compact sentence separated by a semicolon: the core action and range come first, the absolute-vs-cumulative clarification second. No filler.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the sole parameter's range and semantics are covered. The only meaningful omission is what happens when a value outside -24..24 is supplied.

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

Parameters4/5

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

Schema coverage is 0% and the single required parameter is undocumented in the schema, so the description must carry the burden. It supplies the unit (semitones) and the valid range (-24 to 24), which is exactly what's needed; only the out-of-range behavior remains unspecified.

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

Purpose5/5

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

States a precise verb (set) plus the exact resource (the current RVC character's pitch offset) and its valid domain (-24 to 24 semitones). No sibling (set_voice_index_ratio, set_voice_bypass, etc.) could be confused with this operation.

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

Usage Guidelines3/5

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

Usage is implied by the imperative 'set' against a clearly scoped resource, and the note that it is absolute rather than cumulative helps disambiguate behavior. However, it never states when to call this versus other voice-setting siblings or any preconditions (e.g., a model must be selected).

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

start_voice_audioA
Idempotent

请求引擎读取已配置的 CABLE Output 并播放到已配置输出。需要模型及完整路由配置;结果仅确认配置。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (non-readonly, idempotent, non-destructive), so the bar is lower. The description still adds real behavioral value by disclosing that the result merely confirms configuration rather than verifying audible playback, and that CABLE Output must be pre-configured.

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

Conciseness4/5

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

Two short sentences with the action stated first and the prerequisite/caveat second; no filler. Slight redundancy in repeating '已配置' for both input and output, but otherwise tight.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description's note that the result only confirms configuration is a helpful complement. What remains missing is the sequencing relative to sibling tools (model selection, routing setup), but for a zero-parameter start call the coverage is largely sufficient.

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

Parameters4/5

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

With zero parameters the baseline is 4; the schema has nothing to document. The description usefully notes that the required inputs (model and routing) are not passed here but must already be configured elsewhere, which is meaningful context given the empty schema.

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

Purpose4/5

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

States a specific verb (start/play) plus the resource (the voice audio engine reading CABLE Output and playing to the configured output), which is clear enough to distinguish from the inverse sibling pause_voice_audio. It stops short of naming siblings, but the action is unambiguous.

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

Usage Guidelines3/5

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

It gives a prerequisite ('needs a model and full routing configuration'), which is useful context for when the call will succeed, but it never states when to prefer this over pause_voice_audio or what to do first (e.g., select_voice_model). Usage is implied rather than spelled out.

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.

  1. 9 tool updatesv0.3.1
    • First observedget_voice_status
    • First observedlist_local_models
    • First observedlist_voice_models
    • First observedpause_voice_audio
    • First observedselect_voice_model
    • First observedset_voice_bypass
    • First observedset_voice_index_ratio
    • First observedset_voice_pitch
    • First observedstart_voice_audio

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target distinct actions (select, set pitch/index/bypass, start/pause, status). The only potential confusion is between list_local_models (disk files) and list_voice_models (imported engine slots), but the descriptions explicitly clarify the difference.

Naming Consistency5/5

Every tool follows a clean verb_noun snake_case pattern (list_*, select_voice_model, set_voice_*, start/pause_voice_audio, get_voice_status) with the 'voice' domain term applied consistently.

Tool Count5/5

Nine tools is well-scoped for an RVC voice-bridge controller, covering listing, model selection, parameter configuration, audio start/pause, and status without redundancy.

Completeness4/5

The core lifecycle (list → select → configure → start/pause → status) is covered. Minor gaps exist: there is no explicit resume-from-pause or model import operation, though the bypass+start workaround mitigates these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to control Neural DSP Quad Cortex devices, including preset recall, block parameter editing, and device diagnostics through conversational commands.
    -