Skip to main content
Glama

Daisys MCP Server

by daisys-ai
http_tts.py1.75 kB
import os import io from typing import Optional from daisys import DaisysAPI # type: ignore from daisys.v1.speak import SimpleProsody, DaisysTakeGenerateError # type: ignore from daisys_mcp.utils import throw_mcp_error disable_audio_playback = os.getenv("DISABLE_AUDIO_PLAYBACK", "false").lower() == "true" email = os.environ.get("DAISYS_EMAIL") password = os.environ.get("DAISYS_PASSWORD") def text_to_speech_http(text: str, voice_id: Optional[str] = None): """ Generate and play audio from text using DaisysAPI's HTTP protocol with sounddevice. """ if not email or not password: throw_mcp_error( "DAISYS_EMAIL and DAISYS_PASSWORD environment variables must be set." ) if text in ["None", "", None]: throw_mcp_error("Text for TTS cannot be empty.") with DaisysAPI("speak", email=email, password=password) as speak: try: take = speak.generate_take( voice_id=voice_id, text=text, prosody=SimpleProsody(pace=0, pitch=0, expression=5), ) except DaisysTakeGenerateError as e: raise RuntimeError(f"Error generating take: {str(e)}") audio_mp3 = speak.get_take_audio(take.take_id, format="mp3") if not disable_audio_playback: try: import sounddevice as sd # type: ignore import soundfile as sf # type: ignore except ModuleNotFoundError: message = ( "`uv pip install sounddevice soundfile` to enable audio playback." ) raise ValueError(message) sd.play(*sf.read(io.BytesIO(audio_mp3))) sd.wait() return audio_mp3

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/daisys-ai/daisys-mcp'

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