Enables containerized deployment of the transcription service, making it portable and providing a consistent runtime environment.
Provides audio file processing capabilities, allowing the transcription service to handle various audio formats like .wav, .mp3, .ogg, and .m4a.
Integrates with OpenAI's Whisper models to provide high-quality, multi-language audio transcription with options for different model sizes.
Offers a web-based user interface for uploading audio files, selecting model parameters, previewing transcriptions, and downloading results.
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., "@MCP Audio Transcribertranscribe this meeting recording from the URL https://example.com/meeting.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.
MCP Audio Transcriber
A Dockerized Python tool that implements the Model Context Protocol (MCP) via AssemblyAI's API. Upload or point to an audio file, and receive a structured JSON transcription.
Features
AssemblyMCP: a concrete MCP implementation that uses AssemblyAI's REST API
Command-line interface (
app.py):python app.py <input_audio> <output_json>Streamlit web UI (
streamlit_app.py):Upload local files or paste URLs
Click Transcribe
Preview transcript and download JSON
Docker support for environment consistency and portability
Related MCP server: Typecast API MCP Server
Prerequisites
Python 3.10+
An AssemblyAI API key
ffmpeg (for local decoding, if using local files)
(Optional) Docker Desktop / Engine
(Optional) Streamlit (
pip install streamlit)
π§ Installation
Clone the repo
git clone https://github.com/ShreyasTembhare/MCP---Audio-Transcriber.git cd MCP---Audio-TranscriberCreate a
.envASSEMBLYAI_API_KEY=your_assemblyai_api_key_hereEnsure
.gitignorecontains:.envInstall Python dependencies
pip install --upgrade pip pip install -r requirements.txtInstall ffmpeg
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg -yWindows: download from https://ffmpeg.org and add its
bin/to your PATH
Usage
1. CLI Transcription
python app.py <input_audio> <output_json><input_audio>: any file or URL supported by AssemblyAI<output_json>: path for the generated JSON
Example:
python app.py data/input.ogg data/output.json
cat data/output.json2. Streamlit Web UI
streamlit run streamlit_app.pyOpen http://localhost:8501
Upload or enter an audio URL
Click Transcribe
Download the JSON result
3. Docker
Build the image:
docker build -t mcp-transcriber .Run it (mounting your data/ folder):
docker run --rm \
-e ASSEMBLYAI_API_KEY="$ASSEMBLYAI_API_KEY" \
-v "$(pwd)/data:/data" \
mcp-transcriber:latest \
/data/input.ogg /data/output.jsonThen inspect:
ls data/output.json
cat data/output.jsonWindows PowerShell:
docker run --rm `
-e ASSEMBLYAI_API_KEY=$env:ASSEMBLYAI_API_KEY `
-v "${PWD}\data:/data" `
mcp-transcriber:latest `
/data/input.ogg /data/output.jsonProject Structure
MCP-Audio-Transcriber/
βββ app.py # CLI entrypoint (AssemblyMCP only)
βββ mcp.py # ModelContextProtocol + AssemblyMCP
βββ streamlit_app.py # Streamlit interface
βββ requirements.txt # assemblyai, python-dotenv, streamlit, etc.
βββ Dockerfile # builds the container
βββ .gitignore # ignores .env, __pycache__, etc.
βββ LICENSE # MIT license
βββ data/ # sample input and output
βββ input.ogg
βββ output.json