MCP Setup
Connect MCP clients to local speech, speakers, and model generation.
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 mcpTransports
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, served by the running desktop app and by the headless service, and uses the same Bearer key as that gateway.
edgespeak-cli mcp # stdio
POST http://127.0.0.1:1117/mcp # HTTP (desktop app running)
POST http://127.0.0.1:1118/mcp # HTTP (edgespeak-cli serve)Tools
Eleven tools: eight 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_diarize_file required: path (absolute)
optional: num_speakers (1..32)
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_create_response required: model, and input or images
optional: max_output_tokens, temperature, reasoning
images: at most 4; decoded total ≤ 20MB
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_create_speech required: model, input, voice
models: omnivoice, qwen3-tts-base, qwen3-tts-1.7b-base,
qwen3-tts-0.6b-custom-voice,
qwen3-tts-1.7b-custom-voice, qwen3-tts-voice-design
optional: instructions, style_instruction, speed, language, seed,
guidance_scale, inference_steps, retry_badcase
qwen3-tts-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
Speech workflows and installed local models keep source audio, voices, generated audio, transcripts, prompts, and images on this device. Selecting a configured remote model sends that model only the request made to it.
Generate with a local model
Start the desktop app, download and load a model, then use Responses, Chat Completions, the CLI, or MCP. Installed local models keep prompts and images on this device.
edgespeak_create_response
{
"model": "Qwen/Qwen3.5-4B",
"input": "Describe the attached image",
"images": [{ "mime_type": "image/png", "data_base64": "<base64>" }]
}