DEV Community

Javid Jamae
Javid Jamae

Posted on • Originally published at ffmpeg-micro.com

FFmpeg Micro Now Has an MCP Server: Transcode Videos from Claude Desktop

Originally published at ffmpeg-micro.com

You can now transcode videos from Claude Desktop, Cursor, or any MCP-compatible AI agent. No code, no scripts, no curl commands. Just tell your AI assistant what you want and it handles the rest.

We just shipped an MCP server for FFmpeg Micro. If you've been using our REST API, you already know the endpoints. The MCP server wraps them into six tools that AI agents can call directly.

What is MCP?

Model Context Protocol is an open standard that lets AI assistants call external tools. Think of it like giving Claude or Cursor the ability to use APIs on your behalf. Instead of you writing the API calls, the AI writes and executes them.

Anthropic created the spec, and it's supported by Claude Desktop, Cursor, Continue, Windsurf, and a growing list of dev tools.

What the FFmpeg Micro MCP Server Does

Six tools, mapping directly to our REST API:

  • transcode_video creates a job from input URLs (HTTPS or GCS)
  • get_transcode checks job status
  • list_transcodes lists jobs with filters
  • cancel_transcode cancels a queued or in-progress job
  • get_download_url generates a signed download link
  • transcode_and_wait does everything in one call: creates the job, polls until complete, returns the download URL

That last one is the killer feature. What used to take a script with upload handling, polling loops, and error handling becomes a single natural language request.

Before vs After

Without MCP, transcoding a video programmatically means writing something like this:

# Request presigned upload URL
UPLOAD_RESPONSE=$(curl -s -X POST https://www.ffmpeg-micro.com/v1/upload/presigned-url \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "input.mp4", "contentType": "video/mp4", "fileSize": 1048576}')

# Upload the file
curl -s -X PUT "$UPLOAD_URL" --data-binary @input.mp4

# Confirm upload
curl -s -X POST https://www.ffmpeg-micro.com/v1/upload/confirm \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "input.mp4", "fileSize": 1048576}'

# Create transcode job
JOB_RESPONSE=$(curl -s -X POST https://www.ffmpeg-micro.com/v1/transcodes \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inputs": [{"url": "gs://bucket/input.mp4"}], "outputFormat": "mp4", ...}')

# Poll for completion...
# Download result...
Enter fullscreen mode Exit fullscreen mode

That's around 230 lines of bash when you add error handling and polling logic.

With MCP, you open Claude Desktop and type:

"Crop this video to a square and give me the download link"

Done. The AI calls transcode_and_wait, passes the URL directly (no upload step needed for HTTPS URLs), waits for completion, and hands you a download link.

Two Ways to Connect

Hosted (no install required):

Point your MCP client at our hosted server. No Node.js, no local setup:

{
  "mcpServers": {
    "ffmpeg-micro": {
      "type": "http",
      "url": "https://mcp.ffmpeg-micro.com",
      "headers": {
        "Authorization": "Bearer your_api_key_here"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Local via npx:

If you prefer running locally, the npm package works with any stdio-compatible MCP client:

{
  "mcpServers": {
    "ffmpeg-micro": {
      "command": "npx",
      "args": ["-y", "@ffmpeg-micro/mcp-server"],
      "env": {
        "FFMPEG_MICRO_API_KEY": "your_api_key_here"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Both options use the same FFmpeg Micro API key you already have.

What You Can Do With It

Once connected, you can ask your AI assistant things like:

  • "Transcode this video to 720p MP4 and give me the download link"
  • "Add a text overlay saying Episode 12 to the bottom of this video"
  • "Show me all my failed jobs from this week"

Anything the REST API can do, the MCP server can do. That includes presets, raw FFmpeg options, virtual options like @text-overlay and @quote-card, multi-input jobs, and format conversions.

The real unlock is chaining operations conversationally. "Transcode this to 720p, then add a watermark" becomes a back-and-forth with your AI assistant rather than a script you have to write and debug.

Setup Guides

Step-by-step setup instructions for Claude Desktop, Cursor, Windsurf, VS Code, and Claude Code are available at ffmpeg-micro.com/mcp.

Try It

You need two things:

  1. A free FFmpeg Micro account at ffmpeg-micro.com
  2. An MCP-compatible client (Claude Desktop, Cursor, Continue, etc.)

Add the config snippet above, swap in your API key, and start asking your AI to process videos. The source is open on GitHub if you want to poke around or contribute.

Top comments (0)