@speechweave/mcp
OfficialThe SpeechWeave MCP server enables transcription of audio/video from local files or public URLs, supporting both wait-first (synchronous) and async job-based workflows with job management and various configurable options.
Transcription tools:
transcribe_file/transcribe_url: Submit a local file path or URL and wait for the transcript; ideal for short/medium clips. Both accepttimeout_ms; if timeout exceeded, ajob_idis returned for polling.start_job_file/start_job_url: Initiate an async transcription job, immediately returning ajob_id—best for long or deferred processing.
Job management:
get_job_status: Poll for job status and retrieve transcript upon completion.cancel_job: Cancel a queued/in-progress job.
Common options (for all transcription/job-start tools):
model:core(default) ormax.service_mode:deferred(default, background queue) orsynchronous(higher priority).language: Optional ISO language code to force detection.task:transcribe(default) ortranslate(to English).prompt: Custom vocabulary hints (proper nouns, acronyms) for the first ~30 seconds.response_format: On wait-first tools andget_job_status, choosetext,srt,vtt, orverbose_json.
Requirements/Notes:
Local files require an absolute path; URLs must be public HTTPS—raw audio bytes are not supported.
Server needs Node.js 18+ and a SpeechWeave API key.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@speechweave/mcpTranscribe /Users/me/recordings/standup.mp3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@speechweave/mcp
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 wait-first tools (get a transcript in one turn) and async create + poll tools (start a job, then check status).
Docs: speechweave.com/docs/mcp · API reference
Install / run
Requires Node.js 18+ and a SpeechWeave API key (sk_live_…).
export SPEECHWEAVE_API_KEY="sk_live_..."
npx -y @speechweave/mcpRelated MCP server: whisper-transcribe-mcp
Cursor / Claude Desktop
Add to your MCP config (e.g. .cursor/mcp.json, claude_desktop_config.json):
{
"mcpServers": {
"speechweave": {
"command": "npx",
"args": ["-y", "@speechweave/mcp"],
"env": {
"SPEECHWEAVE_API_KEY": "sk_live_..."
}
}
}
}Tools
Tool | Mode | When to use |
| Wait-first | Absolute local path; wait until transcript is ready |
| Wait-first | Public HTTPS URL; wait until transcript is ready |
| Async | Absolute local path; return |
| Async | Public HTTPS URL; return |
| Poll | Fetch status / transcript for a job id |
| Control | Cancel a queued or processing job |
| Info | Upload size ceilings for your API key |
| Info | Public docs by slug (bundled pages + live OpenAPI) |
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: Choosecore(default) ormax.service_mode: Choosestandard(default) ordeferredfor the background queue.synchronousis accepted as an alias forstandard.language: Optional ISO language code to force language detection.task: Choosetranscribe(default) ortranslateto produce an English translation instead;languageis 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.
Timeout behavior: Wait-first 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: ReturnsGET /v1/limitsfor the calling key, with MB equivalents. Use before uploading large local files.fetch_doc: Returns public documentation. Sluglistshows the catalog. Bundled pages includequickstart,mcp,models,billing, anddata_retention. Slugapifetches a live OpenAPI overview;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 (wait-first)
"Use SpeechWeave to transcribe
/Users/me/recordings/standup.mp3and summarize action items."
The assistant will call transcribe_file with the absolute path and summarize the returned transcript.
Long podcast (async + poll)
"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 (wait-first)
"Translate
/Users/me/recordings/spanish_interview.mp3into English SRT subtitles using SpeechWeave."
The assistant will call transcribe_file with task: "translate" and response_format: "srt".
Available Tools
6 toolscancel_jobCancel jobA
Cancel a queued or processing transcription job. Fails if the job is already terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job id returned by a create or wait-first transcription tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the key failure condition (job already terminal), which is critical for safety. No hidden behaviors are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence states the primary action, the second adds a crucial constraint. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter cancellation tool with no output schema, the description covers the essential behavior and a key edge case. Could mention success side effects (e.g., job state change), but not required for minimal completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is adequate. The tool description adds no extra semantic information beyond the schema's 'job_id' description, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination ('Cancel...transcription job') and clearly distinguishes from siblings like 'get_job_status' (status query) and 'transcribe_file'/'start_job_*' (job creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use (queued/processing jobs) and implicitly when not to (terminal jobs will fail). It could explicitly reference alternatives like 'get_job_status' to check status first, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusGet job statusA
Fetch the current status of a transcription job (and transcript when completed). Poll until status is completed, failed, or cancelled.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job id returned by a create or wait-first transcription tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes basic behavior (fetch status, include transcript when done, poll). No annotations exist, so description carries full burden. It doesn't mention error handling, rate limits, or authentication needs, but the core read-only behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the primary function and include essential usage instruction (poll). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately covers its purpose and usage pattern. Could be slightly more explicit about return value, but polling instruction compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter job_id has schema description 'Job id returned by a create or wait-first transcription tool.' The tool description adds context that the id comes from specific tools, which is valuable beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it fetches job status and transcript when completed, with specific verb 'Fetch' and resource 'status of a transcription job'. Distinguishes from sibling tools (transcribe, start, cancel) by focusing on monitoring/polling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to poll until completed/failed/cancelled, guiding usage as a polling mechanism. Does not explicitly mention when not to use, but the polling instruction implies it's for ongoing jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_job_fileStart job from local file (async)A
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute local filesystem path to an audio or video file. Relative paths are rejected. Do not pass raw binary over MCP. | |
| model | No | Transcription model tier. core = default balance of speed/accuracy; max = hardest audio. | core |
| language | No | Optional two-letter ISO language code (e.g. en, es). | |
| service_mode | No | deferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap. | deferred |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. It reveals async nature and job ID return but lacks detail on failure modes, file read mechanism, or size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the purpose and follows with usage guidance, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given good schema coverage and sibling context, the description adequately covers purpose and usage. Missing output schema is partially compensated by mentioning job ID and polling pattern. Could hint at return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal value by emphasizing the absolute path requirement, but does not explain model, language, or service_mode beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uploads a local audio/video file, returns a job id immediately, and is async. It distinguishes from siblings like start_job_url (URL input) and transcribe_file (sync).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this for long recordings or when polling with get_job_status, implying alternatives for other cases. However, it does not name all sibling tools (e.g., transcribe_file) directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_job_urlStart job from URL (async)A
Create 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly reachable HTTPS URL of the audio or video to transcribe. | |
| model | No | Transcription model tier. core = default balance of speed/accuracy; max = hardest audio. | core |
| language | No | Optional two-letter ISO language code (e.g. en, es). | |
| service_mode | No | deferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap. | deferred |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry burden. It discloses async behavior, job id return, and polling mechanism. Lacks details on rate limits, authentication, or cancellation, but is sufficient for a job creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose and key usage instruction. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and moderate complexity, description covers main aspects: async flow, polling, and cancellation. Could mention expected job id format, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal extra meaning beyond schema for url (emphasizes 'public HTTPS'). Other parameters not elaborated. Adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (create), resource (transcription job from URL), and async nature. Distinguishes from synchronous tools and mentions return of job id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use for long media or deferred workflows' and directs to poll with get_job_status. Implicitly contrasts with synchronous alternatives. Provides clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_fileTranscribe local file (wait)A
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). On wait timeout, returns job_id — then call get_job_status. For long audio you plan to poll yourself, use start_job_file instead.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute local filesystem path to an audio or video file. Relative paths are rejected. Do not pass raw binary over MCP. | |
| model | No | Transcription model tier. core = default balance of speed/accuracy; max = hardest audio. | core |
| language | No | Optional two-letter ISO language code (e.g. en, es). | |
| timeout_ms | No | Max milliseconds to wait for completion (default 1 hour). On timeout, returns job_id so you can call get_job_status. | |
| service_mode | No | deferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap. | deferred |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses wait behavior, timeout handling, and path requirement. Could mention response format on success or file size limits, but core behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences: action, usage advice, edge case+alternative. No wasted words, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, timeout, and alternative. Lacks explicit mention of normal success return (i.e., transcript text) but handles the main behavioral gap (timeout). Satisfactory given schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all 5 parameters. The description reinforces the path constraint but adds little beyond schema. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Upload a local audio/video file and wait until transcription finishes') and distinguishes it from siblings like 'transcribe_url' (remote URL) and 'start_job_file' (no wait).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use ('Prefer for short/medium clips when you need the transcript in this turn') and when not to, with a direct alternative ('For long audio you plan to poll yourself, use start_job_file instead'). Also explains timeout fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_urlTranscribe URL (wait)A
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. On wait timeout, returns job_id — then call get_job_status. For long audio you plan to poll yourself, use start_job_url instead.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly reachable HTTPS URL of the audio or video to transcribe. | |
| model | No | Transcription model tier. core = default balance of speed/accuracy; max = hardest audio. | core |
| language | No | Optional two-letter ISO language code (e.g. en, es). | |
| timeout_ms | No | Max milliseconds to wait for completion (default 1 hour). On timeout, returns job_id so you can call get_job_status. | |
| service_mode | No | deferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap. | deferred |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the synchronous blocking nature, timeout handling, and asynchronous fallback. However, it does not explicitly describe the successful return value (presumably the transcript), which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-loading the core action, usage guidance, and alternative. No extraneous words; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While usage and timeout behavior are well-covered, the description omits the nature of a successful response (e.g., job object vs. transcript text). Without an output schema, this gap reduces completeness for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all 5 parameters (100% coverage). The tool description does not add additional parameter-level meaning beyond reaffirming the URL requirement. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('start transcription from a public HTTPS URL') and resource. It distinguishes this tool from sibling start_job_url by specifying use case (short/medium media needing immediate transcript vs. long audio for polling).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to prefer this tool ('short/medium media when you need the transcript in this turn'), timeout behavior ('returns job_id — then call get_job_status'), and when to use alternative ('For long audio you plan to poll yourself, use start_job_url instead').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.0.1- First observed
cancel_job - First observed
get_job_status - First observed
start_job_file - First observed
start_job_url - First observed
transcribe_file - First observed
transcribe_url
TDQS
Each tool has a clear, distinct role: synchronous vs. asynchronous, file vs. URL, status polling, and cancellation. No ambiguity between any pair.
All tools follow a consistent verb_noun pattern with underscores (e.g., transcribe_file, start_job_url, get_job_status). No mixing of conventions.
With 6 tools covering synchronous and asynchronous transcription from both files and URLs, plus status and cancellation, the count is well-scoped for the domain without redundancy.
Covers all essential operations: create jobs (sync/async, file/URL), check status, cancel. Missing a list-all-jobs endpoint, but core transcription workflow is complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
MCP server for Speech-to-Text
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for offline speech-to-text and speaker diarization, enabling AI agents to transcribe audio locally without cloud APIs.3MIT
- AlicenseAqualityAmaintenanceMCP server for audio transcription using local faster-whisper or OpenAI Whisper API, enabling multilingual transcription with optional GPT post-processing.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for audio transcription with speaker diarization. Transcribes MP3/WAV files using Faster-Whisper and pyannote.audio, outputs markdown with speaker labels, timestamps, summaries, and action items.1MIT
- AlicenseAqualityCmaintenanceLocal, private audio transcription MCP server enabling AI agents to transcribe audio files entirely on-device without uploading data.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/speechweave/speechweave-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server