MCP
Connect MCP clients to local transcription and Broadcast.
Setup
Works with any MCP client that supports stdio servers. Install and activate edgespeak-cli first, then register EdgeSpeak — for Claude Code:
claude mcp add edgespeak -- edgespeak-cli mcp
Transports
stdio is recommended: app open → reuse the app's warm models through the local gateway; app closed → start the bundled local engine and download missing models on demand. HTTP /mcp is the alternative for a running app and uses the same Bearer key as the gateway.
edgespeak-cli mcp # stdio POST http://127.0.0.1:1117/mcp # HTTP (desktop app running)
Tools
Nine tools: six are read-only; voice creation, deletion, and Broadcast only modify managed local files. Tool identifiers keep the developer-facing speech terminology even though the product feature is called Broadcast.
edgespeak_transcribe_file required: path (absolute)
optional: model, timestamps (none|word|segment),
min_chars, max_chars, start_margin, end_margin
edgespeak_transcribe required: audio_base64 (decoded ≤ 50MB)
optional: same as transcribe_file
edgespeak_align required: text + exactly one of path | audio_base64
optional: protected_terms
edgespeak_segment_sentences required: text or segments[]
optional: threshold (default 0.35), min_chars, max_chars,
start_margin, end_margin
edgespeak_list_models no parameters → {models: [{id, owned_by, locality}]}
edgespeak_list_voices no parameters → {voices: [...]}
edgespeak_add_voice required: audio_path (absolute), ref_text, name,
consent=true
optional: language, speaker_description
edgespeak_delete_voice required: voice_id (user:<uuid>)
built-in voices cannot be deleted
edgespeak_generate_speech required: model, input, voice
models: omnivoice, voxcpm2, qwen3-tts-0.6b-base,
qwen3-tts-1.7b-voice-design
optional: instructions, style_instruction, speed, language, seed,
guidance_scale, inference_steps, retry_badcase
qwen3-tts-1.7b-voice-design requires instructions
with voice=builtin:auto
output: managed local WAV artifactResults
Text results stay inline up to 2000 characters; longer output spills to a local artifact with an inline preview. Broadcast always returns a managed local WAV artifact path plus generation diagnostics.
≤ 2000 chars → { "metadata": …, "result": …, "truncated": false }
> 2000 chars → { "metadata": …, "preview": { "head": …, "tail": … },
"artifact_path": …, "artifact_json_path": …, "truncated": true }
Broadcast → { "artifact_path": …, "format": "wav", "sample_rate": …,
"duration": …, "seed_used": …, "warnings": […] }Privacy
Same local-first rule as everything else: source audio, cloned voices, generated Broadcast audio, and transcripts stay on this device and are never uploaded.