Skip to main content
Glama
neosapience

Typecast API MCP Server

by neosapience

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TYPECAST_API_KEYYesYour Typecast API key
TYPECAST_API_HOSTNoThe API host for Typecasthttps://api.typecast.ai
TYPECAST_OUTPUT_DIRNoDirectory where Typecast output will be saved~/Downloads/typecast_output

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_documentationD
get_voicesA

Get a list of available voices for text-to-speech using V2 API

Args:
    model: Optional filter for specific TTS models (ssfm-v21 or ssfm-v30).
    gender: Optional filter for voice gender (male or female).
    age: Optional filter for voice age group (child, teen, young_adult, middle_aged, senior).
    use_cases: Optional filter for voice use case (e.g. 'audiobook', 'narration', 'documentary').
        Pass a single use case string supported by the V2 voices endpoint.

Returns:
    List of available voices with enhanced metadata including gender, age, and use cases.
recommend_voicesA

Recommend voices that match a natural-language text description.

The recommendation API returns only voice_id, voice_name, and score. Call
get_voices or get_voice with the returned IDs when you need metadata such as
supported models, emotions, gender, age, or use cases before making a TTS
request.

Args:
    query: Text description of the desired style, mood, language, use case,
        or content context.
    count: Maximum number of recommendations to return. Must be 1-10.

Returns:
    Recommended voice candidates sorted by relevance score.
get_voiceA

Get detailed information for a specific voice by ID using V2 API

Args:
    voice_id: The voice ID (e.g., 'tc_672c5f5ce59fac2a48faeaee')

Returns:
    Voice information with enhanced metadata including gender, age, use cases, and supported models with emotions.
clone_voiceA

Create a quick-cloned custom voice.

Calls POST /v1/voices/clone with multipart form data. Use the returned
voice_id with text_to_speech, text_to_speech_stream, or
text_to_speech_with_timestamps. Delete temporary cloned voices with
delete_cloned_voice when they are no longer needed.

Args:
    name: Display name for the cloned voice. Must be 1-30 characters.
    audio_file_path: Local WAV or MP3 sample path. Maximum file size is 25 MB.
    model: Voice cloning model. Default: ssfm-v30.
    audio_base64: Base64-encoded WAV or MP3 sample for a remote MCP server.
    audio_filename: Filename with .wav or .mp3 extension for audio_base64.

Returns:
    Dict returned by the Typecast API plus normalized handoff fields:
        voice_id, cloned_voice_id, next_step_voice_id, next_step_model.
delete_cloned_voiceA

Delete a quick-cloned custom voice.

Args:
    voice_id: Cloned voice ID returned by clone_voice. Must start with uc_.

Returns:
    Dict with success=true and the deleted voice_id.
text_to_speechA

Convert text to speech using the specified voice and parameters

Args:
    voice_id: ID of the voice to use
    text: Text to convert to speech
    model: TTS model to use (ssfm-v21 or ssfm-v30, default: ssfm-v30)
    emotion_type: For ssfm-v30: 'preset' for explicit emotion or 'smart' for context-aware inference (default: preset)
    emotion_preset: Emotion preset type. v21: normal/happy/sad/angry. v30: adds whisper/toneup/tonedown (default: normal)
    emotion_intensity: Intensity of the emotion, between 0.0 and 2.0 (default: 1.0)
    previous_text: For smart mode - previous context text for emotion inference
    next_text: For smart mode - next context text for emotion inference
    volume: Audio volume level, between 0 and 200 (default: 100)
    audio_pitch: Audio pitch adjustment, between -12 and 12 (default: 0)
    audio_tempo: Audio playback speed, between 0.5 and 2.0 (default: 1.0)
    audio_format: Audio format, either 'wav' or 'mp3' (default: wav)
    target_lufs: Optional absolute loudness normalization target in LUFS (-70.0 ~ 0.0).
        Mutually exclusive with a custom volume value on this non-streaming endpoint.

Returns:
    Local mode: path to the saved audio file.
    Remote mode: dict with audio_url and expires_in_seconds.
play_audioB

Play the audio file at the specified path

Args:
    file_path: Path to the audio file to play

Returns:
    Status message
text_to_speech_streamA

Convert text to speech via the streaming endpoint and save the result.

Calls POST /v1/text-to-speech/stream which returns chunked audio data
in real time. The chunks are concatenated and saved as a single file.

Note: the streaming endpoint does not accept volume, but supports
target_lufs for absolute loudness normalization.

Args:
    voice_id: ID of the voice to use
    text: Text to convert to speech
    model: TTS model (ssfm-v21 or ssfm-v30, default: ssfm-v30)
    emotion_type: For ssfm-v30: 'preset' or 'smart' (default: preset)
    emotion_preset: Emotion preset name (default: normal)
    emotion_intensity: Emotion intensity, 0.0 ~ 2.0 (default: 1.0)
    previous_text: For smart mode - previous context text
    next_text: For smart mode - next context text
    audio_pitch: -12 ~ 12 (default: 0)
    audio_tempo: 0.5 ~ 2.0 (default: 1.0)
    audio_format: 'wav' or 'mp3' (default: wav)
    target_lufs: Optional absolute loudness normalization target in LUFS (-70.0 ~ 0.0)

Returns:
    Local mode: path to the saved audio file.
    Remote mode: dict with audio_url and expires_in_seconds.
get_my_subscriptionA

Get the authenticated user's subscription information.

Calls GET /v1/users/me/subscription and returns the plan tier, credits
(used / total), and concurrency limit.

Returns:
    Dict with this shape:
        {
            "plan": "free" | "lite" | "plus" | "custom",
            "credits": {"plan_credits": int, "used_credits": int},
            "limits": {"concurrency_limit": int}
        }
text_to_speech_with_timestampsA

Convert text to speech and return timestamp alignment for caption generation.

Calls POST /v1/text-to-speech/with-timestamps. Saves the audio file and
returns the file path together with the raw alignment payload (words and
characters arrays as returned by the server).

For non-whitespace languages such as jpn or zho, pass granularity='char'
or 'both'. With 'word' on those languages the server collapses the entire
sentence into a single word segment.

Args:
    voice_id: ID of the voice to use
    text: Text to convert to speech
    model: TTS model (default: ssfm-v30)
    granularity: 'word', 'char', or 'both'. None lets the server use its
        default (word). For jpn/zho prefer 'char' or 'both'.
    emotion_type, emotion_preset, emotion_intensity, previous_text,
    next_text, language, volume, audio_pitch, audio_tempo, audio_format:
        same shape as text_to_speech.

Returns:
    Dict:
        - local mode: 'audio_path' — path to the saved audio file
        - remote mode: 'audio_url' and 'expires_in_seconds'
        - 'words': list | None — word-level alignment when available
        - 'characters': list | None — character-level alignment when available
        - 'raw': dict — full server response with the audio bytes stripped

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/neosapience/typecast-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server