Tags: blacktop/mcp-tts
Tags
feat: add TTS provider elicitation with interactive selection Implements a new unified `tts` tool that uses MCP elicitation to let users interactively choose and configure their preferred TTS provider when called by LLM agents. The tool detects available providers based on API keys and system support, then guides users through provider selection and optional voice/model configuration. Key changes: - New `tts` tool with interactive provider selection workflow - Elicitation support for provider-specific settings (voice, model, rate, speed) - Consolidated provider constants and defaults in providers.go - Updated schemas to reference shared voice/model lists - Integration test fixture for elicitation flow - Minor optimizations: fmt.Appendf, min/max, omitempty tags
feat: Add audio file saving support to TTS tools #68 Enables saving TTS audio output to disk with configurable playback behavior. Files are saved with unique timestamped names and format- specific extensions (AIFF for macOS say, MP3 for ElevenLabs/OpenAI, WAV for Google TTS). Configuration via --output-dir flag or MCP_TTS_OUTPUT_DIR env var. Optional --no-play flag skips playback when saving (requires output directory to be set).
Add Windows support for process liveness check Refactor process existence check into platform-specific implementations using build tags. Unix systems use signal 0, Windows uses OpenProcess with PROCESS_QUERY_LIMITED_INFORMATION. Update say_tts schema to recommend system default voice and discourage excessive speech rates.
feat(spec): Add client progress reporting and tool metadata Introduce progressReporter to emit progress notifications when the client supplies a progress token. It polls playback position (250ms), deduplicates percent updates, and is wired into Google and OpenAI TTS playback. Enhance MCP metadata: add service and tool titles, icons, annotations, and rename implementation to mcp-tts with a website URL.
chore(say): Validate TTS voice availability on macOS Add voice detection and caching with IsVoiceInstalled/isLocale helpers and a user-facing VoiceNotInstalledError. Check for installed voices in the say command and return a helpful error if a requested voice is missing. Add unit tests for voice handling, update TTS schema (voice enum/descriptions), and adjust the integration test to use the system default voice.
PreviousNext