MediaTofu

FFmpeg as an API and remote MCP server for sandboxed video, audio, and image jobs (compress, convert, trim, resize, GIF, and more).

Hosted MCP Server

npx add-mcp 'https://mcp.mediatofu.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

MCP server

Connect AI clients to your account and run media jobs from them.

MediaTofu has a remote Model Context Protocol server, so AI clients such as Claude and ChatGPT can run jobs on your account. Everything they do is scoped to your account and uses the same plan limits as the API.

Jobs started over MCP use your account's compute minutes, the same as jobs started from the API. Read-only tools cost nothing.

The server URL is:

https://mcp.mediatofu.com/mcp

Connect with an API key

Clients that let you set headers can use an API key. Create one in the dashboard and send it with every request:

{
  "mcpServers": {
    "mediatofu": {
      "url": "https://mcp.mediatofu.com/mcp",
      "headers": { "Authorization": "Bearer mt_your_key" }
    }
  }
}

Connect with OAuth

Connector clients sign in with OAuth, so you never paste a key. Add https://mcp.mediatofu.com/mcp as a custom connector and the client sends you to app.mediatofu.com. Sign in with your emailed link and choose Allow.

To disconnect a client, go to API keys in the dashboard and use Connected apps. It loses access at once.

Tools

ToolWhat it doesUses compute
run_ffmpegRuns one FFmpeg command, using {{key}} placeholders as in Run FFmpeg.Yes
video_probeReads a file's format and streams.Yes
video_compressRe-encodes a video to a smaller MP4.Yes
video_convertConverts video or audio to another format.Yes
video_resizeResizes a video.Yes
video_trimCuts a section without re-encoding.Yes
video_thumbnailGrabs one frame as a JPEG.Yes
video_extract_audioSaves a video's soundtrack as audio.Yes
video_gifTurns part of a video into a GIF.Yes
image_infoReads an image's format, dimensions and size.Yes
image_resizeResizes an image.Yes
image_cropCuts a rectangle out of an image.Yes
image_convertChanges an image to another format.Yes
image_compressMakes an image file smaller.Yes
image_transformCombines resize, rotate, flip, blur, color changes and background removal.Yes
get_jobReads a job's status, outputs and errors.No
list_jobsLists your jobs, newest first.No
get_usageShows your plan, compute used and limits.No

The simple tools take the same parameters as their API endpoints. A job uses at least one second of compute, and a job that fails because of its command still uses the time it ran for.

Inputs are https URLs or the id of a file you've already uploaded. Files can't be uploaded over MCP.

Jobs and waiting

A job tool waits up to 20 seconds for the job to finish. If it's still queued or running after that, the tool returns the job's id and status, and the client can follow up with get_job. The job keeps running either way.

Webhooks aren't available from MCP tools.

Errors

When a job can't start, for example because of bad parameters, a plan limit or too many concurrent jobs, the tool returns the same message as the API's error. An expired or revoked sign-in or key gets a 401, and the client asks you to reconnect.