SpeechWeave

io.github.speechweave由 GitHub 帳號 speechweave 發布v1.10.0更新於 Oct 29, 2026

Transcribe local files and URLs with SpeechWeave's OpenAI-compatible Speech-to-Text API.

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

SpeechWeave 官方 MCP 伺服器,讓助理把本機音訊/影片檔案與公開 HTTPS 媒體連結轉錄或翻譯成文字、SRT 或 VTT。

可以做什麼
  • 依絕對路徑轉錄或翻譯本機音訊/影片檔案,並在同一次呼叫中回傳逐字稿
  • 轉錄或翻譯公開 HTTPS 連結中的媒體,可同步回傳或作為背景工作執行
  • 啟動長時間工作、輪詢狀態、取得格式化逐字稿,並取消排隊中或處理中的工作
  • 將逐字稿存到指定檔案路徑(文字、Markdown、JSON、SRT 或 VTT),避免長逐字稿進入對話
  • 查詢該 API 金鑰的上傳大小上限,並讀取內建或在線 API 文件
適用情境
適合讓助理把會議錄音、訪談、播客等音訊/影片整理成逐字稿、字幕或英文翻譯,而不必離開聊天用戶端。短片段可在一次呼叫中完成,長錄音則可當作輪詢工作處理。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 18 以上版本。需要以 SPEECHWEAVE_API_KEY 環境變數提供 SpeechWeave API 金鑰。需要能連線至 SpeechWeave API 的網路,轉錄本機檔案時須提供絕對檔案路徑。
安裝前請注意
API 金鑰是可計費的憑證,會存放在用戶端設定中,請勿放入共用檔案。轉錄會消耗付費額度,遇到消費上限或餘額不足等計費錯誤時須先在帳戶端處理,重試無效。本機檔案與媒體連結會傳送到 SpeechWeave 服務,請留意其資料保留政策。使用 output_file 儲存逐字稿時,若開啟 overwrite 可能覆蓋既有檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SpeechWeave,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@speechweave/mcp

[npm version] [License: MIT]

Official Model Context Protocol server for SpeechWeave. Use to transcribe local files and URLs from Cursor, Claude Desktop, Claude Code, Windsurf, and other MCP clients.

SpeechWeave handles short clips and long-form audio without client-side chunking. This MCP server exposes both sync tools (the transcript comes back in the same tool call) and async tools (start a job, then poll for status).

Docs: speechweave.com/docs/mcp · API reference

Install / run

Requires Node.js 18+ and a SpeechWeave API key (sk_live_…).

bash
export SPEECHWEAVE_API_KEY="sk_live_..."npx -y @speechweave/mcp

Cursor / Claude Desktop

Add to your MCP config (e.g. .cursor/mcp.json, claude_desktop_config.json):

json
{	"mcpServers": {		"speechweave": {			"command": "npx",			"args": ["-y", "@speechweave/mcp"],			"env": {				"SPEECHWEAVE_API_KEY": "sk_live_..."			}		}	}}

Claude Code

bash
claude mcp add speechweave --env SPEECHWEAVE_API_KEY=sk_live_... -- npx -y @speechweave/mcp

Tools

ToolDeliveryWhen to use
transcribe_filesyncAbsolute local path. Returns the transcript in this call
transcribe_urlsyncPublic HTTPS URL. Returns the transcript in this call
start_job_fileasyncAbsolute local path. Returns job_id immediately
start_job_urlasyncPublic HTTPS URL. Returns job_id immediately
get_job_statusasyncPoll status / transcript for a job id
cancel_jobn/aCancel a queued or processing job
get_limitsn/aUpload size ceilings for your API key
fetch_docn/aPublic docs by slug (bundled pages + live OpenAPI)

Delivery (sync or async) is separate from service_mode (standard or deferred). Either service mode works with either delivery.

Never pass raw audio bytes over MCP. Use absolute file paths (local clients) or HTTPS URLs.

Configuration & Arguments

All transcription and job-start tools accept the following optional arguments:

  • model: Choose core (default) or max.
  • service_mode: Choose standard (default) or deferred (lower cost, lower priority).
  • language: Optional ISO language code to force language detection.
  • task: Choose transcribe (default) or translate to produce an English translation instead. language is ignored when translating.
  • prompt: Optional custom vocabulary hint (proper nouns, acronyms, product names) for the first ~30s of audio.

