Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENAI_API_KEYNoAPI key for OpenAI (required if using OpenAI)
ELEVENLABS_API_KEYNoAPI key for ElevenLabs (required if using ElevenLabs)
LANGLEARN_TTS_MODELNoModel name (e.g., eleven_v3, tts-1, tts-1-hd)
LANGLEARN_TTS_PROVIDERNoProvider to use: elevenlabs, polly, or openai
LANGLEARN_TTS_OUTPUT_DIRNoOutput directory for audio files (default: ~/langlearn-audio)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
synthesizeA

Synthesize text to an MP3 audio file.

Args: text: The text to convert to speech. With ElevenLabs eleven_v3, you can embed audio tags in square brackets anywhere in the text to control delivery — e.g. [tired], [excited], [whisper], [sad], [sigh], [laughs], [dramatic tone]. Tags are free-form; the model interprets them as performance cues. Combine with punctuation (ellipsis for pauses, ! for emphasis) for best results. Tags only work with ElevenLabs eleven_v3 model. voice: Voice name. Default: provider's default voice (currently matilda for ElevenLabs, joanna for Polly, nova for OpenAI). If language is provided without voice, a suitable default voice for that language is selected automatically. language: ISO 639-1 language code (e.g. 'de', 'ko', 'fr'). Enables language-aware voice selection and validation. With Polly, validates voice-language compatibility. With ElevenLabs/OpenAI, passed through (voices are multilingual). rate: Speech rate as percentage (90 = 90% speed, good for language learners). Defaults to 90. ElevenLabs ignores rate; use audio tags like [rushed] or [drawn out] instead. auto_play: Open the file in the default audio player after synthesis. Defaults to true. output_path: Full path for the output file. If not provided, a file is auto-generated in output_dir. output_dir: Directory for output. Defaults to TTS_OUTPUT_DIR env var or ~/langlearn-audio/. stability: ElevenLabs voice stability (0.0-1.0). Ignored by other providers. Defaults to provider default. similarity: ElevenLabs voice similarity boost (0.0-1.0). Ignored by other providers. Defaults to provider default. style: ElevenLabs voice style/expressiveness (0.0-1.0). Ignored by other providers. Defaults to provider default. speaker_boost: ElevenLabs speaker boost toggle. Ignored by other providers. Defaults to provider default.

Returns: JSON string with path, text, voice, and language fields.

synthesize_batchA

Synthesize multiple texts to MP3 files.

Args: texts: List of texts to synthesize. With ElevenLabs eleven_v3, embed audio tags like [tired], [excited], [whisper] in text. voice: Voice name for all texts. Default: provider's default voice (currently matilda for ElevenLabs, joanna for Polly, nova for OpenAI). If language is provided without voice, auto-selects. language: ISO 639-1 language code (e.g. 'de', 'ko'). rate: Speech rate as percentage. Defaults to 90. merge: If true, produce one merged file instead of separate files per text. Defaults to false. pause_ms: Pause between segments in milliseconds when merging. Defaults to 500. auto_play: Open the file(s) in the default audio player after synthesis. Defaults to true. output_dir: Directory for output files. Defaults to TTS_OUTPUT_DIR env var or ~/langlearn-audio/. stability: ElevenLabs voice stability (0.0-1.0). similarity: ElevenLabs voice similarity boost (0.0-1.0). style: ElevenLabs voice style/expressiveness (0.0-1.0). speaker_boost: ElevenLabs speaker boost toggle.

Returns: JSON string with list of results, each containing path, text, voice, and language fields.

synthesize_pairA

Synthesize a pair of texts and stitch them into one MP3.

Creates [text1 audio] [pause] [text2 audio]. Use for language learning pairs like "strong" (English) + "stark" (German).

Args: text1: First text (typically English). With ElevenLabs eleven_v3, embed audio tags like [tired], [excited], [whisper] in text. text2: Second text (typically target language). Same audio tag support as text1. voice1: Voice for text1. Defaults to provider's default voice. If lang1 is provided without voice1, auto-selects. voice2: Voice for text2. Defaults to provider's default voice. If lang2 is provided without voice2, auto-selects. lang1: ISO 639-1 language code for text1 (e.g. 'en'). lang2: ISO 639-1 language code for text2 (e.g. 'de'). rate: Speech rate as percentage. Defaults to 90. pause_ms: Pause between the two texts in milliseconds. Defaults to 500. auto_play: Play the audio after synthesis. Defaults to true. output_path: Full path for the output file. output_dir: Directory for output. Defaults to TTS_OUTPUT_DIR env var or ~/langlearn-audio/. stability: ElevenLabs voice stability (0.0-1.0). similarity: ElevenLabs voice similarity boost (0.0-1.0). style: ElevenLabs voice style/expressiveness (0.0-1.0). speaker_boost: ElevenLabs speaker boost toggle.

Returns: JSON string with path, text, voice, and language fields.

synthesize_pair_batchA

Synthesize multiple text pairs and stitch each into MP3 files.

Each pair becomes [text1 audio] [pause] [text2 audio]. Use for vocabulary lists like [["strong","stark"], ["house","Haus"]].

Args: pairs: List of [text1, text2] pairs. With ElevenLabs eleven_v3, texts can include audio tags like [tired], [excited]. voice1: Voice for all first texts. Defaults to provider's default. If lang1 is provided without voice1, auto-selects. voice2: Voice for all second texts. Defaults to provider's default. If lang2 is provided without voice2, auto-selects. lang1: ISO 639-1 language code for first texts (e.g. 'en'). lang2: ISO 639-1 language code for second texts (e.g. 'de'). rate: Speech rate as percentage. Defaults to 90. pause_ms: Pause between pair segments in milliseconds. Defaults to 500. merge: If true, produce one merged file instead of separate files per pair. Defaults to false. auto_play: Play the audio after synthesis. Defaults to true. output_dir: Directory for output files. Defaults to TTS_OUTPUT_DIR env var or ~/langlearn-audio/. stability: ElevenLabs voice stability (0.0-1.0). similarity: ElevenLabs voice similarity boost (0.0-1.0). style: ElevenLabs voice style/expressiveness (0.0-1.0). speaker_boost: ElevenLabs speaker boost toggle.

Returns: JSON string with list of results.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: single text, batch texts, a single pair, and multiple pairs. The descriptions explicitly differentiate use cases, making confusion unlikely.

Naming Consistency5/5

All tools follow the same verb-based pattern, starting with 'synthesize' and adding descriptive suffixes (batch, pair, pair_batch). The naming is fully consistent and predictable.

Tool Count5/5

Four tools provide a focused yet complete range of synthesis options, from single to batch to pair-based. This is well-scoped for a TTS server without being bloated.

Completeness4/5

The toolset covers single, batch, pair, and pair-batch synthesis comprehensively. The only notable omission is a way to discover available voices or languages without synthesizing, which would aid agents in choosing parameters.

Maintenance

ActivityMaintained
ResponsivenessNo issues