A Model Context Protocol (MCP) server that provides access to AssemblyAI's transcription services. This server enables AI assistants to transcribe audio files and manage transcription jobs through a standardized interface.
On a scale of 1 to 10, 10 being the most vibey, this is a 9.
- Audio transcription from URLs and local files
- Asynchronous job submission for large files
- Transcript retrieval and status checking
- Resource access to transcript data
- Type-safe implementation with Zod validation
- Error handling and graceful shutdown
- Clone or create this project directory
- Install dependencies:
npm install
- Set up your AssemblyAI API key (see Configuration section)
- Build the TypeScript code:
npm run build
You need an AssemblyAI API key to use this server. Get one from AssemblyAI.
Set the environment variable:
export ASSEMBLYAI_API_KEY="your-api-key-here"Or create a .env file:
ASSEMBLYAI_API_KEY=your-api-key-here
You can run the AssemblyAI MCP server in several ways:
# Using npx
npx assembly-ai-mcp@latest
# Using pnpm dlx
pnpm dlx assembly-ai-mcp@latestclaude mcp add assembly-ai-mcp --scope user -- pnpm dlx assembly-ai-mcp@latestStart the MCP server:
npm startFor development with auto-rebuild:
npm run watchThe server provides the following tools:
Transcribe audio from a remote URL and wait for completion.
Parameters:
audioUrl(string, required): URL of the audio fileoptions(object, optional): Transcription optionsspeaker_labels(boolean): Enable speaker diarizationlanguage_code(string): Specify language (e.g., "en")punctuate(boolean): Add punctuationformat_text(boolean): Format text for readability
Example:
{
"audioUrl": "https://example.com/audio.mp3",
"options": {
"speaker_labels": true,
"punctuate": true
}
}Transcribe audio from a local file path and wait for completion.
Parameters:
filePath(string, required): Local path to the audio fileoptions(object, optional): Same astranscribe_url
Example:
{
"filePath": "/path/to/audio.wav",
"options": {
"language_code": "en"
}
}Submit audio for transcription without waiting for completion. Returns immediately with a job ID.
Parameters:
audio(string, required): URL or local file pathoptions(object, optional): Same transcription options
Example:
{
"audio": "https://example.com/large-audio.mp3",
"options": {
"speaker_labels": true
}
}Retrieve the status and results of a transcription job.
Parameters:
transcriptId(string, required): The transcript ID returned from previous calls
Example:
{
"transcriptId": "1234567890"
}Access transcript data directly by ID. Provides structured JSON with all transcript information.
Example URI: transcript://1234567890
Returns:
{
"id": "1234567890",
"status": "completed",
"text": "Hello, this is a test transcription...",
"confidence": 0.95,
"words": [...],
"utterances": [...],
"created": "2024-01-01T00:00:00Z",
"completed": "2024-01-01T00:01:30Z"
}Add to your claude_desktop_config.json:
{
"mcpServers": {
"assemblyai": {
"command": "node",
"args": ["/path/to/assemblyai-mcp-server/dist/index.js"],
"env": {
"ASSEMBLYAI_API_KEY": "your-api-key-here"
}
}
}
}The server uses stdio transport, so it's compatible with any MCP client that supports this transport method.
- Use
transcribe_urlortranscribe_filefor immediate results - The tool waits for completion and returns the full transcript
- Use
submit_transcriptionfor large files - Use
get_transcriptto check status and retrieve results - Use the
transcript://resource for structured data access
{
"audioUrl": "https://example.com/meeting.mp3",
"options": {
"speaker_labels": true,
"punctuate": true,
"format_text": true
}
}The server provides detailed error messages for common issues:
- Missing API key: Server won't start without
ASSEMBLYAI_API_KEY - Invalid audio URLs: Clear error messages for inaccessible files
- File not found: Helpful messages for local file issues
- API errors: AssemblyAI error messages passed through
- Invalid transcript IDs: Clear feedback for non-existent transcripts
npm run buildnpm run devnpm run watch- Node.js 18.0.0 or higher
- AssemblyAI API key
- MCP-compatible client
MIT License
For AssemblyAI API issues, visit AssemblyAI Documentation. For MCP protocol questions, see Model Context Protocol.