{
  "markdown": "# @speechweave/mcp\n\n[![npm version](https://img.shields.io/npm/v/@speechweave/mcp.svg)](https://www.npmjs.com/package/@speechweave/mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nOfficial [Model Context Protocol](https://modelcontextprotocol.io) server for [SpeechWeave](https://speechweave.com). Use to transcribe local files and URLs from Cursor, Claude Desktop, Claude Code, Windsurf, and other MCP clients.\n\nSpeechWeave 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).\n\n**Docs:** [speechweave.com/docs/mcp](https://speechweave.com/docs/mcp) · [API reference](https://speechweave.com/docs/api)\n\n## Install / run\n\nRequires Node.js 18+ and a SpeechWeave API key (`sk_live_…`).\n\n```bash\nexport SPEECHWEAVE_API_KEY=\"sk_live_...\"\nnpx -y @speechweave/mcp\n```\n\n## Cursor / Claude Desktop\n\nAdd to your MCP config (e.g. `.cursor/mcp.json`, `claude_desktop_config.json`):\n\n```json\n{\n\t\"mcpServers\": {\n\t\t\"speechweave\": {\n\t\t\t\"command\": \"npx\",\n\t\t\t\"args\": [\"-y\", \"@speechweave/mcp\"],\n\t\t\t\"env\": {\n\t\t\t\t\"SPEECHWEAVE_API_KEY\": \"sk_live_...\"\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n## Tools\n\n| Tool | Mode | When to use |\n|---|---|---|\n| `transcribe_file` | Wait-first | Absolute local path; wait until transcript is ready |\n| `transcribe_url` | Wait-first | Public HTTPS URL; wait until transcript is ready |\n| `start_job_file` | Async | Absolute local path; return `job_id` immediately |\n| `start_job_url` | Async | Public HTTPS URL; return `job_id` immediately |\n| `get_job_status` | Poll | Fetch status / transcript for a job id |\n| `cancel_job` | Control | Cancel a queued or processing job |\n| `get_limits` | Info | Upload size ceilings for your API key |\n| `fetch_doc` | Info | Public docs by slug (bundled pages + live OpenAPI) |\n\n**Never pass raw audio bytes over MCP.** Use absolute file paths (local clients) or HTTPS URLs.\n\n### Configuration & Arguments\n\nAll transcription and job-start tools accept the following optional arguments:\n* `model`: Choose `core` (default) or `max`.\n* `service_mode`: Choose `standard` (default) or `deferred` for the background queue. `synchronous` is accepted as an alias for `standard`.\n* `language`: Optional ISO language code to force language detection.\n* `task`: Choose `transcribe` (default) or `translate` to produce an English translation instead; `language` is ignored when translating.\n* `prompt`: Optional custom vocabulary hint (proper nouns, acronyms, product names) for the first ~30s of audio.\n\n**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.\n\n**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.\n\n### Account limits and docs\n\n* `get_limits`: Returns `GET /v1/limits` for the calling key, with MB equivalents. Use before uploading large local files.\n* `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`).\n\n## Example Prompts\n\nAfter adding the server and restarting your client, try asking your AI assistant:\n\n### Short clip (wait-first)\n> \"Use SpeechWeave to transcribe `/Users/me/recordings/standup.mp3` and summarize action items.\"\n\n*The assistant will call `transcribe_file` with the absolute path and summarize the returned `transcript`.*\n\n### Long podcast (async + poll)\n> \"Start a SpeechWeave job for `https://cdn.example.com/three_hour_podcast.mp3`, then check back until it completes.\"\n\n*The assistant will call `start_job_url`, then periodically call `get_job_status` until the status reaches `completed`.*\n\n### Translate to subtitles (wait-first)\n> \"Translate `/Users/me/recordings/spanish_interview.mp3` into English SRT subtitles using SpeechWeave.\"\n\n*The assistant will call `transcribe_file` with `task: \"translate\"` and `response_format: \"srt\"`.*",
  "bytes": 4399,
  "sha": "080d201ebd065a59d36d31629d168ffdfc75813fbb4909b7a9f0c818abe7a0cc",
  "repo_slug": "speechweave/speechweave-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_speechweave_mcp_3aacfa55/readme"
}