Skip to content

Preview Videxo runs jobs, accepts uploads up to 100 MB, serves output downloads and sends signed webhooks. Sign in with email, GitHub or a passkey. Payments are not connected yet, so credit packs and paid plans cannot be bought. Read the quickstart

MCP server

The ffmpeg MCP server. Video jobs from your assistant.

Give your AI assistant a video tool that runs. Ask in plain words; the assistant writes the ffmpeg job, runs it on Videxo and hands back the download link, with your account’s credits and limits.

Connect Claude Code

claude mcp add --transport http videxo https://api.videxo.io/mcp \
  --header "Authorization: Bearer $VIDEXO_API_KEY"

500 free credits to start, no card.

Connect

One URL, one header. Your API key in it.

The server speaks Streamable HTTP. Put your API key in the Authorization header: Claude Code, Cursor and VS Code read it from an environment variable or ask for it once, so it never sits in a file you commit; Claude Desktop keeps it in the app’s own config file, outside your projects. The assistant then works for your account: its jobs use your credits and show up in your dashboard. A client that supports the MCP authorization specification can sign in with OAuth instead.

Where each config goes
claude mcp add --transport http videxo https://api.videxo.io/mcp \
  --header "Authorization: Bearer $VIDEXO_API_KEY"

Claude Desktop reaches remote servers through the mcp-remote package, which needs Node.

A real session

One sentence in. A GIF out.

Claude Code got one task in plain words. Its first call was refused with the reason, so it fixed the request, created the job and waited for it; 8 s after the job was created, it had the file and its link. The tool answers are summed up in a line each, the link is shortened and the reply is cut to what it says about the file.

GIF previews and thumbnails
Recorded with Claude Code against api.videxo.io on Nov 7, 2026
  1. You

    Make a 4-second GIF preview of https://videxo.io/samples/talk.mp4 starting at 0:02, 480 pixels wide, and give me the download link.

  2. Tool call compile_job

    {
      "inputs": "{\"video\": \"https://videxo.io/samples/talk.mp4\"}",
      "outputs": "[{\"type\": \"gif\", \"filename\": \"talk-preview.gif\", \"trim\": {\"start\": 2, \"duration\": 4}, \"resize\": {\"width\": 480}}]"
    }

    Answered: invalid_request: inputs and outputs must be JSON, not strings, each with its field named. Nothing was created.

  3. Tool call create_job

    {
      "inputs": {
        "video": "https://videxo.io/samples/talk.mp4"
      },
      "outputs": [
        {
          "type": "gif",
          "filename": "talk-preview.gif",
          "trim": {
            "start": 2,
            "duration": 4
          },
          "resize": {
            "width": 480
          }
        }
      ],
      "idempotency_key": "talk-preview-gif-480w-2s-4s-v1"
    }

    Answered: job_fxm8ed8pofu8k6nz0gv908yo, queued, with the ffmpeg command it compiled to

  4. Tool call wait_for_job

    {
      "job_id": "job_fxm8ed8pofu8k6nz0gv908yo",
      "timeout_seconds": 50
    }

    Answered: succeeded: talk-preview.gif, 818,769 bytes, its SHA-256 and a download link valid for one hour

  5. Claude Code

    Your GIF is ready: https://api.videxo.io/v1/files/job_fxm8ed8pofu8k6nz0gv908yo/out_main?…

    This link expires at 03:48 UTC on 2026-11-07, about an hour after the job finished. The stored file is kept until 2026-11-14, and I can get a fresh link from the job until then.

    4 seconds, from 0:02 to 0:06. 480 pixels wide with the aspect ratio kept, about 819 KB. 12 fps, with a 256-colour palette. Cost: 2.1 credits.

Tools

15 tools. Check, compile, run, wait.

The assistant checks a job before it runs, so a wrong option comes back with a code and a sentence it can act on, and nothing is charged. The docs pages come along as resources, with prompts that turn a task into a job.

Without an account

Nothing is created or charged.

  • Check an ffmpeg command check_command
  • Compile a JSON job compile_job
  • List presets list_presets
  • List fonts list_fonts
  • Estimate credits and the plan estimate_cost
  • List what a command can use list_allowed

With your API key or OAuth sign-in

Acts for your account.

  • Create a one-time upload create_upload
  • Create a job create_job
  • Read media metadata probe_media
  • Get a job get_job
  • List jobs list_jobs
  • Cancel a job cancel_job
  • Wait for a job to end wait_for_job
  • Get the account's credits get_usage
  • List a job's webhook deliveries list_webhook_deliveries

Video editing by MCP

Ask for the edit. Get the file.

Price

2.1 credits for that GIF. 500 free to start.

The job above made a 4 s GIF at 30 credits a minute, which is 2 credits, and read and wrote 4.9 MB at 10 credits a GB. Rounded up once, that is 2.1 credits, or $0.0021 at the base rate. Your personal organization gets 500 free credits once, valid 30 days, with no card: about 238 previews like it. Tool calls that only check or compile cost nothing.

Rates and the cost calculator

Questions, answered.

Which assistants can use it?

An MCP client that connects to a Streamable HTTP server and lets you set a request header can use your API key. The docs show that config for Claude Code, Claude Desktop, Cursor and VS Code, and the session on this page was recorded with Claude Code.

The server also takes OAuth sign-in by the MCP authorization specification, for clients that support it. You choose an organization and see what the app asks for, and you can end its access under Connected apps.

Can my assistant try it before I make a key?

Yes. The tools that need no account have a public address of their own, in the docs: check_command, compile_job, list_presets, list_fonts, estimate_cost, list_allowed. They check commands, compile JSON jobs, list what is available and estimate prices, and create nothing. They answer up to 60 calls a minute from one address.

What can it do to video?

Everything the API does: transcode and compress, resize and crop, trim and join, watermarks, colour, thumbnails, storyboards, GIFs and audio, as a JSON job or as an ffmpeg command. It runs ffmpeg 6.1.1 with the codecs libx264, libx265, libvpx, libvpx-vp9, libaom-av1, mpeg4, mjpeg, png, gif, ffv1, aac, libmp3lame, libopus, libvorbis, flac, pcm_s16le, pcm_s24le, pcm_f32le, alac.

What are the limits?

On Pay as you go a job runs up to 10 min of ffmpeg with inputs up to 1 GB; on Scale up to 60 min and 10 GB. Each tool call counts as one request against your plan’s rate limit, like a REST call. wait_for_job waits up to 50 seconds a call, and the assistant calls it again for longer jobs.

How long do the files stay?

Outputs stay for your plan’s retention: 7 days on Pay as you go, up to 30 days on Scale. Each download link is signed and lasts up to one hour; get_job hands out a fresh one. Private inputs go up with create_upload, up to 100 MB, and stay for 24 hours.

Can my backend hear about jobs the assistant starts?

Yes. A job created through MCP takes the same webhook_url as one created through the API, and your account’s webhook endpoint gets it too. Each delivery is signed in the Standard Webhooks format; list_webhook_deliveries shows the attempts.

Who runs Videxo?

BEO TECHNOLOGY sp. z o.o., a limited company in Poland, in the European Union. Write to hello@videxo.io.

Run your first job. Free, no card.