Skip to main content
Glama

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) Synthesizes text to an MP3 file. Returns {"audio_path": ..., "voice": ...}. Files are saved to ~/tts-output/ by default (override with TRANSCRIPT_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 sync

Register with Claude Code:

claude mcp add --scope user transcript-tts -- \
  /path/to/transcript-tts/.venv/bin/python /path/to/transcript-tts/server.py

Or 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 tools
list_voicesA

List available Edge TTS voices, optionally filtered by locale prefix (e.g. 'en-US', 'ja').

ParametersJSON Schema
NameRequiredDescriptionDefault
locale_prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
rateNo+0%
textYes
pitchNo+0Hz
voiceNoen-US-AriaNeural
volumeNo+0%
filenameNo

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 2 tool updatesv0.1.0
    • First observedlist_voices
    • First observedtext_to_speech

TDQS

A4.2/5.0
Disambiguation5/5

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.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern: 'list_voices' and 'text_to_speech'. The naming is predictable and uniform.

Tool Count3/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A 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.
    2
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that converts text into lifelike speech using Microsoft Edge's Text-to-Speech service, supporting customizable voice, rate, volume, and pitch.
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides text-to-speech synthesis using Microsoft Edge's free TTS engine, supporting multiple voices, languages, and audio output options (base64 or file).
    3
    MIT

Latest Blog Posts

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