MCP

Connect MCP clients to local transcription.

Available now — MCP ships with edgespeak-cli over stdio. When the desktop app is running, the local gateway also serves MCP 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

App open → the server reuses the app's loaded model through the local gateway; app closed → it starts the bundled local engine itself. While the desktop app is running, the gateway also serves MCP over HTTP with the same Bearer key.

edgespeak-cli mcp                   # stdio
POST http://127.0.0.1:1117/mcp      # HTTP (desktop app running)

Tools

Five read-only tools. A missing local model returns a tool error with the stable codes model_downloading or model_not_downloaded.

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

Results

Tool results stay inline up to 2000 characters; longer output spills to a local artifact file with an inline preview.

≤ 2000 chars  →  { "metadata": …, "result": …, "truncated": false }
> 2000 chars  →  { "metadata": …, "preview": { "head": …, "tail": … },
                   "artifact_path": …, "artifact_json_path": …, "truncated": true }

Privacy

Same local-first rule as everything else: audio is processed on your device and never uploaded.