assemblyai-mcp
MCP server for the AssemblyAI API, providing tools for transcription, subtitles, speaker turns, word search, and LeMUR-based queries.
README
assemblyai-mcp
An MCP server for the AssemblyAI API. Transcription, subtitles, speaker turns, word search and LeMUR, exposed as tools an agent can call.
Written because I needed one and there wasn't one.
Install
npm install -g assemblyai-mcp
Claude Code:
claude mcp add assemblyai -e ASSEMBLYAI_API_KEY=your-key -- npx -y assemblyai-mcp
Anything else that speaks MCP over stdio:
{
"mcpServers": {
"assemblyai": {
"command": "npx",
"args": ["-y", "assemblyai-mcp"],
"env": { "ASSEMBLYAI_API_KEY": "your-key" }
}
}
}
Keys come from the dashboard.
Tools
| Tool | What it does |
|---|---|
upload_file |
Upload a local audio or video file and get a URL transcribe accepts |
transcribe |
Transcribe audio or video from a URL. Waits for the result by default |
get_transcript |
Fetch a transcript by id, with its status if it is still running |
list_transcripts |
Recent transcripts on the account |
get_subtitles |
SRT or VTT for a completed transcript |
search_transcript |
Where words are spoken, with counts and timestamps |
get_speaker_turns |
Who said what, when the transcript was made with speaker_labels |
ask_transcript |
Answer a question from one or more transcripts, through LeMUR |
summarize_transcript |
Summarise transcripts through LeMUR |
Three decisions worth knowing about
transcribe waits. An agent handed a job id and a queued status has to invent a polling loop, and it usually invents a bad one: fixed interval, no ceiling, no message when it gives up. Waiting is what the caller meant. Pass wait: false if you actually want the id. On timeout the error says the transcript is not lost and names the tool that will fetch it.
Long output is capped and says so. Transcripts run to hundreds of kilobytes. A tool that returns all of it spends the context window on text the agent is about to summarise anyway. Anything that can run long takes a limit and reports how much it trimmed, rather than silently truncating.
Milliseconds become seconds. The API speaks milliseconds, which is right for an API and wrong for a model writing an answer a person will read. Timestamps come out as seconds with one decimal.
Development
npm install
npm run build
npm test
The API client (src/api.ts) knows nothing about MCP and takes an injected fetch, so the tests run against a scripted transport with no network and no key. The tests cover what tends to break in a thin API wrapper: the key never reaching a URL, ids being escaped so a hostile id cannot reshape the path, non-JSON responses (subtitles arrive as text), error bodies surfacing the sentence the API wrote instead of a bare status, and the polling loop stopping on both completed and error.
Note for AssemblyAI
If any of this is useful to you, take it. It is MIT, and it is yours to fork, rename, absorb or throw away. If you would rather have it as a first-party server, I am happy to help get it there.
MIT.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。