Skip to main content
Glama
speechweave

@speechweave/mcp

Official
by speechweave

@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 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/mcp

Related 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

transcribe_file

Wait-first

Absolute local path; wait until transcript is ready

transcribe_url

Wait-first

Public HTTPS URL; wait until transcript is ready

start_job_file

Async

Absolute local path; return job_id immediately

start_job_url

Async

Public HTTPS URL; return job_id immediately

get_job_status

Poll

Fetch status / transcript for a job id

cancel_job

Control

Cancel a queued or processing job

get_limits

Info

Upload size ceilings for your API key

fetch_doc

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: Choose core (default) or max.

  • service_mode: Choose standard (default) or deferred for the background queue. synchronous is accepted as an alias for standard.

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

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: 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; 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.mp3 and 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.mp3 into English SRT subtitles using SpeechWeave."

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

Available Tools

6 tools
cancel_jobCancel jobA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id returned by a create or wait-first transcription tool.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id returned by a create or wait-first transcription tool.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute local filesystem path to an audio or video file. Relative paths are rejected. Do not pass raw binary over MCP.
modelNoTranscription model tier. core = default balance of speed/accuracy; max = hardest audio.core
languageNoOptional two-letter ISO language code (e.g. en, es).
service_modeNodeferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap.deferred

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublicly reachable HTTPS URL of the audio or video to transcribe.
modelNoTranscription model tier. core = default balance of speed/accuracy; max = hardest audio.core
languageNoOptional two-letter ISO language code (e.g. en, es).
service_modeNodeferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap.deferred

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute local filesystem path to an audio or video file. Relative paths are rejected. Do not pass raw binary over MCP.
modelNoTranscription model tier. core = default balance of speed/accuracy; max = hardest audio.core
languageNoOptional two-letter ISO language code (e.g. en, es).
timeout_msNoMax milliseconds to wait for completion (default 1 hour). On timeout, returns job_id so you can call get_job_status.
service_modeNodeferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap.deferred

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublicly reachable HTTPS URL of the audio or video to transcribe.
modelNoTranscription model tier. core = default balance of speed/accuracy; max = hardest audio.core
languageNoOptional two-letter ISO language code (e.g. en, es).
timeout_msNoMax milliseconds to wait for completion (default 1 hour). On timeout, returns job_id so you can call get_job_status.
service_modeNodeferred = background queue (default, better for long audio); synchronous = higher-priority path with a smaller size cap.deferred

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 6 tool updatesv1.0.1
    • First observedcancel_job
    • First observedget_job_status
    • First observedstart_job_file
    • First observedstart_job_url
    • First observedtranscribe_file
    • First observedtranscribe_url

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clear, distinct role: synchronous vs. asynchronous, file vs. URL, status polling, and cancellation. No ambiguity between any pair.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores (e.g., transcribe_file, start_job_url, get_job_status). No mixing of conventions.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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