transcript-tts
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@transcript-ttsConvert 'Thank you for calling' to an MP3 with a natural voice."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
transcript-tts
A minimal MCP server that converts text/transcripts into
MP3 audio using Microsoft Edge's free neural text-to-speech voices (edge-tts).
No API key, no account, no usage cap — it's an unofficial use of the same TTS service behind
Edge's "Read Aloud" feature.
Tools
text_to_speech(text, voice="en-US-AriaNeural", rate="+0%", volume="+0%", pitch="+0Hz", filename=None)Synthesizestextto an MP3 file. Returns{"audio_path": ..., "voice": ...}. Files are saved to~/tts-output/by default (override withTRANSCRIPT_TTS_OUTPUT_DIR).list_voices(locale_prefix=None)Lists available voices, optionally filtered by locale (e.g."en-US","ja","en-GB").
Related MCP server: Edge TTS MCP
Setup
Requires uv.
git clone https://github.com/ShevinuM/transcript-tts.git
cd transcript-tts
uv syncRegister with Claude Code:
claude mcp add --scope user transcript-tts -- \
/path/to/transcript-tts/.venv/bin/python /path/to/transcript-tts/server.pyOr add it manually to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"transcript-tts": {
"command": "/path/to/transcript-tts/.venv/bin/python",
"args": ["/path/to/transcript-tts/server.py"]
}
}
}Environment variables
TRANSCRIPT_TTS_OUTPUT_DIR— where MP3s are saved (default:~/tts-output)TRANSCRIPT_TTS_VOICE— default voice short name (default:en-US-AriaNeural)
Notes
Requires mcp[cli]>=2.0.0 — the MCP Python SDK renamed FastMCP to MCPServer in its 2.0
release, so this won't work against older mcp SDK versions without adjusting the import in
server.py.
Available Tools
2 toolslist_voicesA
List available Edge TTS voices, optionally filtered by locale prefix (e.g. 'en-US', 'ja').
| Name | Required | Description | Default |
|---|---|---|---|
| locale_prefix | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool lists voices and optionally filters by locale prefix, which implies a read-only, non-destructive operation. It does not disclose error handling or return size, but for a simple listing tool this is adequate 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 a single, front-loaded sentence with no filler. It efficiently communicates the action, resource, and optional filtering behavior, earning its place entirely.
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 tool is simple (one optional parameter, read-only listing) and an output schema exists. The description covers all essential usage context, and the sibling tool name helps situate it within the Edge TTS workflow. No significant 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?
The schema provides only the parameter name and default with no description. The description compensates by explaining that the locale_prefix is an optional filter and gives concrete examples ('en-US', 'ja'), clarifying both the format and the intended usage.
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 ('List') and resource ('available Edge TTS voices'), clearly distinguishing it from the sibling tool text_to_speech, which generates speech. The optional locale prefix filter is also stated, making the tool's 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 implies when to use this tool: to discover available Edge TTS voices with optional locale filtering, which is a prerequisite for selecting a voice for text_to_speech. It does not explicitly mention the alternative, but the purpose makes the distinction clear. No exclusions or prerequisites are stated, but the context is easy to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_speechA
Convert a transcript/text into an MP3 audio recording using Microsoft Edge's free neural TTS voices, saved to disk. Call list_voices first if you want a specific voice/language/accent.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | +0% | |
| text | Yes | ||
| pitch | No | +0Hz | |
| voice | No | en-US-AriaNeural | |
| volume | No | +0% | |
| filename | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It mentions converting to MP3, using Edge's neural voices, and saving to disk, but omits behaviors like file overwriting, return values, error handling, or network dependencies. Some useful context is added, but the behavior is not fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose, and includes the key usage hint about list_voices. Every word earns its place, and there is 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?
The tool is relatively simple, but with 6 parameters, no annotations, and no output schema, the description is only partially complete. It covers the main function and prerequisite, but does not address filename default behavior, return value, or format for rate/pitch/volume. These gaps are notable for a tool with this complexity.
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 the description must compensate. It explains 'text' and 'voice' implicitly ('transcript/text' and 'specific voice/language/accent'), but does not add meaning for rate, pitch, volume, or filename. The description only covers two of six parameters, leaving the others semantically vague.
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 converts text to an MP3 file using Microsoft Edge's TTS voices and saves it to disk. It uses a specific verb ('Convert'), names the resource ('transcript/text'), and the output ('MP3 audio recording'), which distinguishes it from sibling list_voices.
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 instructs users to call list_voices first if they want a specific voice/language/accent, providing clear guidance on when to use this tool versus its sibling. This satisfies the 'alternatives' criterion.
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.
2 tool updates
v0.1.0- First observed
list_voices - First observed
text_to_speech
TDQS
The two tools have clearly distinct purposes: one lists available voices, the other converts text to speech. There is no overlap or ambiguity between them.
Both tool names follow a consistent verb_noun pattern: 'list_voices' and 'text_to_speech'. The naming is predictable and uniform.
With only two tools, the server feels minimal but appropriately scoped for a simple TTS purpose. It is on the lower end of the acceptable range as noted in the calibration guide.
The core workflow is covered: list voices to select one, then synthesize text. Minor gaps like streamed audio or additional output formats could be added, but the essential lifecycle is complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
AI transcription from URLs or files. 119 languages, diarization, SRT/VTT/text export.
Transcribe audio & video to text for AI agents: 100+ languages, speaker labels, webhooks.
Transcribe audio & video: diarization, timed SRT/VTT, podcasts, paste-a-link, whole-feed batch.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides text-to-speech functionality for AI agents using Microsoft Edge's text-to-speech technology, supporting multiple voices, languages, and voice customization.28MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to convert text to speech using Microsoft Edge's Text-to-Speech service with customizable voice options, speech rate, volume, and pitch parameters.MIT
- 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
- AlicenseAqualityBmaintenanceProvides text-to-speech synthesis using Microsoft Edge's free TTS engine, supporting multiple voices, languages, and audio output options (base64 or file).3MIT
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/ShevinuM/transcript-tts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server