Gandr TTS
Officialgandr-mcp
The official Gandr MCP server, text to speech inside any MCP-compatible agent (Claude Desktop, Cursor, and friends).
Tools
Tool | What it does |
| Render text to speech (WAV, base64). Voice, language, sample rate 8000-48000, pitch and pacing dials. |
| The six available voices. |
| The 23 supported languages and their codes. |
| Tokens used by the configured key. One token is one character. |
Related MCP server: MCP Voice Soundboard
Install
pip install gandr-mcpClaude Desktop (add to claude_desktop_config.json):
{
"mcpServers": {
"gandr": {
"command": "gandr-mcp",
"env": {
"GANDR_API_KEY": "gnd_..."
}
}
}
}Get a key at gandr.ai. Docs: gandr.ai/docs.
mcp-name: io.github.Gandr-AI/gandr-mcp
Available Tools
4 toolsget_usageA
Characters used vs quota for the configured API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosing behavior. It indicates that the tool is a read-only status check (characters used vs quota), but it does not specify details such as whether the data is current, cached, or if any external calls are made. It adds minimal context beyond the obvious.
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, concise sentence that is front-loaded with the key information ('Characters used vs quota'). It uses no filler words and every word contributes to the meaning.
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 the tool has no parameters and an output schema exists, the description is largely complete. However, it could provide more context about what specific quotas or usage metrics are included (e.g., daily vs total, whether it's the current key), but these details are likely captured in the output schema.
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 the description has no need to explain parameter semantics. The baseline for tools with no parameters is 4, and the description does not introduce any param-related confusion.
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 reports 'Characters used vs quota' for the configured API key, which is a specific and distinct purpose compared to sibling tools (synthesize, list_voices, list_languages). It uses a clear verb ('used') and resource ('characters' and 'quota') to convey its function.
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 implies that this tool should be used to check API key usage and quota status, but it does not explicitly state when to use it or contrast it with alternatives. There is no mention of prerequisites or when not to use it, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_languagesA
List the language codes synthesize accepts, with their names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It accurately describes a read-only listing operation, but does not go beyond the basic purpose to disclose additional behavioral traits such as output structure or rate limits. Given the tool's simplicity, this is adequate but not enriched.
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, concise sentence that front-loads the action (List), the resource (language codes), and the context (that synthesize accepts), with no wasted words.
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 tool with no parameters and an output schema, the description sufficiently explains the tool's purpose and relation to synthesize. There is no missing information needed for an agent to select and invoke it 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 tool has zero parameters, so the description does not need to elaborate on parameter semantics. A baseline score of 4 is appropriate given the absence of 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 clearly states the tool lists language codes accepted by synthesize, including their names, which is a specific and distinct function from sibling tools like list_voices or synthesize.
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 implies the tool is for retrieving language codes for use with synthesize, but it does not explicitly state when to use it over alternatives or provide exclusions. The context is clear but not directly framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_voicesA
List the available Gandr voices with their ids.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only listing operation and adds the detail that IDs are returned. While it does not explicitly state 'this is safe' or 'no side effects,' the verb 'list' strongly implies a non-mutating operation, and there are no hidden behaviors expected.
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, front-loaded sentence that conveys the action, target, and output content without extraneous words. Every word contributes value, making it highly concise and well-structured.
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 list tool with no parameters and an existing output schema, the description is complete. It tells the agent exactly what the tool does and what data to expect, with no gaps requiring additional explanation.
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 the baseline is 4. The description does not need to explain parameter semantics, and the schema coverage is 100% with no undocumented 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 action ('List') and the resource ('available Gandr voices'), and specifies that IDs are included. This distinguishes it from sibling tools like 'synthesize' (which generates speech) and 'list_languages' (which lists languages), making 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 no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or preconditions. However, the name and context ('list_voices' among siblings) imply it is the tool for retrieving available voices, though this is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synthesizeA
Render text to speech. Returns the WAV audio base64-encoded.
voice: one of gandr-ava, gandr-dane, gandr-jenny, gandr-leo, gandr-lewis, gandr-mia. language: a two-letter code, call list_languages for the 23 supported. Any voice can speak any of them. temperature: 0.1-1.2 pitch range (omit for the tuned default). cfg_weight: 0.2-1.0 pacing. sample_rate: 8000-48000.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| voice | No | gandr-ava | |
| language | No | en | |
| cfg_weight | No | ||
| sample_rate | No | ||
| temperature | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output format (WAV base64), parameter ranges and meanings (e.g., 'temperature: 0.1-1.2 pitch range', 'cfg_weight: 0.2-1.0 pacing'), and a key capability ('Any voice can speak any of them'). It lacks details on potential errors, text length limits, or rate limits, but for a generation tool this is solid coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses a compact line-per-parameter format. Every sentence adds value: output format, parameter ranges, cross-reference, and defaults. It is information-dense without fluff, achieving high conciseness.
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 output schema present, return value structure is covered by schema, so description does not need to explain it. It covers all six parameters with meanings and ranges, and gives a cross-reference for languages. It could mention text length limits or error behavior, but for a moderately complex TTS tool, it is largely complete.
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%, so description must compensate. It does: voice options are enumerated, language is explained with a pointer to list_languages, temperature and cfg_weight get non-obvious meanings (pitch range and pacing), and sample_rate range is given. This adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Render text to speech.' It also specifies the output format ('Returns the WAV audio base64-encoded'), and the sibling tools (list_voices, list_languages, get_usage) are distinct supplementary tools, so there is no ambiguity.
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 implies usage for generating speech and even references a sibling tool: 'call list_languages for the 23 supported,' guiding the user on a related dependency. However, it does not explicitly state when NOT to use this tool, but there are no alternative TTS tools among siblings, and the purpose is clear enough.
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.
4 tool updates
v0.1.5- First observed
get_usage - First observed
list_languages - First observed
list_voices - First observed
synthesize
TDQS
Each tool has a clearly distinct purpose: synthesize for TTS, list_voices for voice metadata, list_languages for language metadata, and get_usage for account status. No two tools overlap in function.
Tool names are lowercase with underscores and mostly follow a verb_noun pattern (list_voices, list_languages, get_usage), but synthesize is a bare verb, which is a minor deviation from the pattern.
With four tools, the server is well-scoped: one core operation, two metadata lookups, and one usage check. This is an ideal size for a TTS-focused server.
The tool surface covers the essential lifecycle for text-to-speech: the synthesis action, necessary resource discovery (voices/languages), and account monitoring. There are no obvious gaps or dead ends.
Maintenance
Related MCP Connectors
MCP server for Text-to-Speech
AI voice generation: text-to-speech and voice cloning from any MCP client.
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that converts text into lifelike speech using Microsoft Edge's Text-to-Speech service, supporting customizable voice, rate, volume, and pitch.4MIT
- AlicenseNot gradedqualityDmaintenanceA 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.MIT
- AlicenseAqualityAmaintenanceText-to-speech MCP server that enables AI assistants to read text aloud on the user's computer using Windows SAPI, with no API key or cloud service required.11MIT
- FlicenseAqualityDmaintenanceMCP server for text-to-speech synthesis using Azure Speech Services, supporting 6 languages with high-quality neural voices and smart voice selection.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gandr-AI/gandr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server