MCP オーディオトランスクリプター
AssemblyAIのAPIを介してモデルコンテキストプロトコル(MCP)を実装する、Docker化されたPythonツールです。音声ファイルをアップロードまたは指定すると、構造化されたJSON形式の文字起こしが提供されます。
特徴
AssemblyMCP : AssemblyAIのREST APIを使用する具体的なMCP実装
コマンドラインインターフェース(
app.py):python app.py <input_audio> <output_json>Streamlit ウェブ UI (
streamlit_app.py):ローカルファイルをアップロードするか、URLを貼り付けます
「文字起こし」をクリック
トランスクリプトをプレビューし、JSON をダウンロードする
環境の一貫性と移植性のためのDocker サポート
Related MCP server: Typecast API MCP Server
前提条件
Python 3.10以上
AssemblyAI APIキー
ffmpeg (ローカルファイルを使用する場合のローカルデコード用)
(オプション)Dockerデスクトップ/エンジン
(オプション)Streamlit(
pip install streamlit)
🔧 インストール
リポジトリをクローンする
git clone https://github.com/ShreyasTembhare/MCP---Audio-Transcriber.git cd MCP---Audio-Transcriber.envを作成するASSEMBLYAI_API_KEY=your_assemblyai_api_key_here.gitignoreに以下が含まれていることを確認します。.envPythonの依存関係をインストールする
pip install --upgrade pip pip install -r requirements.txtffmpegをインストールする
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg -yWindows: https://ffmpeg.orgからダウンロードし、
bin/PATH に追加します。
使用法
1. CLIトランスクリプション
python app.py <input_audio> <output_json><input_audio>: AssemblyAI でサポートされている任意のファイルまたは URL<output_json>: 生成されたJSONのパス
例:
python app.py data/input.ogg data/output.json
cat data/output.json2. Streamlit Web UI
streamlit run streamlit_app.pyhttp://localhost:8501を開きます。
オーディオURLをアップロードまたは入力してください
「文字起こし」をクリック
JSON結果をダウンロードする
3. ドッカー
イメージをビルドします。
docker build -t mcp-transcriber .実行します(data/ フォルダをマウントします)。
docker run --rm \
-e ASSEMBLYAI_API_KEY="$ASSEMBLYAI_API_KEY" \
-v "$(pwd)/data:/data" \
mcp-transcriber:latest \
/data/input.ogg /data/output.json次に検査します:
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.jsonプロジェクト構造
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