MCP

Connect MCP clients to local transcription and Broadcast.

Available now — nine MCP tools ship with edgespeak-cli over stdio and work without the desktop app. When the app is running, the local gateway also serves the same tools over HTTP.

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 artifact

Results

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.