MCP Setup

Connect MCP clients to local speech, speakers, and model generation.

Eleven local MCP tools are available, including text and image generation with installed language models.

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, 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 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

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>" }]
}