loading…
Search for a command to run...
loading…
An MCP server that automatically transcribes video content and burns stylized captions directly into the video file. It leverages the Groq Whisper API for fast
An MCP server that automatically transcribes video content and burns stylized captions directly into the video file. It leverages the Groq Whisper API for fast transcription and supports multiple visual styles tailored for social media and professional content.
An MCP (Model Context Protocol) server that automatically transcribes and burns stylized captions into videos. Designed to work with Poke by Interaction Co.
Upload a video → AI transcribes it → Stylized captions are burned in → Download the result.
You → Poke: "Caption this video: https://example.com/video.mp4"
↓
Poke calls your MCP server's `caption_video` tool
↓
1. Downloads the video
2. FFmpeg extracts audio (16kHz mono WAV)
3. Groq Whisper API transcribes with timestamps (FREE!)
4. Generates SRT subtitle file
5. FFmpeg burns styled captions into the video
↓
Returns: download link + full transcript
| Style | Look | Best For |
|---|---|---|
tiktok (default) |
Poppins bold white on dark box | TikTok, Reels, Shorts |
modern |
Poppins white with outline | General purpose |
classic |
Yellow text, bottom | Movies, TV style |
minimal |
Small Poppins, bottom-left | Clean, professional |
bold |
Impact font, heavy shadow | Maximum readability |
Groq's free tier includes Whisper transcription at no cost with generous rate limits.
In your Render dashboard → Environment:
| Variable | Value | Required |
|---|---|---|
GROQ_API_KEY |
Your Groq API key | ✅ Yes |
BASE_URL |
https://your-app-name.onrender.com |
✅ Yes |
WHISPER_MODEL |
whisper-large-v3-turbo |
No (default) |
MAX_VIDEO_DURATION_SEC |
600 |
No (default: 10 min) |
PORT |
8000 |
No (default) |
⚠️ Important: Set
BASE_URLto your actual Render URL so download links work!
Video Captionerhttps://your-app-name.onrender.com/mcpMessage Poke:
"Use the Video Captioner integration's caption_video tool to caption this video: https://example.com/my-video.mp4"
Or more naturally:
"Can you add captions to this video? https://example.com/my-video.mp4 Use the bold style."
caption_videoTranscribes and burns captions into a video.
Parameters:
video_url (required): Direct URL to a video filelanguage (optional): ISO-639-1 code, default "en"style (optional): modern, classic, minimal, or boldfont_size (optional): 12-72, default 24list_caption_stylesReturns all available caption style presets with descriptions.
# Clone the repo
git clone https://github.com/YOUR_USERNAME/video-caption-mcp.git
cd video-caption-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install dependencies
pip install -r requirements.txt
# Make sure FFmpeg is installed
ffmpeg -version # should work
# Set environment variables
export GROQ_API_KEY="your-key-here"
export BASE_URL="http://localhost:8000"
# Run the server
python src/server.py
Test with the MCP Inspector:
npx @modelcontextprotocol/inspector
# Connect to http://localhost:8000/mcp using "Streamable HTTP" transport
video-caption-mcp/
├── src/
│ └── server.py # FastMCP server + file serving
├── Dockerfile # Python 3.13 + FFmpeg
├── render.yaml # Render deployment config
├── requirements.txt # Python dependencies
└── README.md
The server exposes:
POST /mcp – MCP protocol endpoint (for Poke)GET /files/{job_id}/{filename} – Serves captioned video downloadsGET /health – Health checkMAX_VIDEO_DURATION_SEC)modern style works best for vertical/short-form videolanguage parameter for non-English videos for better accuracyMIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"video-caption-mcp-server": {
"command": "npx",
"args": []
}
}
}