Formatted transcripts: transcribe_file, transcribe_url, and get_job_status also accept an optional response_format (text, srt, vtt, or verbose_json) to return the transcript in that shape instead of the default plain text.

Saving to a file: transcribe_file, transcribe_url, and get_job_status accept output_file (an absolute path). The transcript is written there instead of being returned, so long transcripts stay out of the conversation. The result includes output_file and bytes_written. The path must end in .txt, .md, .json, .srt, or .vtt and cannot be inside a hidden folder. The parent folder must exist, and an existing file is only replaced when overwrite is true. With response_format: "verbose_json" the file holds the text plus segment timings as JSON.

Billing errors: a 402 comes back as a tool error with code and a hint. USER_SPEND_CAP_REACHED (raise your spend cap), PLATFORM_SPEND_CAP_REACHED (monthly account limit, request an increase), and INSUFFICIENT_BALANCE or WALLET_EMPTY (top up) all need a change on the account first, so the hint tells the assistant not to retry.

Timeout behavior: Sync tools accept an optional timeout_ms. If the transcription exceeds the timeout, the tool gracefully returns a job_id and instructs the client to switch to get_job_status polling.

Account limits and docs

  • get_limits: Returns GET /v1/limits for the calling key, with MB equivalents. Use before uploading large local files.
  • fetch_doc: Returns public documentation. Slug list shows the catalog. Bundled pages include quickstart, mcp, models, billing, and data_retention. Slug api fetches a live OpenAPI overview, and api/<operation_slug> returns one endpoint (e.g. api/get_v1_limits).

Example Prompts

After adding the server and restarting your client, try asking your AI assistant:

Short clip (sync)

"Use SpeechWeave to transcribe /Users/me/recordings/standup.mp3 and summarize action items."

The assistant will call transcribe_file with the absolute path and summarize the returned transcript.

Long podcast (async)

"Start a SpeechWeave job for https://cdn.example.com/three_hour_podcast.mp3, then check back until it completes."

The assistant will call start_job_url, then periodically call get_job_status until the status reaches completed.

Translate to subtitles (sync)

"Translate /Users/me/recordings/spanish_interview.mp3 into English SRT subtitles using SpeechWeave."

The assistant will call transcribe_file with task: "translate" and response_format: "srt".

來源:README.md,提交 e8fe2d9

工具

8

transcribe_file

Transcribe local file (sync)

Upload 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. Pass output_file (absolute path) to save the transcript to disk instead of returning it, which keeps long transcripts out of context. On wait timeout, returns job_id, then call get_job_status. For long audio you plan to poll yourself, use start_job_file instead.

輸入參數path必填taskmodelpromptlanguageoverwritetimeout_msoutput_fileservice_moderesponse_format

transcribe_url

Transcribe URL (sync)

Start 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. Pass output_file (absolute path) to save the transcript to disk instead of returning it. On wait timeout, returns job_id, then call get_job_status. For long audio you plan to poll yourself, use start_job_url instead.

輸入參數url必填taskmodelpromptlanguageoverwritetimeout_msoutput_fileservice_moderesponse_format

start_job_file

Start job from local file (async)

Upload 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.

輸入參數path必填taskmodelpromptlanguageservice_mode

start_job_url

Start job from URL (async)

Create a transcription job from a public HTTPS URL and return a job id immediately. Use for long media. Poll with get_job_status until completed, failed, or cancelled. Set task='translate' for an English translation instead of a same-language transcript.

輸入參數url必填taskmodelpromptlanguageservice_mode

get_job_status

Get job status

Fetch 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. Pass output_file (absolute path) to save the transcript to disk instead of returning it.

輸入參數job_id必填overwriteoutput_fileresponse_format

cancel_job

Cancel job

Cancel a queued or processing transcription job. Fails if the job is already terminal.

輸入參數job_id必填

get_limits

Get account upload limits

Fetch upload size ceilings for the calling API key (GET /v1/limits). Returns max_input_bytes, standard_max_bytes, and proxy_max_bytes plus MB equivalents. Call before transcribe_file or start_job_file when file size is large.

無需輸入參數。

fetch_doc

Fetch SpeechWeave documentation

Return 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).

輸入參數slug必填

版本歷史

3
  1. v1.10.0最新Oct 21, 2026
  2. v1.9.3Sep 19, 2026
  3. v1.9.0Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分