SpeechWeave vs Mac Voice MCP

A side-by-side look at the SpeechWeave and Mac Voice MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

SpeechWeave logoSpeechWeaveSpeech-to-Text · Local subprocess (stdio)Transcribe local files and URLs with SpeechWeave's OpenAI-compatible API.59GoodAuth: not declaredMac Voice MCP logoMac Voice MCPSpeech-to-Text · Local subprocess (stdio)Talk with your AI assistant out loud on a Mac, with on-device speech recognition (whisper.cpp).60GoodAuth: not declared

Verdict: choose SpeechWeave for speech-to-text work as a local process; choose Mac Voice MCP for speech-to-text as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

SpeechWeave logoChoose SpeechWeave when

  • You need dedicated capabilities in the Speech-to-Text domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like transcribe_file, transcribe_url, start_job_file.
Explore SpeechWeave

Mac Voice MCP logoChoose Mac Voice MCP when

  • You need dedicated capabilities in the Speech-to-Text domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like speak_and_listen, voice_setup.
Explore Mac Voice MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecSpeechWeave logoSpeechWeaveMac Voice MCP logoMac Voice MCP
CategorySpeech-to-TextSpeech-to-Text
Quality signal59/100 · Good60/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars00
Directory activity 1 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools82

Tools & capabilities

SpeechWeave tools 8

  • transcribe_fileUpload a local audio/video file and wait until transcription finishes. Prefer for short/medium clips when you need the transcript in this turn. Pass an absolute filesystem path (never raw binary). Set task='translate' to get an English translation instead of a same-language transcript. On wait timeout, returns job_id, then call get_job_status. For long audio you plan to poll yourself, use start_job_file instead.
  • transcribe_urlStart transcription from a public HTTPS URL and wait until it finishes. Prefer for short/medium media when you need the transcript in this turn. Set task='translate' to get an English translation instead of a same-language transcript. On wait timeout, returns job_id, then call get_job_status. For long audio you plan to poll yourself, use start_job_url instead.
  • start_job_fileUpload a local audio/video file and return a job id immediately without waiting. Use for long recordings or when you will poll later with get_job_status. Pass an absolute filesystem path. Set task='translate' for an English translation instead of a same-language transcript.
  • start_job_urlCreate a transcription job from a public HTTPS URL and return a job id immediately. Use for long media or deferred workflows; poll with get_job_status until completed, failed, or cancelled. Set task='translate' for an English translation instead of a same-language transcript.
  • get_job_statusFetch the current status of a transcription job (and transcript when completed). Poll until status is completed, failed, or cancelled. Pass response_format ('srt', 'vtt', or 'verbose_json') on a completed job to fetch it re-formatted.
  • cancel_jobCancel a queued or processing transcription job. Fails if the job is already terminal.
  • get_limitsFetch upload size ceilings for the calling API key (GET /v1/limits). Returns max_input_bytes, sync_max_bytes, and proxy_max_bytes plus MB equivalents. Call before transcribe_file or start_job_file when file size is large.
  • fetch_docReturn public SpeechWeave documentation for a slug. Use slug 'list' for the catalog. Bundled pages include quickstart, mcp, models, billing, and data_retention. Use slug 'api' for a live OpenAPI overview, or 'api/<operation_slug>' for one endpoint (e.g. api/get_v1_limits).

Mac Voice MCP tools 2

  • speak_and_listenSay something out loud to the user and hear their spoken reply. Speaks text_to_speak through the computer's speakers, then listens like a conversation turn — it waits for the user to start talking and stops when they finish — and returns an on-device transcript of what they said. Write text_to_speak for the ear, not the screen: - 1–3 short sentences, under ~40 words; lead with the outcome, then one question. - Plain words only: no markdown, bullets, emoji, code, file paths, URLs, stack traces or tables. - Describe code instead of reading it ("I added a retry to the upload function"), say file names not paths ("in index.ts"), round numbers ("about two hundred ms"), spell out symbols. - Ask one question at a time, answerable in a few words ("Should I deploy it — yes or no?"). - Put the details (diffs, logs, links) in your normal on-screen reply, and say so out loud. - Tool output (Bash stdout, file writes) is NOT the on-screen reply. Only your own assistant message text renders. - A spoken turn with no assistant message text shows the user nothing — never skip the on-screen reply. Good: "The build passed and all tests are green. Want me to open the pull request?" Bad: "## Results\n- `npm test` ✅ 42/42\n- see /Users/x/repo/src/index.ts:120" Once the user is talking with you by voice, keep the conversation in voice: answer each transcript with another speak_and_listen call (not a text reply) until they say stop or start typing. To end voice mode, or for a one-way announcement, pass listen: false: it returns at once and speaks while you work. A reply of "(No speech detected …)" means the user did not answer — never treat it as consent. Ask once more; if still nothing, stop and say on screen that voice mode is paused and they can type to carry on (not speak: the mic is off). The "voice-mcp timing" line at the end is diagnostics: ignore it unless the user asks why things feel slow. If it reports that voice-mcp is not set up, call voice_setup.
  • voice_setupCheck whether this computer has everything speak_and_listen needs — text-to-speech, a microphone recorder (SoX), whisper.cpp speech-to-text and the speech model — and optionally install what's missing. Anything already installed is reused (an existing model elsewhere on disk is symlinked, not re-downloaded). Call it with install=false (the default) first and tell the user what is missing. Only call it with install=true after the user agrees: it runs `brew install` for the missing packages and downloads the speech model once. It never uninstalls or changes anything else. kokoro=true (also only after the user agrees) installs the optional Kokoro voice: more natural than the built-in one, runs on this Mac, about 1 GB on disk. Once installed it's used automatically; the built-in voice stays as the fallback. If it reports INSTALLING, the install continues in the background — wait a minute and call it again to check.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

SpeechWeave

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "speechweave": {
      "command": "npx",
      "args": [
        "-y",
        "@speechweave/mcp"
      ]
    }
  }
}

Mac Voice MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mac-voice-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mac-voice-mcp@latest"
      ]
    }
  }
}

Frequently asked questions

SpeechWeave is categorized under Speech-to-Text and uses a local stdio subprocess. Mac Voice MCP belongs to Speech-to-Text and uses a local stdio subprocess. Pick SpeechWeave for speech-to-text work and Mac Voice MCP for speech-to-text.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

SpeechWeave has no declared pricing — check the project's own site. Mac Voice MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add speechweave and mac-voice-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, SpeechWeave has a quality signal of 59/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Mac Voice MCP has 60/100 (Good) with 2 views, 0 installs and 0 GitHub stars.