VoiceHue text to speech
Server Details
Remote text-to-speech MCP server with text_to_speech and list_voices tools. Free plan.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools serve clearly separate roles: list_voices is a discovery/metadata call and text_to_speech is the synthesis action. The description even states the required order (list_voices first to get a valid voice id), so an agent cannot mistake one for the other.
Both names follow the same snake_case verb_noun convention (list_voices, text_to_speech) and use nouns that match the domain vocabulary. No mixed casing or inconsistent verb styles.
Two tools is on the thin side, but for a focused text-to-speech service this is essentially the full workflow: discover a voice, then synthesize. Nothing extraneous is included, though a slightly richer surface (e.g. usage/quota or voice filtering) would round it out.
The core lifecycle of listing voices and generating audio (with format choice and a summary of characters/duration) is covered, so there are no dead ends for the primary use case. Minor gaps exist, such as no way to check remaining quota/limits or to handle text beyond the 1,200-character cap.
Available Tools
2 toolslist_voicesList voicesARead-onlyIdempotentInspect
List the public VoiceHue voices a key can use: id, name, language and gender. Pass a voice id to text_to_speech.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Optional filter, for example en or zh. Matches the start of the language code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds value by specifying that only 'public' voices accessible to the key are returned and by enumerating the returned fields, though it says nothing about result size, ordering, or pagination.
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 short sentences with zero filler; the capability and returned fields come first, and the follow-up action is placed at the end where it is most actionable.
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 no output schema, the description usefully compensates by naming the four returned fields, and the sole parameter is covered by the schema. It is nearly complete for a simple read tool, missing only ordering/pagination expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'language' parameter is fully documented in the schema, including prefix-matching behavior and examples. The description adds nothing about the filter, 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 and resource ('List the public VoiceHue voices a key can use') and names the exact fields returned (id, name, language, gender). It also distinguishes itself from its only sibling by telling the agent the output feeds 'text_to_speech'.
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?
'Pass a voice id to text_to_speech' makes the workflow role of this tool explicit — it is the discovery step before synthesis. It does not state any when-not conditions or edge cases (e.g., what to do with an empty list), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_speechText to speechAInspect
Convert text to spoken audio with a VoiceHue voice. Returns the audio (MP3 by default, or WAV) and a one-line summary with the voice, number of characters and duration. Up to 1,200 characters per call. Use list_voices first to get a valid voice id.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to speak. | |
| speed | No | Speaking speed, 0.5 to 2. | |
| voice | Yes | A voice id from list_voices. | |
| format | No | Audio format. MP3 is the default. | mp3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false), so the description's job is to add context. It does useful work by describing the return payload (audio file plus a one-line summary with voice, characters, duration) and the character ceiling, but it says nothing about the non-idempotent nature, latency, or whether repeated calls with the same input are billed/regenerated — a real gap for an openWorld, non-idempotent generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action, then the return value, then the limit, then the prerequisite — the ordering matches how an agent needs the information. Every sentence carries non-redundant content; nothing to cut.
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?
Absent an output schema, the description takes responsibility for describing the return value and does so concretely. It also covers the required-voice prerequisite and size limit; only error behavior and the implications of the non-idempotent annotation are left unaddressed, which is a minor gap for a four-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, and the description adds no semantics beyond it — the MP3 default and 1,200-character limit are both restated from the schema, and the speed parameter is not mentioned at all. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Convert text to spoken audio with a VoiceHue voice") and immediately distinguishes it from the only sibling, list_voices, both in purpose and in prerequisite ordering. An agent can tell exactly which of the two tools produces audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite: "Use list_voices first to get a valid voice id," which is the main failure mode for this tool, plus a hard constraint of 1,200 characters per call. It stops short of stating when not to use it (e.g. no batching / long text handling), so it is clear context rather than a full usage rubric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
list_voices - First observed
text_to_speech
Related MCP Connectors
Hosted text-to-speech MCP server: 66 voices in 9 languages, long-form narration, podcasts.
MCP server for Text-to-Speech
AI voice generation: text-to-speech and voice cloning from any MCP client.
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
Related MCP Servers
- AlicenseAqualityBmaintenanceText to speech in 149 languages: MP3 links from any assistant. Free without an account. 2,253 voices; PRO adds HD voices, WAV, dialogue with a voice per speaker, Script mode timing and transcription.747 npmMIT
- FlicenseNot gradedqualityBmaintenanceA low-latency text-to-speech MCP server that uses local Kokoro GGUF inference via TTS.cpp, providing say, get_voices, and get_status tools for AI agents to synthesize speech and manage playback queues.-
- AlicenseNot gradedqualityBmaintenanceA lightweight MCP server that converts text to speech using MiniMax TTS API, exposing a generate_speech tool for AI to speak with customizable emotion, speed, and language.MIT
- AlicenseNot gradedqualityAmaintenanceA text-to-speech MCP server with 48 voices across 9 languages, supporting emotion spans, SFX tags, and multi-speaker dialogue. Deployable via a single npx command with built-in guardrails and swappable backends.26 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.